This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
problem: install gcc as cross compiler
- To: help-gcc at gnu dot org, gnu at gnu dot org
- Subject: problem: install gcc as cross compiler
- From: Mueller-Lehnitz at t-online dot de (Anja Müller)
- Date: Sat, 06 Nov 1999 20:06:34 +0100
Hello, my name is Anja Müller. I have a problem when installing gcc as a
cross compiler and need your help. I want to install the gcc as cross
compiler for a sparc architecture, but it doesn't function. I read the file
INSTALL from the gcc source package and did the particular steps in the
right order. Executing "configure ..." and "make LANGUAGES=c" succeeded
without errors, but "make
stage1" was aborted, because lot of files couldn't be found. To give you an
overview I want to list the single steps before and during the installation:
At first I was buildung the binutils package for a sparc architecture:
configure --prefix=/usr/local --exec-prefix=/usr/local
--target=sparc-sun-sunos4.1.1
make
make install
The directory /usr/local/sparc-sun-sunos4.1.1 was generated and in
/usr/local/sparc-sun-sunos4.1.1/bin the programs ar,as, ld, nm, ranlib,
strip are located now. Furthermore there are adequate prgrams in
/usr/local/bin :
sparc-sun-sunos4.1.1-addr2line
sparc-sun-sunos4.1.1-ar
sparc-sun-sunos4.1.1-as
sparc-sun-sunos4.1.1-c++filt
sparc-sun-sunos4.1.1-gasp
sparc-sun-sunos4.1.1-ld
sparc-sun-sunos4.1.1-nm
sparc-sun-sunos4.1.1-objcopy
sparc-sun-sunos4.1.1-objdump
sparc-sun-sunos4.1.1-ranlib
sparc-sun-sunos4.1.1-size
sparc-sun-sunos4.1.1-strings
sparc-sun-sunos4.1.1-strip
To provide special libaries for sparc I had downloaded the two packages
glibc-2.1.1.16.sparc.rpm and glibc-devel-2.1.1.16.sparc.rpm. I unpacked them
with:
rpm2cpio glibc-2.1.1.16.sparc.rpm &&& cpio --extract --make-directories
rpm2cpio glibc-devel-2.1.1.16.sparc.rpm &&& cpio --extract
--make-directories
Then I changed in the new directory and copied the include files and the
libaries to the sparc directory :
cp -R usr/include /usr/local/sparc-sun-sunos4.1.1
cp -R /usr/src/linux/include/linux
/usr/local/sparc-sun-sunos4.1.1/include/linux
cp -R /usr/src/linux/include/asm-sparc
/usr/local/sparc-sun-sunos4.1.1/include/asm
cp -R lib/* /usr/local/sparc-sun-sunos4.1.1/lib
mkdir /usr/local/sparc-sun-sunos4.1.1/usr
cp -R usr/lib /usr/local/sparc-sun-sunos4.1.1/usr
After that I opened the shared libary libc.so in
/usr/local/sparc-sun-sunos4.1.1/usr/lib/ to modify the path:
GROUP ( /usr/local/sparc-sun-sunos4.1.1/lib/libc.so.6
/usr/local/sparc-sun-sunos4.1.1/usr/lib/libc_nonshared.a )
Cause of troubles during the first installation step "make LANGUAGES=c"
where the whole target machine directory was expected to be in /usr and not
in /usr/local, I created a symbolic link in /usr :
ln -s /usr/local/sparc-sun-sunos4.1.1 sparc-sun-sunos4.1.1
Then I started the installation of gcc as cross compiler:
configure --target=sparc-sun-sunos4.1.1 -> successful
make LANGUAGES=c -> successful
Now there was this question about the libgcc1.a library: I don't have a
sparc machine here, so I couldn't compile the libgcc1.c there. And I have
not another cross compiler for sparc on my system. So where can I get this
file compiled for sparc ? In the gcc source directory I went to the
subdirectory config/sparc where I found the file lb1spc.asm which is an
assembler version of the libgcc1.c especially for sparc. So I thought I can
compiler this file with my sparc cross assembler that I had from the
binutils package. Do you
think this is the problem ?
/usr/local/sparc-sun-sunos4.1.1/bin/as lb1spc.asm -o lb1spc.o
/usr/local/sparc-sun-sunos4.1.1/bin/ar qsv libgcc1.a lb1spc.o
I copied this file (libgcc1.a) to the gcc build directory (source directory)
and went on with the next installation command "make stage1":
make stage1
Unfortunately this stopped with a lot of errors. I copied them:
errors when making stage1:
:~/gcc-2.7.2.3 >make stage1
if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi
for dir in . cp ; \
do \
if [ -d stage1/$dir ] ; then true ; else mkdir stage1/$dir ; fi ; \
done
mv *.o insn-flags.h insn-config.h insn-codes.h insn-output.c insn-recog.c
insn-e
mit.c insn-extract.c insn-peep.c insn-attr.h insn-attrtab.c insn-opinit.c
stamp-
flags stamp-config stamp-codes stamp-output stamp-recog stamp-emit
stamp-extract
stamp-peep stamp-attr stamp-attrtab stamp-opinit stamp-proto stamp-crt
stamp-cr
tS genemit genoutput genrecog genextract genflags gencodes genconfig genpeep
gen
attrtab genattr genopinit bc-arity.h bc-opcode.h bc-opname.h stamp-bcarity
stamp
-bcopcode stamp-bcopname bi-arity bi-opcode bi-opname xgcc cc1 cpp
gcc-cross
cccp cc1obj enquire protoize unprotoize specs collect2 underscore.c *.greg
*.lr
eg *.combine *.flow *.cse *.jump *.rtl *.tree *.loop *.dbr *.jump2 *.sched
*.cse
2 *.sched2 *.stack *.[si] g++ g++-cross cc1plus stage1
mv: *.o: Datei oder Verzeichnis nicht gefunden
mv: insn-flags.h: Datei oder Verzeichnis nicht gefunden
mv: insn-config.h: Datei oder Verzeichnis nicht gefunden
mv: insn-codes.h: Datei oder Verzeichnis nicht gefunden
mv: insn-output.c: Datei oder Verzeichnis nicht gefunden
mv: insn-recog.c: Datei oder Verzeichnis nicht gefunden
mv: insn-emit.c: Datei oder Verzeichnis nicht gefunden
mv: insn-extract.c: Datei oder Verzeichnis nicht gefunden
mv: insn-peep.c: Datei oder Verzeichnis nicht gefunden
mv: insn-attr.h: Datei oder Verzeichnis nicht gefunden
mv: insn-attrtab.c: Datei oder Verzeichnis nicht gefunden
mv: insn-opinit.c: Datei oder Verzeichnis nicht gefunden
mv: stamp-flags: Datei oder Verzeichnis nicht gefunden
mv: stamp-config: Datei oder Verzeichnis nicht gefunden
mv: stamp-codes: Datei oder Verzeichnis nicht gefunden
mv: stamp-output: Datei oder Verzeichnis nicht gefunden
mv: stamp-recog: Datei oder Verzeichnis nicht gefunden
mv: stamp-emit: Datei oder Verzeichnis nicht gefunden
mv: stamp-extract: Datei oder Verzeichnis nicht gefunden
mv: stamp-peep: Datei oder Verzeichnis nicht gefunden
mv: stamp-attr: Datei oder Verzeichnis nicht gefunden
mv: stamp-attrtab: Datei oder Verzeichnis nicht gefunden
mv: stamp-opinit: Datei oder Verzeichnis nicht gefunden
mv: stamp-proto: Datei oder Verzeichnis nicht gefunden
mv: stamp-crt: Datei oder Verzeichnis nicht gefunden
mv: stamp-crtS: Datei oder Verzeichnis nicht gefunden
mv: genemit: Datei oder Verzeichnis nicht gefunden
mv: genoutput: Datei oder Verzeichnis nicht gefunden
mv: genrecog: Datei oder Verzeichnis nicht gefunden
mv: genextract: Datei oder Verzeichnis nicht gefunden
mv: genflags: Datei oder Verzeichnis nicht gefunden
mv: gencodes: Datei oder Verzeichnis nicht gefunden
mv: genconfig: Datei oder Verzeichnis nicht gefunden
mv: genpeep: Datei oder Verzeichnis nicht gefunden
mv: genattrtab: Datei oder Verzeichnis nicht gefunden
mv: genattr: Datei oder Verzeichnis nicht gefunden
mv: genopinit: Datei oder Verzeichnis nicht gefunden
mv: bc-arity.h: Datei oder Verzeichnis nicht gefunden
mv: bc-opcode.h: Datei oder Verzeichnis nicht gefunden
mv: bc-opname.h: Datei oder Verzeichnis nicht gefunden
mv: stamp-bcarity: Datei oder Verzeichnis nicht gefunden
mv: stamp-bcopcode: Datei oder Verzeichnis nicht gefunden
mv: stamp-bcopname: Datei oder Verzeichnis nicht gefunden
mv: bi-arity: Datei oder Verzeichnis nicht gefunden
mv: bi-opcode: Datei oder Verzeichnis nicht gefunden
mv: bi-opname: Datei oder Verzeichnis nicht gefunden
mv: xgcc: Datei oder Verzeichnis nicht gefunden
mv: cc1: Datei oder Verzeichnis nicht gefunden
mv: cpp: Datei oder Verzeichnis nicht gefunden
mv: gcc-cross: Datei oder Verzeichnis nicht gefunden
mv: cccp: Datei oder Verzeichnis nicht gefunden
mv: cc1obj: Datei oder Verzeichnis nicht gefunden
mv: enquire: Datei oder Verzeichnis nicht gefunden
mv: protoize: Datei oder Verzeichnis nicht gefunden
mv: unprotoize: Datei oder Verzeichnis nicht gefunden
mv: specs: Datei oder Verzeichnis nicht gefunden
mv: collect2: Datei oder Verzeichnis nicht gefunden
mv: underscore.c: Datei oder Verzeichnis nicht gefunden
mv: *.greg: Datei oder Verzeichnis nicht gefunden
mv: *.lreg: Datei oder Verzeichnis nicht gefunden
mv: *.combine: Datei oder Verzeichnis nicht gefunden
mv: *.flow: Datei oder Verzeichnis nicht gefunden
mv: *.cse: Datei oder Verzeichnis nicht gefunden
mv: *.jump: Datei oder Verzeichnis nicht gefunden
mv: *.rtl: Datei oder Verzeichnis nicht gefunden
mv: *.tree: Datei oder Verzeichnis nicht gefunden
mv: *.loop: Datei oder Verzeichnis nicht gefunden
mv: *.dbr: Datei oder Verzeichnis nicht gefunden
mv: *.jump2: Datei oder Verzeichnis nicht gefunden
mv: *.sched: Datei oder Verzeichnis nicht gefunden
mv: *.cse2: Datei oder Verzeichnis nicht gefunden
mv: *.sched2: Datei oder Verzeichnis nicht gefunden
mv: *.stack: Datei oder Verzeichnis nicht gefunden
mv: *.[si]: Datei oder Verzeichnis nicht gefunden
mv: g++: Datei oder Verzeichnis nicht gefunden
mv: g++-cross: Datei oder Verzeichnis nicht gefunden
mv: cc1plus: Datei oder Verzeichnis nicht gefunden
make: [stage1-start] Error 1 (ignored)
if [ -f as ] ; then ln -s ../as stage1 || cp as stage1 ; else true ; fi
ln: stage1/as: File exists
cp: `as' and `stage1/as' are the same file
make: [stage1-start] Error 1 (ignored)
if [ -f ld ] ; then ln -s ../ld stage1 || cp ld stage1 ; else true ; fi
if [ -f collect-ld ] ; then ln -s ../collect-ld stage1 || cp collect-ld
stage1 ;
else true ; fi
rm -f stage1/libgcc.a
cp libgcc.a stage1
if [ -f /usr/sparc-sun-sunos4.1.1/bin/ranlib ] ; then
/usr/sparc-sun-sunos4.1.1/
bin/ranlib stage1/libgcc.a; else true; fi
mv cp/*.o stage1/cp
mv: cp/*.o: Datei oder Verzeichnis nicht gefunden
make: [c++.stage1] Error 1 (ignored)
:~/gcc-2.7.2.3 >
It seems that there are a lot of files missing. Do you know what I have made
wrong ? Please help me !
Thank you,
Anja