[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
cross-compiling glibc/hurd
From: |
Farid Hajji |
Subject: |
cross-compiling glibc/hurd |
Date: |
Fri, 10 Nov 2000 17:47:34 +0100 |
I'm having trouble cross-compling glibc for the i586-pc-gnu target:
gmake[2]: Entering directory `/users/farid/Devel/GNU-HURD/gnu-hurd/glibc/iconv'
i586-pc-gnu-gcc -nostdlib -nostartfiles -o
/users/farid/build/glibc.build/iconv/iconv_prog
-Wl,-dynamic-linker=/lib/ld.so.1 /users/farid/build/glibc.build/csu/crt1.o
/users/farid/build/glibc.build/csu/crti.o `i586-pc-gnu-gcc
--print-file-name=crtbegin.o` /users/farid/build/glibc.build/iconv/iconv_prog.o
-Wl,-rpath-link=/users/farid/build/glibc.build:/users/farid/build/glibc.build/math:/users/farid/build/glibc.build/elf:/users/farid/build/glibc.build/dlfcn:/users/farid/build/glibc.build/nss:/users/farid/build/glibc.build/nis:/users/farid/build/glibc.build/rt:/users/farid/build/glibc.build/resolv:/users/farid/build/glibc.build/crypt:/users/farid/build/glibc.build/mach:/users/farid/build/glibc.build/hurd
/users/farid/build/glibc.build/libc.so.0.2
/users/farid/build/glibc.build/libc_nonshared.a -lgcc `i586-pc-gnu-gcc
--print-file-name=crtend.o` /users/farid/build/glibc.build/csu/crtn.o
/users/farid/build/glibc.build/libc.so.0.2: undefined reference to `__hurd_fail'
/users/farid/build/glibc.build/libc.so.0.2: undefined reference to
`__thread_stack_pointer'
collect2: ld returned 1 exit status
gmake[2]: *** [/users/farid/build/glibc.build/iconv/iconv_prog] Error 1
gmake[2]: Leaving directory `/users/farid/Devel/GNU-HURD/gnu-hurd/glibc/iconv'
gmake[1]: *** [iconv/others] Error 2
gmake[1]: Leaving directory `/users/farid/Devel/GNU-HURD/gnu-hurd/glibc'
gmake: *** [all] Error 2
Where is __hurd_fail (among others) supposed to be? It it defined in
/usr/local/i586-pc-gnu/include/hurd.h
as:
_EXTERN_INLINE int
__hurd_fail (error_t err)
{
/* real code here ... */
}
and it is referenced in build/glibc.build/libc.so[.0.2] and
in build/glibc.build/libc.a but not defined (nm says U).
Another thing that is puzzling is the -Wl,-dynamic-linker=/lib/ld.so.1
flag: /lib/ld.so.1 is not the cross-linker, but my native FreeBSD linker.
Could that be the root of the problem?
I'm using binutils-2.10, gcc-2.95.2 and gmake-3.79 to compile. I followed
the steps in the cross-compile howto at hurddocs. Arkadi suggested using
older binutils, but that didn't work either (same problem).
The glibc gets build up without problems up to that point and is currently:
-rw-r--r-- 1 farid users 31191302 Nov 6 20:06 libc.a
-rw-r--r-- 1 farid users 26119 Nov 6 17:59 libc.map
-rwxr-xr-x 1 farid users 4867613 Nov 6 20:07 libc.so
lrwxr-xr-x 1 farid users 7 Nov 6 20:18 libc.so.0.2 -> libc.so
-rw-r--r-- 1 farid users 49162 Nov 6 20:06 libc_nonshared.a
-rw-r--r-- 1 farid users 30732754 Nov 6 20:05 libc_pic.a
-rw-r--r-- 1 farid users 29420387 Nov 6 20:06 libc_pic.os
-rw-r--r-- 1 farid users 107 Nov 6 17:59 libcrypt.map
in size. A whole lot of [__]hurd_* and [__]mach_* sysdeps are already
included in libc.{so,a} as well, so there is no apparent problem with
the cross-gcc and cross-binutils up to that point.
Thanks,
-Farid.
--
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany | farid.hajji@ob.kamp.net
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
Murphy's Law fails only when you try to demonstrate it, and thus succeeds.
- cross-compiling glibc/hurd,
Farid Hajji <=