This is the mail archive of the gcc-patches@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]
Other format: [Raw text]

Re: [patch c++]: Add special code for linker-plugin and libstdc++


> > -I/vol/d/home_kai/source/gcc-svn/gcc/libstdc++-v3/include/backward
> > -I/vol/d/home_kai/source/gcc-svn/gcc/libstdc++-v3/testsuite/util
> > -fmessage-length=0 -O2 -flto
> > -L/vol/d/source/gcc-svn/build64/x86_64-pc-mingw32/./libstdc++-v3/src/.libs
> > -B/vol/d/source/gcc-svn/build64/x86_64-pc-mingw32/./libstdc++-v3/src/.libs
> > -L/vol/d/source/gcc-svn/build64/x86_64-pc-mingw32/./libiberty -lm -o
> > ./eh-alloca-1.exe
> > /vol/c/TEMP/ccqzwYW8.ltrans0.ltrans.o:ccqzwYW8.ltrans0.o:(.text+0x10):
> > undefined reference to `__gxx_personality_sj0'
> > /vol/c/TEMP/ccqzwYW8.ltrans0.ltrans.o:ccqzwYW8.ltrans0.o:(.text.startup+0x6e):
> > undefined reference to `__gxx_personality_sj0'
> > collect2: ld returned 1 exit status
> > compiler exited with status 1
> > output is:
> > /vol/c/TEMP/ccqzwYW8.ltrans0.ltrans.o:ccqzwYW8.ltrans0.o:(.text+0x10):
> > undefined reference to `__gxx_personality_sj0'
> > /vol/c/TEMP/ccqzwYW8.ltrans0.ltrans.o:ccqzwYW8.ltrans0.o:(.text.startup+0x6e):
> > undefined reference to `__gxx_personality_sj0'
> > collect2: ld returned 1 exit status
> >
> > FAIL: g++.dg/torture/stackalign/eh-alloca-1.C (test for excess errors)
> > Excess errors:
> > ...
> >
> >
> > This causes for x86_64-w64-mingw32 more then 80 regressions failures.
> > Interestingly it is always just the symbol __gxx_personality_sj0,
> > which isn't resolved. And this symbol is part of libstdc++ (libsup++).
> > If someone is interested I can sent the testsuite log of g++.dg
> > testsuite run for it.
> 
> That's indeed a symbol reference we introduce late (the symbol
> referenced can change when merging CUs).  Also on linux
> the C++ EH personality is in libgcc_s and not taken from libsupc++.

Ah, yes, we can autogenerate references to libsupc++.
> 
> Simply emitting all EH personality references we would emit
> in lto-symtab.c would fix the issue I guess.

Well, I guess handling libsupc++ as proposed in the patch makes most sense.
Emiting fake symbols to lto-symtab is even uglier...

Honza
> 
> Richard.
> 
> > Regards,
> > Kai
> >


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