Ah, good point. I don't think my "real" scenario did that though. I'll investigate more. Networking problems were?are hampering download 4.5.0 and build and configure it. I did come up with Makefile: Assemble = $(shell if test -x /opt/csw/gnu/as ; then echo /opt/csw/gnu/as ; \ elif test -x /usr/sfw/bin/gas ; then echo /usr/sfw/bin/gas ; \ else echo "unable to find GNU assembler" ; fi ) :) which addresses why I wasn't using GNU as. (Yes, I've heard of autoconf.) Thanks, later, - Jay
---------------------------------------- > From: pins...@gmail.com > To: jay.kr...@cornell.edu > Subject: Re: pic+64bit+sun assembler+unwind-tables => illegal cross section > subtraction > Date: Sun, 9 May 2010 17:48:04 -0700 > CC: gcc@gcc.gnu.org > > > > Sent from my iPhone > > On May 9, 2010, at 5:42 PM, Jay K 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