On 12 April 2006 22:18, Mark Cuss wrote:
The
guy who was here before me set up the previous version (gcc-3.3.3)
gcc 3.3.3 was compiled with the following configure flags:
configure --with-gnu-as --with-as=/cdl/apps/bin/sun/as --with-gnu-ld
--with-ld=/cdl/apps/bin/sun/ld --enable-langauges=c,c++ --disable-shared
--prefix=/cdl/apps/.software/sun/gcc-3.3.3
I've successfully built and installed gcc-3.4.4 with the following
configure
flags:
/cdl/apps/.software/sun/build/gcc-3.4.4-build/gcc-3.4.4/configure
--disable-shared --prefix=/cdl/apps/.software/sun/gcc-3.4.4/
--enable-languages=c,c++
However, in this case, I don't have the "gcc-lib" directory anymore.
When I
try to build stuff with this compiler (a simple helloworld), the linker
returns symbol errors, likely because the Sun-supplied ld and not the GNU
ld
is being used (even though a GNU ld exists in my PATH)
I don't understand what your last guy was doing, but he's configured it
to
point at the sun 'as' and 'ld' but tried to tell it that they're gnu 'as'
and
'ld'. Weird. Maybe he's overwritten the binaries in /cdl/apps/bin/sun
with
gnu versions or something odd like that.
The as and ld in /cdl/apps/bin/sun are GNU as and ld, built from binutils
2.14. I must not have explained this properly - the whole mess is
confusing!
our Developers need to use Purify Plus on Sun, and if I do this, it
breaks
Purify because it somehow uses it's own linker at buld time. The
solution
from Purify tech support was to go into
$prefix/lib/gcc-lib/sparc-sun-solaris2.9/<version> and drop in symbolic
links to the GNU ld and as. When I attempted to do this though, I
realized
this directory doesn't seem to exist under gcc-3.4.4
How about $prefix/lib/gcc/sparc-sun-etc.etc.etc. ? 'gcc-lib' got changed
to
'gcc' at some point between 3.3 and 3.4.
That's the thing I was looking for - I need to know where to put the
symlinks to the as and ld that I want to use... It looks like this did the
trick - thanks!
So, to make a painfully long story short, I need to know how gcc 3.4.4
decides upon which linker / assembler it uses. I read the configure
instructions and found that when the compiler is built is uses a whole
bunch
of rules to find as and ld, and it seems apparent that I'm using the Sun
ld
and as instead of the GNU one. However, the old trick of putting
symlinks
in $prefix/lib/gcc-lib/sparc-sun-solaris2.9/<version> doesn't work
anymore.
Could someone please point a newbie in the right direction?
Why didn't you just use the exact same configure options that worked so
well
for the last guy? That's the first thing I'd try.
I did try that, but if I hardcode the assembler and linker at configure
time, then this breaks Purify. This is why I need to do this symbolic link
thing - apparently Purify needs this...
Thanks!
Mark