glibc-2.2.93 crosscompile from 586 to mips

Jakub Jelinek jakub@redhat.com
Wed Sep 11 02:11:00 GMT 2002


On Tue, Sep 10, 2002 at 02:18:28PM -0400, Daniel Jacobowitz wrote:
> > I am trying to cross-compile glibc-2.2.93 from i586-linux to mips-linux.
> > Following is error I get:
> > 
> > mips-linux-gcc -nostdlib -nostartfiles -o /disk2/dist/programming/glibc-build/iconv/iconvconfig -Wl,-dynamic-linker=//lib/ld.so.1 /disk2/dist/programming/glibc-build/csu/crt1.o /disk2/dist/programming/glibc-build/csu/crti.o `mips-linux-gcc --print-file-name=crtbegin.o` /disk2/dist/programming/glibc-build/iconv/iconvconfig.o /disk2/dist/programming/glibc-build/iconv/strtab.o /disk2/dist/programming/glibc-build/iconv/xmalloc.o -Wl,-rpath-link=/disk2/dist/programming/glibc-build:/disk2/dist/programming/glibc-build/math:/disk2/dist/programming/glibc-build/elf:/disk2/dist/programming/glibc-build/dlfcn:/disk2/dist/programming/glibc-build/nss:/disk2/dist/programming/glibc-build/nis:/disk2/dist/programming/glibc-build/rt:/disk2/dist/programming/glibc-build/resolv:/disk2/dist/programming/glibc-build/crypt:/disk2/dist/programming/glibc-build/linuxthreads /disk2/dist/programming/glibc-build/libc.so.6 /disk2/dist/programming/glibc-build/libc_nonshared.a -lgcc `mips-linux-gcc --print-file-name=crtend.o` /disk2/dist/programming/glibc-build/csu/crtn.o
> > /disk2/dist/programming/glibc-build/elf/ld.so.1: undefined reference to `elf_machine_rela'
> > /disk2/dist/programming/glibc-build/libc.so.6: undefined reference to `__divdi3_internal'
> > collect2: ld returned 1 exit status
> > make[2]: *** [/disk2/dist/programming/glibc-build/iconv/iconvconfig] Error 1
> > make[2]: Leaving directory `/disk2/dist/programming/glibc-2.2.93/iconv'
> > make[1]: *** [iconv/others] Error 2
> > make[1]: Leaving directory `/disk2/dist/programming/glibc-2.2.93'
> > make: *** [all] Error 2
> > 
> > root@gateway:/disk2/dist/programming/glibc-build#
> > /crossdev/mips/bin/mips-linux-ld -v
> > GNU ld version 2.12.90 20020703
> > root@gateway:/disk2/dist/programming/glibc-build#
> > /crossdev/mips/bin/mips-linux-gcc -v
> > Reading specs from /crossdev/mips/lib/gcc-lib/mips-linux/3.2/specs
> > Configured with: ../gcc-3.2/configure --prefix=/crossdev/mips
> > - --disable-shared --with-gnu-as --enable-languages=c --disable-nls
> > - --with-newlib --enable-checking=no --disable-threads
> > - --with-headers=/usr/include --target=mips-linux
> > Thread model: single
> > gcc version 3.2
> 
> At a guess:
> do-rel.h defines elf_machine_rel in terms of elf_machine_rela if
> DO_RELA.  dl-conflict.c just calls elf_machine_rela.  It looks like it
> needs to have some logic to possibly use REL instead of RELA.

No, .gnu.conflict section is defined as RELA for all arches.
The problem is just that mips has not been changed to support prelink.
My preference would be just to add dummy elf_machine_rela to mips
dl-machine.h which would just abort with a message saying prelink is
not supported.

	Jakub



More information about the Libc-alpha mailing list