This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
[ GCC 3.0.x] Significant regression on OpenBSD i386
- To: gcc-bugs at gcc dot gnu dot org, gcc at gcc dot gnu dot org
- Subject: [ GCC 3.0.x] Significant regression on OpenBSD i386
- From: Marc Espie <espie at schutzenberger dot liafa dot jussieu dot fr>
- Date: Wed, 22 Aug 2001 14:01:45 +0200
- Reply-To: Marc dot Espie at liafa dot jussieu dot fr
I've finally gotten around to teaching libtool about our shared libraries.
However, I've got a nasty surprise:
lusheeta-~ports/lang/egcs/stable/w-gcc-3.0.1-core/build-i386/i386-unknown-openbsd2.9/libstdc++-v3/src% /spare/ports/lang/egcs/stable/w-gcc-3.0.1-core/build-i386/gcc/xgcc -B/spare/ports/lang/egcs/stable/w-gcc-3.0.1-core/build-i386/gcc/ -nostdinc++ -L/spare/ports/lang/egcs/stable/w-gcc-3.0.1-core/build-i386/i386-unknown-openbsd2.9/libstdc++-v3/src -L/spare/ports/lang/egcs/stable/w-gcc-3.0.1-core/build-i386/i386-unknown-openbsd2.9/libstdc++-v3/src/.libs -B/usr/local/i386-unknown-openbsd2.9/bin/ -B/usr/local/i386-unknown-openbsd2.9/lib/ -isystem /usr/local/i386-unknown-openbsd2.9/include -nostdinc++ -I/spare/ports/lang/egcs/stable/w-gcc-3.0.1-core/build-i386/i386-unknown-openbsd2.9/libstdc++-v3/include/i386-unknown-openbsd2.9 -I/spare/ports/lang/egcs/stable/w-gcc-3.0.1-core/build-i386/i386-unknown-openbsd2.9/libstdc++-v3/include -I/usr/ports/lang/egcs/stable/w-gcc-3.0.1-core/gcc-3.0.1/libstdc++-v3/libsupc++ -I/usr/ports/lang/egcs/stable/w-gcc-3.0.1-core/gcc-3.0.1/libstdc++-v3/libmath -O2 -g -fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline -fdiagnostics-show-location=once -g -I/spare/ports/lang/egcs/stable/w-gcc-3.0.1-core/build-i386/i386-unknown-openbsd2.9/libstdc++-v3/include/backward -c /usr/ports/lang/egcs/stable/w-gcc-3.0.1-core/gcc-3.0.1/libstdc++-v3/src/strstream.cc -fPIC -DPIC -save-temps -o .libs/strstream.o
strstream.s: Assembler messages:
strstream.s:10830: Warning: GOT relocation burb: `LLSDA33' should be global
strstream.s:10830: Warning: GOT relocation burb: `LLSDA32' should be global
strstream.s:10830: Warning: GOT relocation burb: `LLSDA31' should be global
strstream.s:10830: Warning: GOT relocation burb: `LLSDA30' should be global
strstream.s:10830: Warning: GOT relocation burb: `LLSDA29' should be global
[snip]
which translates into:
collect2: ld terminated with signal 11 [Segmentation fault]
a few minutes later.
The incriminated relocations stem from code that looks like:
.globl __ZNSt9strstreamC2EPciSt13_Ios_Openmode
.type __ZNSt9strstreamC2EPciSt13_Ios_Openmode , @function
__ZNSt9strstreamC2EPciSt13_Ios_Openmode:
.stabs "/usr/ports/lang/egcs/stable/w-gcc-3.0.1-core/gcc-3.0.1/libstdc+
+-v3/src/strstream.cc",132,0,0,Ltext485
Ltext485:
.stabd 68,0,426
LBB196:
pushl %ebp
movl %esp, %ebp
pushl %edi
pushl %esi
pushl %ebx
subl $60, %esp
call L1775
L1775:
popl %ebx
addl $__GLOBAL_OFFSET_TABLE_+[.-L1775], %ebx
movl ___gxx_personality_sj0@GOT(%ebx), %eax
movl %eax, -32(%ebp)
movl LLSDA30@GOT(%ebx), %eax
movl %eax, -28(%ebp)
leal -12(%ebp), %eax
movl %eax, -24(%ebp)
leal L1773@GOTOFF(%ebx), %eax
movl %eax, -20(%ebp)
movl %esp, -16(%ebp)
leal -56(%ebp), %eax
subl $12, %esp
pushl %eax
call __Unwind_SjLj_Register@PLT
addl $12, %esp
[...]
LLSDA30:
.byte 0xff
.byte 0xff
.byte 0x3
.byte 0x8
.byte 0x0
.byte 0x0
.byte 0x1
.byte 0x0
.byte 0x2
.byte 0x0
.byte 0x3
.byte 0x0
.text
I had already noticed a similar problem with gcj.
This is a *very* significant regression from 2.95, since this
basically kills shared library support.