Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Joseph Myers committed Nov 5, 2014
1 parent c5684fd commit ab97ee8
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 5 deletions.
10 changes: 10 additions & 0 deletions ChangeLog
@@ -1,5 +1,15 @@
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
Expand Down
2 changes: 1 addition & 1 deletion elf/dl-profile.c
Expand Up @@ -598,4 +598,4 @@ _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc)
done:
;
}
INTDEF(_dl_mcount)
rtld_hidden_def (_dl_mcount)
2 changes: 1 addition & 1 deletion elf/dl-runtime.c
Expand Up @@ -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)
{
Expand Down
2 changes: 1 addition & 1 deletion elf/rtld.c
Expand Up @@ -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,
Expand Down
3 changes: 1 addition & 2 deletions sysdeps/generic/ldsodefs.h
Expand Up @@ -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
Expand Down

0 comments on commit ab97ee8

Please sign in to comment.