Bug#274738: on mips{,el} atexit.o should be compiled with -mxgot
reassign 274738 binutils severity 274738 important thanks At Tue, 05 Oct 2004 10:04:20 +0900, GOTO Masanori wrote: > At Mon, 4 Oct 2004 00:25:00 +0200, > Thiemo Seufer wrote: > > > current mainline libgcj fails to build on mips{,el}: > > > > > > /home/doko/gcc/gcc-snapshot-20041003/build/gcc/xgcc -shared-libgcc > > > -B/home/doko/gcc/gcc-snapshot-20041003/build/gcc/ -nostdinc++ > > > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src > > > > > > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src/.libs > > > -B/usr/lib/gcc-snapshot/mipsel-linux-gnu/bin/ > > > -B/usr/lib/gcc-snapshot/mipsel-linux-gnu/lib/ -isystem > > > /usr/lib/gcc-snapshot/mipsel-linux-gnu/include -isystem > > > /usr/lib/gcc-snapshot/mipsel-linux-gnu/sys-include -shared -nostdlib > > > /usr/lib/crti.o > > > /home/doko/gcc/gcc-snapshot-20041003/build/gcc/crtbeginS.o > > > .libs/libgcj.la-2.o -Wl,--whole-archive > > > ../libffi/.libs/libffi_convenience.a > > > ../boehm-gc/.libs/libgcjgc_convenience.a ./libltdl/.libs/libltdlc.a > > > -Wl,--no-whole-archive > > > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src > > > > > > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src/.libs > > > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux -g > nu/libjava ../libffi/.libs/libffi_convenience.a > ../boehm-gc/.libs/libgcjgc_convenience.a -lpthread ./libltdl/.libs/libltdlc.a > -ldl -lz -L/home/doko/gcc/gcc-snapshot-20041003/build/gcc -lgcc_s -lc -lgcc_s >/home/doko/gcc/gcc-snapshot-20041003/build/gcc/crtendS.o /usr/lib/crtn.o > -Wl,-soname -Wl,libgcj.so.6 -o .libs/libgcj.so.6.0.0 > > > /usr/lib/libc_nonshared.a(atexit.oS)(.text+0x38): In function `atexit': > > > : relocation truncated to fit: R_MIPS_CALL16 __cxa_atexit@@GLIBC_2.2 > > > collect2: ld returned 1 exit status > > > make[2]: *** [libgcj.la] Error 1 > > > > > > can be fixed by compiling glibc's atexit with -mxgot > > > > This needs _two_ sets of those objects then, because a link employing > > multigot will silently break over xgot objects. > > Does this problem come from glibc's compilation problem? > > > > (at least that's the way mozilla succeeded to build). > > > > Actually, no, mozilla uses the standard gcc/libc objects. It believe it > > happens to work because those objects are linked in earlier, so their > > GOT entry offset doesn't exceed the limit. > > Do you know what's the actual problem? This is my memorandum, and the summary. If you find mistake, please follow up it. mips/mipsel has long-standing problem about GOT handling. The GOT size is limited to 16KB and it's sometimes small. This report is affected by this problem. There're two ways to fix this problem; multiGOT and XGOT. XGOT is originally developed in IRIX. It uses 32bit GOT, so we don't need to worry about overflow of the table size. Matthias suggested to use -mxgot. However, unfortunatelly, we may lose binary compatibility (said by Thiemo). Thiemo said it's nicer than multiGOT. OTOH, multiGOT is to have multiple GOT - Daniel suggested it. He said binutils should be fixed if it does not work. Note that multiGOT is firstly supported by Alexandre Oliva in binutils 2.15 development. In debian-mips, there were discussions about gcj compilation problem. David Daney replied to Matthias that the current binutils + glibc should work without any GOT problems: http://lists.debian.org/debian-mips/2004/10/msg8.html I don't know which technically correct is. However, it's long-standing problem, and not glibc problem. This bug should actually be considered, but it's not sarge's target. I downgrade it to important and reassign it to binutils. If you have another opinion, let us know. Regards, -- gotom
Processed: Re: Bug#274738: on mips{,el} atexit.o should be compiled with -mxgot
Processing commands for [EMAIL PROTECTED]: > reassign 274738 binutils Bug#274738: on mips{,el} atexit.o should be compiled with -mxgot Bug reassigned from package `glibc' to `binutils'. > severity 274738 important Bug#274738: on mips{,el} atexit.o should be compiled with -mxgot Severity set to `important'. > thanks Stopping processing here. Please contact me if you need assistance. Debian bug tracking system administrator (administrator, Debian Bugs database)
Bug#274738: on mips{,el} atexit.o should be compiled with -mxgot
At Mon, 4 Oct 2004 00:25:00 +0200, Thiemo Seufer wrote: > > current mainline libgcj fails to build on mips{,el}: > > > > /home/doko/gcc/gcc-snapshot-20041003/build/gcc/xgcc -shared-libgcc > > -B/home/doko/gcc/gcc-snapshot-20041003/build/gcc/ -nostdinc++ > > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src > > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src/.libs > > -B/usr/lib/gcc-snapshot/mipsel-linux-gnu/bin/ > > -B/usr/lib/gcc-snapshot/mipsel-linux-gnu/lib/ -isystem > > /usr/lib/gcc-snapshot/mipsel-linux-gnu/include -isystem > > /usr/lib/gcc-snapshot/mipsel-linux-gnu/sys-include -shared -nostdlib > > /usr/lib/crti.o /home/doko/gcc/gcc-snapshot-20041003/build/gcc/crtbeginS.o > > .libs/libgcj.la-2.o -Wl,--whole-archive ../libffi/.libs/libffi_convenience.a > > ../boehm-gc/.libs/libgcjgc_convenience.a ./libltdl/.libs/libltdlc.a > > -Wl,--no-whole-archive > > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src > > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src/.libs > > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-g nu/libjava ../libffi/.libs/libffi_convenience.a ../boehm-gc/.libs/libgcjgc_convenience.a -lpthread ./libltdl/.libs/libltdlc.a -ldl -lz -L/home/doko/gcc/gcc-snapshot-20041003/build/gcc -lgcc_s -lc -lgcc_s /home/doko/gcc/gcc-snapshot-20041003/build/gcc/crtendS.o /usr/lib/crtn.o -Wl,-soname -Wl,libgcj.so.6 -o .libs/libgcj.so.6.0.0 > > /usr/lib/libc_nonshared.a(atexit.oS)(.text+0x38): In function `atexit': > > : relocation truncated to fit: R_MIPS_CALL16 __cxa_atexit@@GLIBC_2.2 > > collect2: ld returned 1 exit status > > make[2]: *** [libgcj.la] Error 1 > > > > can be fixed by compiling glibc's atexit with -mxgot > > This needs _two_ sets of those objects then, because a link employing > multigot will silently break over xgot objects. Does this problem come from glibc's compilation problem? > > (at least that's the way mozilla succeeded to build). > > Actually, no, mozilla uses the standard gcc/libc objects. It believe it > happens to work because those objects are linked in earlier, so their > GOT entry offset doesn't exceed the limit. Do you know what's the actual problem? Regards, -- gotom -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#274738: on mips{,el} atexit.o should be compiled with -mxgot
Matthias Klose wrote: > Package: glibc > Severity: serious > Tags: sid > > current mainline libgcj fails to build on mips{,el}: > > /home/doko/gcc/gcc-snapshot-20041003/build/gcc/xgcc -shared-libgcc > -B/home/doko/gcc/gcc-snapshot-20041003/build/gcc/ -nostdinc++ > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src/.libs > -B/usr/lib/gcc-snapshot/mipsel-linux-gnu/bin/ > -B/usr/lib/gcc-snapshot/mipsel-linux-gnu/lib/ -isystem > /usr/lib/gcc-snapshot/mipsel-linux-gnu/include -isystem > /usr/lib/gcc-snapshot/mipsel-linux-gnu/sys-include -shared -nostdlib /usr/lib/crti.o > /home/doko/gcc/gcc-snapshot-20041003/build/gcc/crtbeginS.o .libs/libgcj.la-2.o > -Wl,--whole-archive ../libffi/.libs/libffi_convenience.a > ../boehm-gc/.libs/libgcjgc_convenience.a ./libltdl/.libs/libltdlc.a > -Wl,--no-whole-archive > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src/.libs > -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libjava > ../libffi/.libs/libffi_convenience.a ../boehm-gc/.libs/libgcjgc_convenience.a > -lpthread ./libltdl/.libs/libltdlc.a -ldl -lz > -L/home/doko/gcc/gcc-snapshot-20041003/build/gcc -lgcc_s -lc -lgcc_s > /home/doko/gcc/gcc-snapshot-20041003/build/gcc/crtendS.o /usr/lib/crtn.o > -Wl,-soname -Wl,libgcj.so.6 -o .libs/libgcj.so.6.0.0 > /usr/lib/libc_nonshared.a(atexit.oS)(.text+0x38): In function `atexit': > : relocation truncated to fit: R_MIPS_CALL16 __cxa_atexit@@GLIBC_2.2 > collect2: ld returned 1 exit status > make[2]: *** [libgcj.la] Error 1 > > can be fixed by compiling glibc's atexit with -mxgot This needs _two_ sets of those objects then, because a link employing multigot will silently break over xgot objects. > (at least that's the way mozilla succeeded to build). Actually, no, mozilla uses the standard gcc/libc objects. It believe it happens to work because those objects are linked in earlier, so their GOT entry offset doesn't exceed the limit. Thiemo
Bug#274738: on mips{,el} atexit.o should be compiled with -mxgot
Package: glibc Severity: serious Tags: sid current mainline libgcj fails to build on mips{,el}: /home/doko/gcc/gcc-snapshot-20041003/build/gcc/xgcc -shared-libgcc -B/home/doko/gcc/gcc-snapshot-20041003/build/gcc/ -nostdinc++ -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src/.libs -B/usr/lib/gcc-snapshot/mipsel-linux-gnu/bin/ -B/usr/lib/gcc-snapshot/mipsel-linux-gnu/lib/ -isystem /usr/lib/gcc-snapshot/mipsel-linux-gnu/include -isystem /usr/lib/gcc-snapshot/mipsel-linux-gnu/sys-include -shared -nostdlib /usr/lib/crti.o /home/doko/gcc/gcc-snapshot-20041003/build/gcc/crtbeginS.o .libs/libgcj.la-2.o -Wl,--whole-archive ../libffi/.libs/libffi_convenience.a ../boehm-gc/.libs/libgcjgc_convenience.a ./libltdl/.libs/libltdlc.a -Wl,--no-whole-archive -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libstdc++-v3/src/.libs -L/home/doko/gcc/gcc-snapshot-20041003/build/mipsel-linux-gnu/libjava ../libffi/.libs/libffi_convenience.a ../boehm-gc/.libs/libgcjgc_convenience.a -lpthread ./libltdl/.libs/libltdlc.a -ldl -lz -L/home/doko/gcc/gcc-snapshot-20041003/build/gcc -lgcc_s -lc -lgcc_s /home/doko/gcc/gcc-snapshot-20041003/build/gcc/crtendS.o /usr/lib/crtn.o -Wl,-soname -Wl,libgcj.so.6 -o .libs/libgcj.so.6.0.0 /usr/lib/libc_nonshared.a(atexit.oS)(.text+0x38): In function `atexit': : relocation truncated to fit: R_MIPS_CALL16 __cxa_atexit@@GLIBC_2.2 collect2: ld returned 1 exit status make[2]: *** [libgcj.la] Error 1 can be fixed by compiling glibc's atexit with -mxgot (at least that's the way mozilla succeeded to build).