This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/19019] GCC ldouble format incompatibility with XLC long double
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Feb 2005 22:38:44 -0000
- Subject: [Bug target/19019] GCC ldouble format incompatibility with XLC long double
- References: <20041215194136.19019.dje@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From jakub at gcc dot gnu dot org 2005-02-22 22:38 -------
The 3.4 backport doesn't seem to work for me at all.
The problem is the .hidden .oS generation that dies on the .symvers in
darwin-ldouble.o that is going to be included in libgcc_eh.a.
( ` if [ -f ./nm ] ; then echo ./nm ; elif [ -f
/usr/src/build/524491-ppc64/BUILD/gcc-3.4.3-20050222/obj-ppc64-redhat-linux/gcc/../binutils/nm-new ] ; then echo
/usr/src/build/524491-ppc64/BUILD/gcc-3.4.3-20050222/obj-ppc64-redhat-linux/gcc/../binutils/nm-new ; else if [ "powerpc64-redhat-linux-gnu" =
"powerpc64-redhat-linux-gnu" ] ; then echo nm; else t='s,y,y,'; echo nm | sed -e
; fi; fi` -pg libgcc/./darwin-ldouble.o | gawk 'NF == 3 && $2 !~ /^[UN]$/ { print
"\t.hidden", $3 }'; cat libgcc//stacknote.s ) | ./xgcc -B./
-B/usr/ppc64-redhat-linux/bin/ -isystem /usr/ppc64-redhat-linux/include -isystem
/usr/ppc64-redhat-linux/sys-include
-L/usr/src/build/524491-ppc64/BUILD/gcc-3.4.3-20050222/obj-ppc64-redhat-linux/gcc
/../ld -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition -isystem ./include -mno-minimal-toc
-fPIC -specs=bispecs -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
-fPIC -mstrict-align -r -nostdinc -nostdlib -o libgcc/./darwin-ldouble.oS
libgcc/./darwin-ldouble.o -xassembler -
{standard input}: Assembler messages:
{standard input}:5: Error: junk at end of line, first unrecognized character is
`@'
{standard input}:6: Error: junk at end of line, first unrecognized character is
`@'
{standard input}:7: Error: junk at end of line, first unrecognized character is
`@'
{standard input}:8: Error: junk at end of line, first unrecognized character is
`@'
But even on the trunk it is highly undesirable to have the .symver directives
in the object that will be included in libgcc.a.
On the trunk each libgcc* object is built separately for .a library and
libgcc_s.so, so we could use here perhaps the -DHIDE_EXPORTS macro
(.symver directives would be present only #if defined __ELF__ && !defined
HIDE_EXPORTS && defined HAVE_GAS_HIDDEN or something like that).
But on gcc-3_4-branch, each object is compiled just once, so I think we need
some mklibgcc.in hacks to build a separate darwin-ldouble.c (for libgcc.a only)
and darwin-ldouble-shared.c (for libgcc_s.so only).
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |amodra at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19019