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