bootstrap/6969: cannot build gcc-3.1 with binutils-2.12.1 on solaris8

Mark Mentovai mark@moxienet.com
Sat Jun 8 11:27:00 GMT 2002


http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&p
r=6969

gcc/configure does not attempt to detect whether ld is GNU ld unless you
specify a path to ld using --with-ld.  It defaults to assuming that GNU ld
is not in use, which causes the target macro files necessary for use with
GNU ld to not be included.  The same applies for as.  The excluded files are
gcc/config/sparc/sol2-gld.h, gcc/config/sparc/sol2-gld-bi.h for ld, and
gcc/config/sparc/sol2-gas-bi.h for as.

In this particular case, the omission of sol2-gld-bi results in link_arch
not including an emulation name to pass ld; GNU ld requires this and
defaults to elf32_sparc, while Solaris ld is capable of determining whether
32- or 64-bit operation is desired based on the format of the supplied
object files.

As a workaround, configure with "--with-gnu-as --with-gnu-ld" to force the
use of the GNU tools, or "--with-as=/usr/local/bin/as
--with-ld=/usr/local/bin/ld" to force gcc/configure to detect whether as and
ld are the GNU versions.  My preference is for the former.

The fix would involve making gcc/configure set with_gas and with_gnu_ld
appropriately based on the as and ld that will be used by the compiler
before running gcc/config.gcc.  gcc/configure checks for which as and ld
will be used a bit later in the process, so this would most likely involve a
minor reordering.

Mark



More information about the Gcc-bugs mailing list