aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-11-05 01:02:47 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-11-05 01:02:47 +0000
commitab97ee8f1bf70b24b417e8f690ce50563d508243 (patch)
tree0f561f1e7a0b27b06bc2443f3f60de4f73a77855
parentc5684fdb2badfda3bd6e973e5f933272e39e9590 (diff)
downloadglibc-ab97ee8f1bf70b24b417e8f690ce50563d508243.tar
glibc-ab97ee8f1bf70b24b417e8f690ce50563d508243.tar.gz
glibc-ab97ee8f1bf70b24b417e8f690ce50563d508243.tar.bz2
glibc-ab97ee8f1bf70b24b417e8f690ce50563d508243.zip
Don't use INTDEF/INTUSE with _dl_mcount (bug 14132).
Continuing the removal of the obsolete INTDEF / INTUSE mechanism, this patch replaces its use for _dl_mcount with use of rtld_hidden_def / rtld_hidden_proto. Tested for x86_64 that installed stripped shared libraries are unchanged by the patch. [BZ #14132] * elf/dl-profile.c (_dl_mcount): Use rtld_hidden_def instead of INTDEF. * sysdeps/generic/ldsodefs.h (_dl_mcount_internal): Remove declaration. (_dl_mcount): Use rtld_hidden_proto. * elf/dl-runtime.c (_dl_profile_fixup): Don't use INTUSE with _dl_mcount. * elf/rtld.c (_rtld_global_ro): Likewise.
-rw-r--r--ChangeLog10
-rw-r--r--elf/dl-profile.c2
-rw-r--r--elf/dl-runtime.c2
-rw-r--r--elf/rtld.c2
-rw-r--r--sysdeps/generic/ldsodefs.h3
5 files changed, 14 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 21cf47f552..bcd5d671e0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,16 @@
2014-11-04 Joseph Myers <joseph@codesourcery.com>
[BZ #14132]
+ * elf/dl-profile.c (_dl_mcount): Use rtld_hidden_def instead of
+ INTDEF.
+ * sysdeps/generic/ldsodefs.h (_dl_mcount_internal): Remove
+ declaration.
+ (_dl_mcount): Use rtld_hidden_proto.
+ * elf/dl-runtime.c (_dl_profile_fixup): Don't use INTUSE with
+ _dl_mcount.
+ * elf/rtld.c (_rtld_global_ro): Likewise.
+
+ [BZ #14132]
* elf/dl-init.c (_dl_init): Don't use INTDEF.
* sysdeps/aarch64/dl-machine.h (RTLD_START): Use _dl_init instead
of _dl_init_internal.
diff --git a/elf/dl-profile.c b/elf/dl-profile.c
index 2fca7fda19..4f83497d32 100644
--- a/elf/dl-profile.c
+++ b/elf/dl-profile.c
@@ -598,4 +598,4 @@ _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc)
done:
;
}
-INTDEF(_dl_mcount)
+rtld_hidden_def (_dl_mcount)
diff --git a/elf/dl-runtime.c b/elf/dl-runtime.c
index 11eba4a832..ee02d5a0e4 100644
--- a/elf/dl-runtime.c
+++ b/elf/dl-runtime.c
@@ -158,7 +158,7 @@ _dl_profile_fixup (
struct link_map *l, ElfW(Word) reloc_arg,
ElfW(Addr) retaddr, void *regs, long int *framesizep)
{
- void (*mcount_fct) (ElfW(Addr), ElfW(Addr)) = INTUSE(_dl_mcount);
+ void (*mcount_fct) (ElfW(Addr), ElfW(Addr)) = _dl_mcount;
if (l->l_reloc_result == NULL)
{
diff --git a/elf/rtld.c b/elf/rtld.c
index 537fc43744..b07ff435dc 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -170,7 +170,7 @@ struct rtld_global_ro _rtld_global_ro attribute_relro =
._dl_debug_printf = _dl_debug_printf,
._dl_catch_error = _dl_catch_error,
._dl_signal_error = _dl_signal_error,
- ._dl_mcount = _dl_mcount_internal,
+ ._dl_mcount = _dl_mcount,
._dl_lookup_symbol_x = _dl_lookup_symbol_x,
._dl_check_caller = _dl_check_caller,
._dl_open = _dl_open,
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index d1c8e2cb9d..f339ee3db9 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -885,8 +885,7 @@ extern void _dl_start_profile (void) internal_function attribute_hidden;
/* The actual functions used to keep book on the calls. */
extern void _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc);
-extern void _dl_mcount_internal (ElfW(Addr) frompc, ElfW(Addr) selfpc)
- attribute_hidden;
+rtld_hidden_proto (_dl_mcount)
/* This function is simply a wrapper around the _dl_mcount function
which does not require a FROMPC parameter since this is the