From patchwork Tue Nov 4 23:40:09 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Myers X-Patchwork-Id: 3580 Received: (qmail 12497 invoked by alias); 4 Nov 2014 23:40:17 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 12487 invoked by uid 89); 4 Nov 2014 23:40:16 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Date: Tue, 4 Nov 2014 23:40:09 +0000 From: Joseph Myers To: Subject: Don't use INTDEF/INTUSE with _dl_mcount (bug 14132) Message-ID: User-Agent: Alpine 2.10 (DEB 1266 2009-07-14) MIME-Version: 1.0 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 [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. 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