This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[ GCC 3.0.x] Significant regression on OpenBSD i386


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]