This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug libc/17726] [arm, sparc] profil_counter should be compat symbol
- From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Wed, 17 Dec 2014 18:11:45 +0000
- Subject: [Bug libc/17726] [arm, sparc] profil_counter should be compat symbol
- Auto-submitted: auto-generated
- References: <bug-17726-131 at http dot sourceware dot org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=17726
--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via ea41469b7ab2c8e35b1c10054f7076a95f80003a (commit)
from 8ac5a76a99e51a91eac9cecbe941fc05ddf11e03 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ea41469b7ab2c8e35b1c10054f7076a95f80003a
commit ea41469b7ab2c8e35b1c10054f7076a95f80003a
Author: Joseph Myers <joseph@codesourcery.com>
Date: Wed Dec 17 18:10:37 2014 +0000
Fix profil_counter namespace (bug 17725).
On ARM, where profil_counter is not static, it is brought in by
references to various standard functions, as noted in
<https://sourceware.org/ml/libc-alpha/2014-11/msg00890.html>, although
it is not a standard function itself. I don't know if this also
causes test failures on SPARC, although I see no reason for it not to
do so.
This patch fixes this namespace issue. profil_counter is renamed to
__profil_counter and made a weak alias on ARM and SPARC. Because of
the uses in profil.c / sprofil.c it seems simplest to make the rename
globally, including on the other architectures for which
profil_counter was static and so the change is of no substance. The
variant names profil_counter_* used in sprofil.c are also renamed to
start with __ so that undesired function names do not get exported in
static libc.
As I noted in bug 17726, profil_counter should probably be a compat
symbol on ARM and SPARC, so it wouldn't exist at all in static libc
even as a weak alias. Since defining a compat symbol still requires
an internal name as a target of an alias, this patch still seems
reasonable as an intermediate step towards that goal: it wouldn't be
possible for the function simply to be static profil_counter on ARM
and SPARC with profil_counter also being the exported compat symbol
name, so profil.c / sprofil.c would still need to be prepared to call
the function under another name (here, __profil_counter).
Tested for x86_64 (testsuite, and that stripped installed shared
libraries are unchanged by the patch) and ARM (ABI and linknamespace
tests - this patch reduces the number of linknamespace failures I see
on ARM from 227 to 5, the residue being math.h failures for fe*
functions and for j0l/j1n/jnl/y0l/y1l/ynl aliases).
2014-12-17 Joseph Myers <joseph@codesourcery.com>
[BZ #17725]
* sysdeps/generic/profil-counter.h (profil_counter): Rename to
__profil_counter.
* sysdeps/unix/sysv/linux/hppa/profil-counter.h (profil_counter):
Likewise.
* sysdeps/unix/sysv/linux/i386/profil-counter.h (profil_counter):
Likewise.
* sysdeps/unix/sysv/linux/ia64/profil-counter.h (profil_counter):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h
(profil_counter): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/profil-counter.h
(profil_counter): Likewise.
* sysdeps/unix/sysv/linux/sh/profil-counter.h (profil_counter):
Likewise.
* sysdeps/unix/sysv/linux/tile/profil-counter.h (profil_counter):
Likewise.
* sysdeps/unix/sysv/linux/x86_64/profil-counter.h
(profil_counter): Likewise.
* sysdeps/unix/sysv/linux/arm/profil-counter.h (profil_counter):
Likewise.
[!__profil_counter] (profil_counter): Define as weak alias of
__profil_counter.
* sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h
(profil_counter): Rename to __profil_counter.
[!__profil_counter] (profil_counter): Define as weak alias of
__profil_counter.
* sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h
(profil_counter): Rename to __profil_counter.
[!__profil_counter] (profil_counter): Define as weak alias of
__profil_counter.
* sysdeps/posix/profil.c: Update comment referring to
profil_counter.
(__profil): Use __profil_counter instead of profil_counter.
* sysdeps/posix/sprofil.c (profil_counter): Rename to
__profil_counter. Use __profil_counter_ushort and
__profil_counter_uint in definitions.
(__sprofil): Use __profil_counter_uint and __profil_counter_ushort
instead of profil_counter_uint and profil_counter_ushort.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 40 ++++++++++++++++++++
NEWS | 2 +-
sysdeps/generic/profil-counter.h | 2 +-
sysdeps/posix/profil.c | 4 +-
sysdeps/posix/sprofil.c | 12 +++---
sysdeps/unix/sysv/linux/arm/profil-counter.h | 5 ++-
sysdeps/unix/sysv/linux/hppa/profil-counter.h | 2 +-
sysdeps/unix/sysv/linux/i386/profil-counter.h | 2 +-
sysdeps/unix/sysv/linux/ia64/profil-counter.h | 2 +-
.../unix/sysv/linux/s390/s390-32/profil-counter.h | 2 +-
.../unix/sysv/linux/s390/s390-64/profil-counter.h | 2 +-
sysdeps/unix/sysv/linux/sh/profil-counter.h | 2 +-
.../unix/sysv/linux/sparc/sparc32/profil-counter.h | 5 ++-
.../unix/sysv/linux/sparc/sparc64/profil-counter.h | 5 ++-
sysdeps/unix/sysv/linux/tile/profil-counter.h | 2 +-
sysdeps/unix/sysv/linux/x86_64/profil-counter.h | 2 +-
16 files changed, 70 insertions(+), 21 deletions(-)
--
You are receiving this mail because:
You are on the CC list for the bug.