bootstrap/5187: gcc 3.0.3 fails to bootstrap on Sun Ultra 60with Solaris 8
Dr. David Kirkby
drkirkby@ntlworld.com
Thu Dec 27 10:53:00 GMT 2001
Paolo Carlini wrote:
> Almost :-)
> I agree that your problem is very, very strange and that there is still much we do not
> understand. But that PR and the corresponding patch, should tell us something...
> Some ideas come to my mind (I'm not a configury expert...):
> 1- Are you now always buildind in a separate directory, with the sources freshly unpacked?
> (I'm asking this because I saw many times in your transcripts "reconfigured")
> 2- What about those warning from Craig (Rodriguez) about the shell? For sure configure
> begins with "#!/bin/sh" and this is supposed to be an sh/bash-type shell, not a tcsh-type
> shell. I use interactively tcsh but sh is linked to bash in /bin.
> The host/target specific installation notes read for *-*-solaris2*:
I have made the following changes on the system to try to find a solution to
this. With some effort, I have managed to get gcc-3.0.3 to work, but not without
manually making a link after installation. Changes I made were:
1) renamed /bin/sh to something else and linked /bin/sh to /bin/ksh. Hence any
script calling /bin/sh will in fact pick up /bin/ksh. I'm still using tcsh as
the interactive shell.
2) Built autoconf version 2.13 and installed that.
3) Instead of logging in as root, which I had done before, I logged in as a
normal user. (The source files, which were simply 3.0.2 patched to 3.0.3, were
still located in /usr/local/src/gcc-3.0.3, which is only writable by root). I
needed to log in as root to install. In essence:
% configure --prefix=/usr/local/stow/gcc-3.0.3-build-as-davek
% /usr/local/bin/make bootstrap
% su
# /usr/local/bin/make install
Result - same as before. gcc is still unable to find it's cc1 file.
parrot /export/home/davek % gcc --verbose test.c
Using builtin specs.
Configured with: /usr/local/src/gcc-3.0.3/configure
--prefix=/usr/local/stow/gcc-3.0.3-build-as-davek
Thread model: posix
gcc version 3.0.3
cc1 -lang-c -v -D__GNUC__=3 -D__GNUC_MINOR__=0 -D__GNUC_PATCHLEVEL__=3 -Dsparc
-Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc_-D__sun__ -D__unix__ -D__svr4__
-D__SVR4 -D__sparc -D__sun -D__unix -Asystem=unix -Asystem=svr4 -D__NO_INLINE__
-D__STDC_HOED__=1 -D__GCC_NEW_VARARGS__ -Acpu=sparc -Amachine=sparc test.c
-quiet -dumpbase test.c -version -o /var/tmp/ccKXf9yJ.s
gcc: installation problem, cannot exec `cc1': No such file or directory
I then as before tried making a link from the cc1 file in the installation
directory, which is not in the path to /usr/local/bin/cc1.
Now it gets a bit further, and again indicates it looking in a directory with
@target_alias@ in it.
parrot /export/home/davek % gcc --verbose test.c
Using builtin specs.
Configured with: /usr/local/src/gcc-3.0.3/configure
--prefix=/usr/local/stow/gcc-3.0.3-build-as-davek
Thread model: posix
gcc version 3.0.3
cc1 -lang-c -v -D__GNUC__=3 -D__GNUC_MINOR__=0 -D__GNUC_PATCHLEVEL__=3 -Dsparc
-Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__
-D__SVR4 -D__sparc -D__sun -D__unix -Asystem=unix -Asystem=svr4 -D__NO_INLINE__
-D__STDC_HOSTED__=1 -D__GCC_NEW_VARARGS__ -Acpu=sparc -Amachine=sparc test.c
-quiet -dumpbase test.c -version -o /var/tmp/ccnsL5LE.s
GNU CPP version 3.0.3 (cpplib) (sparc)
GNU C version 3.0.3 (@target_alias@)
compiled by GNU C version 3.0.3.
ignoring nonexistent directory
"/usr/local/stow/gcc-3.0.3-build-as-davek/lib/gcc-lib/@target_alias@/3.0.3/include"
ignoring nonexistent directory
"/usr/local/stow/gcc-3.0.3-build-as-davek/lib/gcc-lib/@target_alias@/3.0.3/../../../../@target_alias@/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/local/stow/gcc-3.0.3-build-as-davek/include
/usr/include
End of search list.
/usr/ccs/bin/as -V -Qy -s -o /var/tmp/cc247Zrh.o /var/tmp/ccnsL5LE.s
/usr/ccs/bin/as: Sun WorkShop 6 99/08/18
/usr/ccs/bin/ld -V -Y P,/usr/ccs/lib:/usr/lib -Qy crt1.o crti.o
/usr/ccs/lib/values-Xa.o crtbegin.o -L/usr/ccs/bin -L/usr/ccs/lib
/var/tmp/cc247Zrh.o -lgcc -lc -lgcc crtend.o crtn.o
ld: fatal: file crt1.o: open failed: No such file or directory
parrot /export/home/davek %
Next I tied something else. I removed the entry '/usr/local/bin/cc1' I had just
created and now made another link. It is clear from the above output of gcc
--verbose test.c that it is looking in
/usr/local/stow/gcc-3.0.3-build-as-davek/lib/gcc-lib/@target_alias@/ ...
Hence I made a link between sparc-sun-solaris2.8 and @target_alias@ (as root
obviously). Therefore, if the compiler now looks in
/usr/local/stow/gcc-3.0.3-build-as-davek/lib/gcc-lib/@target_alias@, it will
find its files in
/usr/local/stow/gcc-3.0.3-build-as-davek/lib/gcc-lib/sparc-sun-solaris2.8.
% ls -l /usr/local/stow/gcc-3.0.3-build-as-davek/lib/gcc-lib
total 2
lrwxrwxrwx 1 root other 20 Dec 27 11:17 @target_alias@ ->
sparc-sun-solaris2.8
drwxr-xr-x 3 root other 512 Dec 27 10:37 sparc-sun-solaris2.8
The result of this is that gcc is capable of compiling and linking to produce
working executables that don't dump core !!! So the problem is clearly related
to the fact that the directory created with the installation process has the
name '@target_alias@' in it, rather than sparc-sun-solaris2.8. I had a look for
directories created below where I did the build
(/export/home/davek/buildgcc/gcc-3.0.3-build).
% find /export/home/davek/buildgcc/gcc-3.0.3-build -type d
/export/home/davek/buildgcc/gcc-3.0.3-build
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3/include
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3/include/sparc-sun-solaris2.8
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3/include/sparc-sun-solaris2.8/bits
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3/include/bits
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3/include/backward
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3/include/ext
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3/src
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3/src/.libs
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3/libmath
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3/libmath/.libs
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3/libio
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3/libsupc++
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3/libsupc++/.libs
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libstdc++-v3/testsuite
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libiberty
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libiberty/testsuite
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libf2c
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libf2c/libU77
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libf2c/libI77
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libf2c/libF77
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libf2c/libE77
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libobjc
/export/home/davek/buildgcc/gcc-3.0.3-build/sparc-sun-solaris2.8/libobjc/.libs
/export/home/davek/buildgcc/gcc-3.0.3-build/libiberty
/export/home/davek/buildgcc/gcc-3.0.3-build/libiberty/testsuite
/export/home/davek/buildgcc/gcc-3.0.3-build/zlib
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/intl
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/po
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/cp
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/f
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/java
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/objc
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/fixinc
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/sys
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/sys/scsi
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/sys/scsi/adapters
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/sys/scsi/impl
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/sys/fibre-channel
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/sys/fibre-channel/fca
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/sys/fs
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/sys/proc
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/arpa
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/iso
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/net
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/netinet
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/rpc
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/v7
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/root
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/root/usr
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/root/usr/dt
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/root/usr/dt/include
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/root/usr/dt/include/Xm
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/root/usr/openwin
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/root/usr/openwin/include
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/root/usr/openwin/include/X11
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/root/usr/openwin/include/X11/DPS
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/include/root/usr/openwin/include/kcms
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/libgcc
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/stage1
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/stage1/libgcc
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/stage1/intl
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/stage1/cp
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/stage1/f
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/stage1/java
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/stage1/objc
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/stage2
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/stage2/libgcc
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/stage2/intl
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/stage2/cp
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/stage2/f
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/stage2/java
/export/home/davek/buildgcc/gcc-3.0.3-build/gcc/stage2/objc
/export/home/davek/buildgcc/gcc-3.0.3-build/fastjar
what can be seen here is that the *build* process does not make any directories
that have '@target_alias@' in their name, but the *installation* process does.
The installation fails to convert @target_alias@ to sparc-sun-solaris2.8, so the
installation is broken. Indecently, my version of make is the gnu make, version
3.79.
Any more thoughts on what I can do to resolve this more fully ? Given I think
that the problem is related to installation only, I will try another version of
make to install gcc-3.0.3.
Has any changes been made to the installation process between 3.0.2 and 3.0.3
???
--
Dr. David Kirkby Ph.D,
email: drkirkby@ntlworld.com
former email address: davek@medphys.ucl.ac.uk
web page: http://www.david-kirkby.co.uk/
Amateur radio callsign: G8WRB
More information about the Gcc-bugs
mailing list