This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
RE: gcc 3.1 fails to bootstrap on sparc64-sun-solaris2.8
- From: "Rupert Wood" <me at rupey dot net>
- To: "'Alexander Poquet'" <atpoquet at ucdavis dot edu>
- Cc: <gcc-help at gcc dot gnu dot org>
- Date: Thu, 23 May 2002 08:46:03 +0100
- Subject: RE: gcc 3.1 fails to bootstrap on sparc64-sun-solaris2.8
Alexander Poquet wrote:
> Trying to build a 64-bit capable gcc on sparcv9.
A regular sparc-sun-solaris2.8 build will generate 64-bit code with flag
'-m64' (unless you configured '--disable-multilibs'). You don't have to
build the compiler as 64-bit.
> ld: warning: file ../libiberty/libiberty.a(hashtab.o): wrong
> ELF class: ELFCLASS32
The problem is that the top-level libiberty was built as 32-bit. GCC
assumes, since you've told it that it's building a native compiler, that
the bootstrap compiler generates code for the target whereas in this
case the target is 64-bit but the bootstrap compiler only generates
32-bit code.
Clean out the top level libiberty directory and reconfigure and build
using the xgcc you've just built, i.e. something along the lines of:
CC="../gcc/stage1/xgcc -B../gcc/stage1/" \
<srcdir>/libiberty/configure <etc>
make CC="../gcc/stage1/xgcc -B../gcc/stage1/"
Go back and restart the bootstrap; it should then complete (or, at
least, it has for me before from this situation.)
Other ways that should build sparc64:
1. If your GCC 3.0 is multilibbed, it will understand -m64. Then:
CC="gcc -m64" ../gcc/configure <etc> sparc64-sun-solaris2.8
make bootstrap CC="gcc -m64"
i.e. get the bootstrap compiler to generate 64-bit code. Note
that GCC 3.0's 64-bit ABI support is incomplete but this will
probably work. (It may be safer to build GCC 3.1 as
sparc-sun-solaris2.8 and then use that with -m64 as the
bootstrap compiler.)
2. Generate a cross-compiler to sparc64 then use that as the build
compiler to bootstrap a 64-bit gcc. (Don't know if you'd need a
complete toolchain or not - never tried this.)
However, I still recommend that you build sparc-sun-solaris2.8 and use
'-m64' when necessary.
Rup.