behavior of GCC_EXEC_PREFIX seems to have changed between 3.3.1 and 3.4.0

Jim Wilson wilson@specifixinc.com
Tue Jun 8 19:23:00 GMT 2004


Marty Leisner wrote:
> %export GCC_EXEC_PREFIX=/usr/local/bin/
> %gcc-3.3.1 -v -print-prog-name=ld
> Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.3.1/specs
> /usr/local/bin/ld
> %gcc-3.4.0 -v -print-prog-name=ld
> Reading specs from /usr/local/lib/gcc/sparc-sun-solaris2.8/3.4.0/specs
> /usr/local/lib/gcc/sparc-sun-solaris2.8/3.4.0/../../../../sparc-sun-solaris2.8/bin/ld

Sending mail to gcc-bugs is not very useful anymore, as it is primarily 
used for output from the bugzilla bug database.  If you want to file a 
bug, put it in bugzilla.  If you want to discuss an issue, send it to 
the gcc list.

Setting GCC_EXEC_PREFIX should no longer be necessary.  Gcc will figure 
this info out itself if it is installed someplace other than where it 
was configured for.

The correct value for GCC_EXEC_PREFIX as per the gcc-3.3 documentation 
would be /usr/local/lib/gcc-lib/.  I don't think you can expect 
consistent results if you use any other value.

The correct value for GCC_EXEC_PREFIX as per the gcc-3.4 documentation 
would be /usr/local/lib/gcc/.  I don't think you can expect consistent 
results if you use any other value.

ld is special, since ld may optionally be part of a gcc install is 
collect is built and installed.  So you may be getting different results 
with gcc-3.3 and gcc-3.4 because one built and installed collect and the 
other did not.  I can not determine this from the info you have 
provided, as this depends on how gcc was configured, built, and installed.

> It would also be useful to specify programs for various passes (I'm having problems
> with ld 2.14 and 2.15, and it would be nice to be able to do something like:
> 	gcc --ld-prog=/usr/local/bin/ld-2.14 ...
> and
> 	gcc --ld-prog=/usr/local/bin/ld-2.15

If you install the two binutils versions in different directories, which 
would be the normal case, then you can select among them by using the -B 
option.

> I'm also not clear why 3.3.1 installedd in <prefix>/lib/gcc-lib
> and 3.4.0 installed in
> 	<prefix>/lib/gcc

Because we changed the directory structure.  If you look closer, you 
will see that gcc-3.4 now uses libexec in addition to lib.  Probably the 
redundant lib/gcc-lib was simplied to lib/gcc at the same time.  And 
similarly, we use libexec/gcc for binaries.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



More information about the Gcc-bugs mailing list