On Tue, May 24, 2011 at 5:34 PM, Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote: > Uros Bizjak <ubiz...@gmail.com> writes: > >>> I think I tried something along these lines, but failed with duplicate >>> @plt@plt for PIC code. >> >> Hm, there is no %P1 present, so I don't think this should be an issue. > > Unfortunately, I do get assembler errors (Sun as at the moment) with > your updated patch: > > libtool: compile: /var/gcc/gcc-4.7.0-20110523/10-gcc/./gcc/xgcc > -shared-libgcc -B/var/gcc/gcc-4.7.0-20110523/10-gcc/./gcc -nostdinc++ > -L/var/gcc/gcc-4.7.0-20110523/10-gcc/i386-pc-solaris2.10/amd64/libstdc++-v3/src > > -L/var/gcc/gcc-4.7.0-20110523/10-gcc/i386-pc-solaris2.10/amd64/libstdc++-v3/src/.libs > -B/usr/local/i386-pc-solaris2.10/bin/ -B/usr/local/i386-pc-solaris2.10/lib/ > -isystem /usr/local/i386-pc-solaris2.10/include -isystem > /usr/local/i386-pc-solaris2.10/sys-include -m64 > -I/vol/gcc/src/hg/trunk/solaris/libstdc++-v3/../gcc > -I/var/gcc/gcc-4.7.0-20110523/10-gcc/i386-pc-solaris2.10/amd64/libstdc++-v3/include/i386-pc-solaris2.10 > > -I/var/gcc/gcc-4.7.0-20110523/10-gcc/i386-pc-solaris2.10/amd64/libstdc++-v3/include > -I/vol/gcc/src/hg/trunk/solaris/libstdc++-v3/libsupc++ > -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual > -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 > -m64 -c > /vol/gcc/src/hg/trunk/solaris/libstdc++-v3/libsupc++/fundamental_type_info.cc > -fPIC -DPIC -o funinfo.o > damental_type_info.o > Assembler: eh_globals.cc > "/var/tmp//ccJ1MA8h.s", line 17 : Syntax error > Near line: " call __tls_get_addr(%rip)@plt" > "/var/tmp//ccJ1MA8h.s", line 38 : Syntax error > Near line: " call __tls_get_addr(%rip)@plt" > make[9]: *** [eh_globals.lo] Error 1
Bah. %P has a special handling that removes (%rip). Are you sure Sun assembler requests @plt in PIC and non-PIC cases? Can we solve this with TARGET_SUN_TLS somehow? Thanks, Uros.