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]
Other format: [Raw text]

Re: pic+64bit+sun assembler+unwind-tables => illegal cross section subtraction




Sent from my iPhone

On May 9, 2010, at 5:42 PM, Jay K <jay.krell@cornell.edu> wrote:


I haven't tried 4.5.0 yet.



-bash-4.1$ /opt/csw/gcc4/bin/g++ -v
Using built-in specs.
Target: i386-pc-solaris2.10
Configured with: ../gcc-4.3.3/configure --prefix=/opt/csw/gcc4 -- exec-prefix=/op
t/csw/gcc4



--with-gnu-as


You configured gcc to build with the gnu as but then run with it so what do you expect.


--with-as=/opt/csw/bin/gas --without-gnu-ld --with-ld=/
usr/ccs/bin/ld --enable-nls --with-included-gettext --with-libiconv- prefix=/opt/
csw --with-x --with-mpfr=/opt/csw --with-gmp=/opt/csw --enable-java- awt=xlib --e
nable-libada --enable-libssp --enable-objc-gc --enable-threads=posix --enable-st
age1-languages=c --enable-languages=ada,c,c++,fortran,java,objc
Thread model: posix
gcc version 4.3.3 (GCC)



/opt/csw/gcc4/bin/g++ 1.cpp -fPIC -S -m64
"1.s", line 117 : Warning: Illegal subtraction - symbols from different sections: ".LFB2", ".DOT-2"
"1.s", line 120 : Warning: Illegal subtraction - symbols from different sections: ".LLSDA2", ".DOT-3"
void F1();
void F2()
{
try { F1(); } catch(...) {F2(); }
}



/usr/ccs/bin/as -xarch=amd64 1.s




or similar:
-bash-4.1$ cat 2.c
void F1() { }


/opt/csw/gcc4/bin/gcc -fPIC -S -funwind-tables -m64 2.c
/usr/ccs/bin/as -xarch=amd64 2.s
Assembler: 2.c
"2.s", line 38 : Warning: Illegal subtraction - symbols from different sections: ".LFB2", ".DOT-1"



I'm aware of this thread: http://gcc.gnu.org/ml/gcc-patches/2006-07/msg00908.html



I think I'll switch to GNU as, or omit -funwind-tables for now.
 Or see if 4.5.0 fixes it.
Sparc32, sparc64, x86 work.


-gstabs+ also generated .stabd that Sun assembler didn't like.
I switched to -gstabs.
Maybe I messed up something though, as it looks like gcc is aware not to output .stabd to non-gas.
More reason to use GNU assembler, understood.



http://gcc.gnu.org/install/specific.html#ix86-x-solaris210 could be a bit more precise:
Recent versions of the Sun assembler in /usr/ccs/bin/as work almost as well, though.


"almost as well"?
Maybe that should say more, like, use -g or -gstabs instead of - gstabs+, don't use 64bit+pic+unwind-tables or 64bit+pic+exceptions



I switched to Sun assembler because I'm seeing GNU as installed in different places on different machines.
Some people don't install /usr/sfw and the install elsewhere.



- Jay


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