------- 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