This is the mail archive of the gcc-bugs@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: bootstrap/6969: cannot build gcc-3.1 with binutils-2.12.1 onsolaris8


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


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