Building gcc-4.2.4 on Solaris 9
Jay
jayk123@hotmail.com
Thu Jul 31 17:03:00 GMT 2008
On Wed, Jul 30, 2008 at 7:56 AM, Jay wrote:
[Jay] This definitely won't be the quickest way.
[J] Quicker would be to set CC/CFLAGS and use -disable-bootstrap.
[David] Before I try your suggestions, another question: It seems like
[D] setting BOOT_CFLAGS to include "-m64" should do what I want. The
[D] Makefile says:
[D] # BOOT_CFLAGS is the value of CFLAGS to pass to the stage2, stage3 and stage4
[D] # bootstrap compilations.
[D] If I understand this correctly, this would cause gcc from the later
[D] stages to be called with -m64, so that they would, when building the
[D] compiler, produce 64-bit objects and be able to link against my 64-bit
[D] libgmp and libmpfr. Is this right?
Maybe. I don't know. There are many options..
I should clarify/correct, that another thing i would try, which might
have the advantage of
- working vs. not-working
- leaving you with more functionality installed in the end, maybe for the same time cost
is first build a sparc(32) => sparc64 cross compiler
install it
and then a native sparc64 => sparc64
mkdir /obj/1
cd /obj/1
/src/configure -host sparc-sun-solaris2.9 -target sparc64-sun-solaris2.9 -disable-bootstrap -disable-nls -disable-multilib -enable-languages=c,c++ -verbose
make
sudo make install
In truth, you can stop here. The next part doesn't buy much. (numbers as to the perf of gcc -host sparc vs. -host sparc64? or more generally foo vs. foo64?)
mkdir /obj/2
cd /obj/2
# following line identical to above but for -host sparc vs. -host sparc64
/src/configure -host sparc64-sun-solaris2.9 -target sparc64-sun-solaris2.9 -disable-bootstrap -disable-nls -disable-multilib -enable-languages=c,c++ -verbose
make
sudo make install
Personally I am bothered by the fact that this rebuilds a lot of the same code the same way multiple times.
e.g. libiberty.
However if you can spare the day of waiting and want it to just work and don't care about making it faster for future runs,
this direct approach should work.
I am working on a "system" (ie: a little bit of code) that minimize the rebuilds and reconfigurations and non-use of config.cache.
For example, if I am building multiple toolsets, with "some overlap" -- e.g. same build/host, varying target, I shouldn't have to
compile libiberty more than once per platform. Likewise for binutils, if I -enable-targets=all (but -enable-targets=all has small problems in bfd/opcodes,
and doesn't currently work with ld, gas, and certainly gcc).
I'd really like gcc, ld, as all take a -target command line parameter, and have gcc/cc1/as run in just one process, possibly
compiling multiple source files (e.g. Visual C++ cl -c 1.c 2.c 3.c vs. gcc -c 1.c 2.c 3.c -- one process vs. seven!)
But I until I have this working well...
- Jay
More information about the Gcc-help
mailing list