glibc/sysdeps/powerpc/powerpc32
Joseph Myers eb98356875 Don't make soft-fp symbols compat symbols for powerpc-nofpu.
sysdeps/powerpc/powerpc32/libgcc-compat.S makes certain symbols that
glibc once accidentally reexported from libgcc into compat symbols.

Where the exports were purely accidental, this is the right thing to
do.  However, for powerpc-nofpu the soft-fp symbols are deliberately
exported from libc, given public versions in
sysdeps/powerpc/nofpu/Versions and used by libm in preference to the
libgcc versions that do not support the software exceptions and
rounding modes.  The libc versions should also be usable by user
programs, though normally libgcc gets linked in first (meaning,
effectively, that the <fenv.h> functions are broken as regards their
expected effects on user arithmetic).

A longstanding todo item is to remove the functions in question from
libgcc (when built with recent enough glibc) - that is, remove them
from static libgcc and make them compat symbols in shared libgcc - so
that this works properly (this is one of the items mentioned at
<http://gcc.gnu.org/wiki/Software_floating_point> - parts of that page
are obviously out of date, but this item still applies).  Doing this
requires first that the functions are actually available from libc for
new links, not just as compat symbols.

This patch stops the symbols in question being compat symbols for
powerpc-nofpu.  The nofpu Versions entries for them are removed (the
symbols never were exported at GLIBC_2.3.2, only GLIBC_2.0, because
the compat symbols took precedence).

Tested powerpc-nofpu.  The symbols are no longer compat symbols and
libm.so now properly gets undefined references to them (resolved to
libc.so) instead of the libgcc copies getting linked into libm as
before.

	* sysdeps/powerpc/powerpc32/libgcc-compat.S
	[_SOFT_FLOAT || __NO_FPRS__] (__fixdfdi_v_glibc20): Do not define
	as a macro and a compat symbol.
	[_SOFT_FLOAT || __NO_FPRS__] (__fixsfdi_v_glibc20): Likewise.
	[_SOFT_FLOAT || __NO_FPRS__] (__fixunsdfdi_v_glibc20): Likewise.
	[_SOFT_FLOAT || __NO_FPRS__] (__fixunssfdi_v_glibc20): Likewise.
	[_SOFT_FLOAT || __NO_FPRS__] (__floatdidf_v_glibc20): Likewise.
	[_SOFT_FLOAT || __NO_FPRS__] (__floaddisf_v_glibc20): Likewise.
	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixdfdi): Do
	not use .hidden.
	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixsfdi):
	Likewise.
	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixunsdfdi):
	Likewise.
	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixunssfdi):
	Likewise.
	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__floaddidf):
	Likewise.
	[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__floaddisf):
	Likewise.
	* sysdeps/powerpc/nofpu/Versions (libc): Remove __fixdfdi,
	__fixsfdi, __fixunsdfdi, __fixunssfdi, __floatdidf and __floatdisf
	from GLIBC_2.3.2.
2013-12-19 21:26:36 +00:00
..
405 Move powerpc ports pieces to libc. 2013-10-04 16:02:33 +00:00
440 Move powerpc ports pieces to libc. 2013-10-04 16:02:33 +00:00
464 Move powerpc ports pieces to libc. 2013-10-04 16:02:33 +00:00
476 Move powerpc ports pieces to libc. 2013-10-04 16:02:33 +00:00
970
a2 Remove powerpc32 bounded-pointers code. 2013-02-28 21:23:47 +00:00
bits Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
cell Fix typos. 2013-08-21 19:48:48 +02:00
e500/nofpu Add powerpc-nofpu/e500 support functions for atomic compound assignment and FLT_ROUNDS. 2013-11-28 18:01:41 +00:00
fpu PowerPC: multiarch isnan/isnanf for PowerPC32 2013-12-06 05:47:03 -06:00
power4 PowerPC: multiarch __ieee754_hypot[f] for PowerPC32 2013-12-06 05:47:05 -06:00
power5 PowerPC: Adjust multiarch Implies for PowerPC32 2013-12-06 05:47:05 -06:00
power5+ PowerPC: Adjust multiarch Implies for PowerPC32 2013-12-06 05:47:05 -06:00
power6 PowerPC: Adjust multiarch Implies for PowerPC32 2013-12-06 05:47:05 -06:00
power6x PowerPC: Adjust multiarch Implies for PowerPC32 2013-12-06 05:47:05 -06:00
power7 PowerPC: Adjust multiarch Implies for PowerPC32 2013-12-06 05:47:05 -06:00
power8 PowerPC: Adjust multiarch Implies for PowerPC32 2013-12-06 05:47:05 -06:00
Implies
Makefile Move powerpc ports pieces to libc. 2013-10-04 16:02:33 +00:00
Versions
__longjmp-common.S PowerPC: Add systemtap static probe points in setjmp/longjmp 2013-12-05 07:44:07 -06:00
__longjmp.S PowerPC: Add systemtap static probe points in setjmp/longjmp 2013-12-05 07:44:07 -06:00
add_n.S Remove powerpc32 bounded-pointers code. 2013-02-28 21:23:47 +00:00
addmul_1.S Remove powerpc32 bounded-pointers code. 2013-02-28 21:23:47 +00:00
backtrace.c PowerPC: fix backtrace to handle signal trampolines 2013-08-20 15:05:49 -05:00
bsd-_setjmp.S PowerPC ugly symbol versioning 2013-10-04 10:38:28 +09:30
bsd-setjmp.S PowerPC ugly symbol versioning 2013-10-04 10:38:28 +09:30
bzero.S Remove powerpc32 bounded-pointers code. 2013-02-28 21:23:47 +00:00
compat-ppc-mcount.S
configure rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
configure.ac rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
crti.S Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
crtn.S Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-dtprocnum.h
dl-irel.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-machine.c Use stdint.h types in union unaligned. 2013-10-04 12:51:11 +09:30
dl-machine.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-start.S Fix spelling errors in sysdeps/powerpc files. 2013-01-07 11:20:53 -06:00
dl-trampoline.S Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
gprrest0.S Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
gprrest1.S Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
gprsave0.S Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
gprsave1.S Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
hp-timing.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
libgcc-compat.S Don't make soft-fp symbols compat symbols for powerpc-nofpu. 2013-12-19 21:26:36 +00:00
lshift.S Fix leading whitespaces. 2013-06-06 20:36:07 +02:00
mcount.c PowerPC ugly symbol versioning 2013-10-04 10:38:28 +09:30
memset.S Remove powerpc32 bounded-pointers code. 2013-02-28 21:23:47 +00:00
mul_1.S Remove powerpc32 bounded-pointers code. 2013-02-28 21:23:47 +00:00
ppc-mcount.S Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
register-dump.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
rshift.S Remove powerpc32 bounded-pointers code. 2013-02-28 21:23:47 +00:00
rtld-memset.c
setjmp-common.S PowerPC: Add systemtap static probe points in setjmp/longjmp 2013-12-05 07:44:07 -06:00
setjmp.S PowerPC: Add systemtap static probe points in setjmp/longjmp 2013-12-05 07:44:07 -06:00
stackguard-macros.h BZ #15754: CVE-2013-4788 2013-09-23 00:52:09 -04:00
start.S PowerPC: .eh_frame info in crt1.o isn't useful and triggers gold bug 14675. 2013-03-28 12:16:28 -05:00
stpcpy.S PowerPC LE strcpy 2013-10-04 10:40:11 +09:30
strchr.S PowerPC LE strchr 2013-10-04 10:40:22 +09:30
strcmp.S PowerPC LE strcmp and strncmp 2013-10-04 10:39:52 +09:30
strcpy.S PowerPC LE strcpy 2013-10-04 10:40:11 +09:30
strlen.S PowerPC LE strlen 2013-10-04 10:39:32 +09:30
strncmp.S PowerPC LE strcmp and strncmp 2013-10-04 10:39:52 +09:30
sub_n.S Remove powerpc32 bounded-pointers code. 2013-02-28 21:23:47 +00:00
submul_1.S Remove powerpc32 bounded-pointers code. 2013-02-28 21:23:47 +00:00
sysdep.h Remove --disable-versioning. 2013-09-04 15:25:42 +00:00
tls-macros.h
tst-audit.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00