This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/20985] building mips/64 cross compiler on x86 produces incorrect assembler code for _divdi3 with -fnon-call-exceptions
- From: "drow at false dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 Apr 2005 17:50:59 -0000
- Subject: [Bug debug/20985] building mips/64 cross compiler on x86 produces incorrect assembler code for _divdi3 with -fnon-call-exceptions
- References: <20050413052157.20985.herbert@13thfloor.at>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From drow at false dot org 2005-04-13 17:50 -------
Subject: Re: New: building mips/64 cross compiler on x86 produces incorrect assembler code for _divdi3 with -fnon-call-exceptions
On Wed, Apr 13, 2005 at 05:22:07AM -0000, herbert at 13thfloor dot at wrote:
> ./configure --enable-languages=c --disable-nls --disable-threads
> --disable-shared --disable-checking --prefix=/usr --target=mips-linux
> make TARGET_LIBGCC2_CFLAGS='-Dinhibit_libc -D__gthr_posix_h'
>
> results in ...
> /gcc-3.3.5/gcc/xgcc -B/gcc-3.3.5/gcc/ -B/usr/mips-linux/bin/
> -B/usr/mips-linux/lib/ -isystem /usr/mips-linux/include -O2 -DIN_GCC
> -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes
> -Wmissing-prototypes -isystem ./include -fPIC -g -DIN_LIBGCC2
> -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I. -I./. -I./config
> -I./../include -DL_divdi3 -c ./libgcc2.c -fexceptions -fnon-call-exceptions -o
> libgcc/./_divdi3.o
> /root/tmp/ccI71cbx.s: Assembler messages:
> /root/tmp/ccI71cbx.s:956: Error: operation combines symbols in different segments
>
> 955 .4byte $LASFDE1-$Lframe1
> 956 .4byte $LFB4-.
> 957 .4byte $LFE4-$LFB4
>
> (removing the '-.' in that line *G* makes it work with gas 2.15.94.0.2.2)
The feature was removed from the assembler, because it is not ABI
compliant. This is fixed in GCC 3.4 and later. You can just delete
the definition in config/mips/linux.h that causes this.
ASM_PREFERRED_EH_DATA_FORMAT or something similar, I don't remember the
spelling.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20985