diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2022-03-14 14:46:25 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2022-03-16 06:45:06 -0700 |
commit | f4be26838dc9937a4ae3e9cf4fbec50efd7786a2 (patch) | |
tree | ce206b7152f6f242e4a9e56e378b41f4ed5dd694 /gprofng/libcollector/linetrace.c | |
parent | 61a1f2e71118206dd700fc1ddf244b2178bf6610 (diff) | |
download | binutils-gdb-f4be26838dc9937a4ae3e9cf4fbec50efd7786a2.tar.gz |
gprofng: Use symver attribute if available
Use symver attribute if available, instead of asm statement, to support
LTO build.
PR gprof/28962
* libcollector/dispatcher.c (timer_create@@GLIBC_2.3.3): Use
SYMVER_ATTRIBUTE.
(timer_create@GLIBC_2.2): Likewise.
(timer_create@GLIBC_2.2.5): Likewise.
(pthread_create@@GLIBC_2.1): Likewise.
(pthread_create@GLIBC_2.0): Likewise.
* libcollector/iotrace.c (open64@@GLIBC_2.2): Likewise.
(open64@GLIBC_2.1): Likewise.
(fopen@@GLIBC_2.1): Likewise.
(fopen@GLIBC_2.0): Likewise.
(fclose@@GLIBC_2.1): Likewise.
(fclose@GLIBC_2.0): Likewise.
(fdopen@@GLIBC_2.1): Likewise.
(fdopen@GLIBC_2.0): Likewise.
(pread@@GLIBC_2.2): Likewise.
(pread@GLIBC_2.1): Likewise.
(pwrite@@GLIBC_2.2): Likewise.
(pwrite@GLIBC_2.1): Likewise.
(pwrite64@@GLIBC_2.2): Likewise.
(pwrite64@GLIBC_2.1): Likewise.
(fgetpos@@GLIBC_2.2): Likewise.
(fgetpos@GLIBC_2.0): Likewise.
(fgetpos64@@GLIBC_2.2): Likewise.
(fgetpos64@GLIBC_2.1): Likewise.
(fsetpos@@GLIBC_2.2): Likewise.
(fsetpos@GLIBC_2.0): Likewise.
(fsetpos64@@GLIBC_2.2): Likewise.
(fsetpos64@GLIBC_2.1): Likewise.
* libcollector/linetrace.c (posix_spawn@@GLIBC_2.15): Likewise.
(posix_spawn@GLIBC_2.2): Likewise.
(posix_spawn@GLIBC_2.2.5): Likewise.
(posix_spawnp@@GLIBC_2.15): Likewise.
(posix_spawnp@GLIBC_2.2): Likewise.
(posix_spawnp@GLIBC_2.2.5): Likewise.
(popen@@GLIBC_2.1): Likewise.
(popen@GLIBC_2.0): Likewise.
(_popen@@GLIBC_2.1): Likewise.
(_popen@GLIBC_2.0): Likewise.
* libcollector/mmaptrace.c (dlopen@@GLIBC_2.1): Likewise.
(dlopen@GLIBC_2.0): Likewise.
* libcollector/synctrace.c (pthread_cond_wait@@GLIBC_2.3.2):
Likewise.
(pthread_cond_wait@GLIBC_2.0): Likewise.
(pthread_cond_wait@GLIBC_2.2.5): Likewise.
(pthread_cond_wait@GLIBC_2.2): Likewise.
(pthread_cond_timedwait@@GLIBC_2.3.2): Likewise.
(pthread_cond_timedwait@GLIBC_2.0): Likewise.
(pthread_cond_timedwait@GLIBC_2.2.5): Likewise.
(pthread_cond_timedwait@GLIBC_2.2): Likewise.
(sem_wait@@GLIBC_2.1): Likewise.
(sem_wait@GLIBC_2.0): Likewise.
* src/collector_module.h (SYMVER_ATTRIBUTE): New.
Diffstat (limited to 'gprofng/libcollector/linetrace.c')
-rw-r--r-- | gprofng/libcollector/linetrace.c | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/gprofng/libcollector/linetrace.c b/gprofng/libcollector/linetrace.c index 970d68c507b..978c5503e2e 100644 --- a/gprofng/libcollector/linetrace.c +++ b/gprofng/libcollector/linetrace.c @@ -1353,6 +1353,7 @@ __collector_posix_spawn_symver (int(real_posix_spawn) (), const posix_spawnattr_t *attrp, char *const argv[], char *const envp[]); +SYMVER_ATTRIBUTE (__collector_posix_spawn_2_15, posix_spawn@@GLIBC_2.15) int __collector_posix_spawn_2_15 (pid_t *pidp, const char *path, const posix_spawn_file_actions_t *file_actions, @@ -1367,9 +1368,8 @@ __collector_posix_spawn_2_15 (pid_t *pidp, const char *path, path, file_actions, attrp, argv, envp); } -__asm__(".symver __collector_posix_spawn_2_15,posix_spawn@@GLIBC_2.15"); - #if WSIZE(32) +SYMVER_ATTRIBUTE (__collector_posix_spawn_2_2, posix_spawn@GLIBC_2.2) int __collector_posix_spawn_2_2 (pid_t *pidp, const char *path, const posix_spawn_file_actions_t *file_actions, @@ -1384,9 +1384,8 @@ __collector_posix_spawn_2_2 (pid_t *pidp, const char *path, path, file_actions, attrp, argv, envp); } -__asm__(".symver __collector_posix_spawn_2_2,posix_spawn@GLIBC_2.2"); - #else /* ^WSIZE(32) */ +SYMVER_ATTRIBUTE (__collector_posix_spawn_2_2_5, posix_spawn@GLIBC_2.2.5) int __collector_posix_spawn_2_2_5 (pid_t *pidp, const char *path, const posix_spawn_file_actions_t *file_actions, @@ -1400,8 +1399,6 @@ __collector_posix_spawn_2_2_5 (pid_t *pidp, const char *path, return __collector_posix_spawn_symver (CALL_REAL (posix_spawn_2_2_5), pidp, path, file_actions, attrp, argv, envp); } - -__asm__(".symver __collector_posix_spawn_2_2_5,posix_spawn@GLIBC_2.2.5"); #endif /* ^WSIZE(32) */ static int @@ -1466,6 +1463,7 @@ __collector_posix_spawnp_symver (int(real_posix_spawnp) (), pid_t *pidp, const posix_spawnattr_t *attrp, char *const argv[], char *const envp[]); +SYMVER_ATTRIBUTE (__collector_posix_spawnp_2_15, posix_spawnp@@GLIBC_2.15) int // Common interposition __collector_posix_spawnp_2_15 (pid_t *pidp, const char *path, const posix_spawn_file_actions_t *file_actions, @@ -1480,10 +1478,9 @@ __collector_posix_spawnp_2_15 (pid_t *pidp, const char *path, path, file_actions, attrp, argv, envp); } -__asm__(".symver __collector_posix_spawnp_2_15,posix_spawnp@@GLIBC_2.15"); - #if WSIZE(32) +SYMVER_ATTRIBUTE (__collector_posix_spawnp_2_2, posix_spawnp@GLIBC_2.2) int __collector_posix_spawnp_2_2 (pid_t *pidp, const char *path, const posix_spawn_file_actions_t *file_actions, @@ -1498,9 +1495,8 @@ __collector_posix_spawnp_2_2 (pid_t *pidp, const char *path, path, file_actions, attrp, argv, envp); } -__asm__(".symver __collector_posix_spawnp_2_2,posix_spawnp@GLIBC_2.2"); - #else /* ^WSIZE(32) */ +SYMVER_ATTRIBUTE (__collector_posix_spawnp_2_2_5, posix_spawnp@GLIBC_2.2.5) int __collector_posix_spawnp_2_2_5 (pid_t *pidp, const char *path, const posix_spawn_file_actions_t *file_actions, @@ -1515,8 +1511,6 @@ __collector_posix_spawnp_2_2_5 (pid_t *pidp, const char *path, path, file_actions, attrp, argv, envp); } -__asm__(".symver __collector_posix_spawnp_2_2_5,posix_spawnp@GLIBC_2.2.5"); - #endif /* ^WSIZE(32) */ static int @@ -1601,6 +1595,7 @@ __collector_system (const char *cmd) static FILE * __collector_popen_symver (FILE*(real_popen) (), const char *cmd, const char *mode); +SYMVER_ATTRIBUTE (__collector_popen_2_1, popen@@GLIBC_2.1) FILE * __collector_popen_2_1 (const char *cmd, const char *mode) { @@ -1610,6 +1605,7 @@ __collector_popen_2_1 (const char *cmd, const char *mode) return __collector_popen_symver (CALL_REALF (popen_2_1), cmd, mode); } +SYMVER_ATTRIBUTE (__collector_popen_2_0, popen@GLIBC_2.0) FILE * __collector_popen_2_0 (const char *cmd, const char *mode) { @@ -1619,6 +1615,7 @@ __collector_popen_2_0 (const char *cmd, const char *mode) return __collector_popen_symver (CALL_REALF (popen_2_0), cmd, mode); } +SYMVER_ATTRIBUTE (__collector__popen_2_1, _popen@@GLIBC_2.1) FILE * __collector__popen_2_1 (const char *cmd, const char *mode) { @@ -1628,6 +1625,7 @@ __collector__popen_2_1 (const char *cmd, const char *mode) return __collector_popen_symver (CALL_REALF (popen_2_1), cmd, mode); } +SYMVER_ATTRIBUTE (__collector__popen_2_0, _popen@GLIBC_2.0) FILE * __collector__popen_2_0 (const char *cmd, const char *mode) { @@ -1635,11 +1633,6 @@ __collector__popen_2_0 (const char *cmd, const char *mode) init_lineage_intf (); return __collector_popen_symver (CALL_REALF (popen_2_0), cmd, mode); } - -__asm__(".symver __collector_popen_2_1,popen@@GLIBC_2.1"); -__asm__(".symver __collector_popen_2_0,popen@GLIBC_2.0"); -__asm__(".symver __collector__popen_2_1,_popen@@GLIBC_2.1"); -__asm__(".symver __collector__popen_2_0,_popen@GLIBC_2.0"); #else // WSIZE(64) FILE * popen () __attribute__ ((weak, alias ("__collector_popen"))); #endif |