Don't use INTDEF/INTUSE with _dl_mcount (bug 14132)
diff mbox

Message ID alpine.DEB.2.10.1411042339320.14071@digraph.polyomino.org.uk
State New
Headers show

Commit Message

Joseph Myers Nov. 4, 2014, 11:40 p.m. UTC
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.

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.

Comments

Roland McGrath Nov. 4, 2014, 11:42 p.m. UTC | #1
Looks fine to me.

Patch
diff mbox

diff --git a/elf/dl-profile.c b/elf/dl-profile.c
index 2fca7fd..4f83497 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 11eba4a..ee02d5a 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 537fc43..b07ff43 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 d1c8e2c..f339ee3 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