ARM gcc 3.1 crosscompiler on host i386 linux build fails

Karel Gardas kgardas@objectsecurity.com
Mon Apr 8 12:57:00 GMT 2002


On Mon, 8 Apr 2002, Rod Stewart wrote:

> > > > libgcc_s.so.1 /home/karel/usr/local/arm//arm-linux/bin/ld: cannot open
> > > > crti.o: No such file or directory collect2: ld returned 1 exit status
> > > > make[2]: *** [libgcc_s.so] Error 1 make[2]: Leaving directory
> > > > `/home/karel/usr/src/arm/obj/gcc' make[1]: *** [libgcc.a] Error 2 make[1]:
> > > > Leaving directory `/home/karel/usr/src/arm/obj/gcc' make: *** [all-gcc]
> > > > Error 2
> > > >
> > > > Have I missed something important?
> > >
> > > You need a crti.o, which comes from glibc.  Well if all you want is to
> >
> > I don't think so. The page stays clearly: ''Build gcc (the hard way)
> > without glibc.'' So I think there is a way to build arm-gcc (minimal) w/o
> > glibc and then with using this minimal compiler build arm glibc and then
> > again (but now full) build gcc.
>
> Sorry, I should have been more clear.  You should now have a partially
> working gcc.  You can run 'make install' and use it to build glibc.  After
> which you can build a full bootstrap of gcc.
>

OK, I've done make install, which fails and doesn't copy xgcc, so I've
done it manually and copy gcc/xgcc to
/home/karel/usr/local/arm/bin/arm-linux-gcc.

Then I've tried to build gcc:

1) configured with:
../glibc-2.2.5/configure arm-linux --build=i386-pc-linux-gnu
--prefix=/home/karel/usr/local/arm/arm-linux/
--enable-add-ons=linuxthreads

2) build
  - build fails on linking because linker ask for '-lgcc' library. I've
tried 3x times to remove '-lgcc' from the command line and execute
corrected commandline in appropriate directory.
So I've continued until the point where linking failed:

rm -f /home/karel/usr/src/arm/glibc-obj/libc.so.6.new
/bin/sh ../scripts/rellns-sh /home/karel/usr/src/arm/glibc-obj/libc.so /home/karel/usr/src/arm/glibc-obj/libc.so.6.new
mv -f /home/karel/usr/src/arm/glibc-obj/libc.so.6.new /home/karel/usr/src/arm/glibc-obj/libc.so.6
arm-linux-gcc -nostdlib -nostartfiles -o /home/karel/usr/src/arm/glibc-obj/iconv/iconvconfig
-Wl,-dynamic-linker=/home/karel/usr/local/arm/arm-linux//lib/ld-linux.so.2
-Wl,-z,combreloc /home/karel/usr/src/arm/glibc-obj/csu/crt1.o
/home/karel/usr/src/arm/glibc-obj/csu/crti.o `arm-linux-gcc
--print-file-name=crtbegin.o`
/home/karel/usr/src/arm/glibc-obj/iconv/iconvconfig.o
/home/karel/usr/src/arm/glibc-obj/iconv/strtab.o
/home/karel/usr/src/arm/glibc-obj/iconv/xmalloc.o
-Wl,-rpath-link=/home/karel/usr/src/arm/glibc-obj:/home/karel/usr/src/arm/glibc-obj/math:/home/karel/usr/src/arm/glibc-obj/elf:/home/karel/usr/src/arm/glibc-obj/dlfcn:/home/karel/usr/src/arm/glibc-obj/nss:/home/karel/usr/src/arm/glibc-obj/nis:/home/karel/usr/src/arm/glibc-obj/rt:/home/karel/usr/src/arm/glibc-obj/resolv:/home/karel/usr/src/arm/glibc-obj/crypt:/home/karel/usr/src/arm/glibc-obj/linuxthreads
/home/karel/usr/src/arm/glibc-obj/libc.so.6
/home/karel/usr/src/arm/glibc-obj/libc_nonshared.a  `arm-linux-gcc
--print-file-name=crtend.o` /home/karel/usr/src/arm/glibc-obj/csu/crtn.o
/home/karel/usr/src/arm/glibc-obj/iconv/iconvconfig.o: In function
`is_prime':
/home/karel/usr/src/arm/glibc-2.2.5/iconv/iconvconfig.c:894: undefined
reference to `__umodsi3'
/home/karel/usr/src/arm/glibc-2.2.5/iconv/iconvconfig.c:903: undefined
reference to `__umodsi3'
/home/karel/usr/src/arm/glibc-obj/iconv/iconvconfig.o: In function
`name_insert':
/home/karel/usr/src/arm/glibc-2.2.5/iconv/iconvconfig.c:982: undefined
reference to `__umodsi3'
/home/karel/usr/src/arm/glibc-2.2.5/iconv/iconvconfig.c:983: undefined
reference to `__umodsi3'
/home/karel/usr/src/arm/glibc-obj/iconv/iconvconfig.o: In function
`write_output':
/home/karel/usr/src/arm/glibc-2.2.5/iconv/iconvconfig.c:954: undefined
reference to `__clear_cache'
/home/karel/usr/src/arm/glibc-obj/libc.so.6: undefined reference to
`__ashldi3'
/home/karel/usr/src/arm/glibc-obj/libc.so.6: undefined reference to
`__divdi3'
/home/karel/usr/src/arm/glibc-obj/libc.so.6: undefined reference to
`__udivsi3'
/home/karel/usr/src/arm/glibc-obj/libc.so.6: undefined reference to
`__umoddi3'
/home/karel/usr/src/arm/glibc-obj/libc.so.6: undefined reference to
`__udivdi3'
/home/karel/usr/src/arm/glibc-obj/libc.so.6: undefined reference to
`__lshrdi3'
/home/karel/usr/src/arm/glibc-obj/libc.so.6: undefined reference to
`__divsi3'
/home/karel/usr/src/arm/glibc-obj/libc.so.6: undefined reference to
`__modsi3'
/home/karel/usr/src/arm/glibc-obj/libc.so.6: undefined reference to
`__moddi3'
collect2: ld returned 1 exit status
make[2]: *** [/home/karel/usr/src/arm/glibc-obj/iconv/iconvconfig] Error 1
make[2]: Leaving directory `/home/karel/usr/src/arm/glibc-2.2.5/iconv'
make[1]: *** [iconv/others] Error 2
make[1]: Leaving directory `/home/karel/usr/src/arm/glibc-2.2.5'
make: *** [all] Error 2

The only one patch which I've applied is from
http://sources.redhat.com/ml/libc-alpha/2002-01/msg00388.html, but I've
changed required linux kernel version to 2.2.12.

Any ideas?

Thanks,

Karel
--
Karel Gardas                  kgardas@objectsecurity.com
ObjectSecurity Ltd.           http://www.objectsecurity.com



More information about the Gcc mailing list