This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

problem: install gcc as cross compiler


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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]