Hi,
I'm trying to build a cross compile environment on FreeBSD for the Hurd.
Compiling glibc bombs with the following error message:
farid@bsdevil:~/build/glibc.build> gmake
<...snip...>
gmake -C csu others
gmake[2]: Entering directory `/users/farid/Devel/GNU-HURD/gnu-hurd/glibc/csu'
gmake[2]: Nothing to be done for `others'.
gmake[2]: Leaving directory `/users/farid/Devel/GNU-HURD/gnu-hurd/glibc/csu'
gmake -C iconv others
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
farid@bsdevil:~/build/glibc.build>
I loosely followed the instructions in
http://hurddocs.sourceforge.net/howto/cross.html
[I didn't compile/use egcs though...]
and I'm now at item 11. (finishing compiling glibc with working cross gcc).
Any ideas?
Here is the complete compile protocol so far [sorry, it's a bit lengthy]:
---------- cut here ------------- cut here -------------- cut here ----------
farid@bsdevil:~> mkdir build
farid@bsdevil:~> cd build
farid@bsdevil:~/build> export CFLAGS="-march=i586 -O2 -fomit-frame-pointer"
farid@bsdevil:~/build> bzip2 -cd /usr/local/src/binutils-2.10.tar.bz2 | tar -xf -
farid@bsdevil:~/build> mkdir binutils.build
farid@bsdevil:~/build> cd binutils.build
farid@bsdevil:~/build/binutils.build> ../binutils-2.10/configure --prefix=/usr/local
--target=i586-pc-gnu -v > ../binutils.log.configure 2>&1
farid@bsdevil:~/build/binutils.build> gmake > ../binutils.log.make 2>&1
farid@bsdevil:~/build/binutils.build> gmake check > ../binutils.log.make-check 2>&1
farid@bsdevil:~/build/binutils.build> su -
Password:xxxxxxxx
su: Cannot open /etc/termcap.
su: using dumb terminal settings.
bsdevil# cd ~farid/build/binutils.build
bsdevil# pwd
/users/farid/build/binutils.build
bsdevil# bash
bash-2.03# gmake install > ../binutils.log.make-install 2>&1
bash-2.03# exit
exit
bsdevil# exit
bsdevil# logout
farid@bsdevil:~/build/binutils.build> cd ..
farid@bsdevil:~/build> bzip2 -cd /usr/local/src/gcc-core-2.95.2.tar.bz2 | tar -xf -
Broken pipe
farid@bsdevil:~/build> mkdir gcc.build
farid@bsdevil:~/build> cd gcc.build
farid@bsdevil:~/build/gcc.build> ../gcc-2.95.2/configure --prefix=/usr/local
--target=i586-pc-gnu --with-gnu-as --with-gnu-ld > ../gcc.log.configure 2>&1
farid@bsdevil:~/build/gcc.build> gmake -k > ../gcc.log.make-k 2>&1
farid@bsdevil:~/build/gcc.build> gmake -k
gmake[1]: Entering directory `/users/farid/build/gcc.build/libiberty'
gmake[2]: Entering directory `/users/farid/build/gcc.build/libiberty/testsuite'
gmake[2]: Nothing to be done for `all'.
gmake[2]: Leaving directory `/users/farid/build/gcc.build/libiberty/testsuite'
gmake[1]: Leaving directory `/users/farid/build/gcc.build/libiberty'
gmake[1]: Entering directory `/users/farid/build/gcc.build/texinfo'
gmake all-recursive
gmake[2]: Entering directory `/users/farid/build/gcc.build/texinfo'
Making all in intl
gmake[3]: Entering directory `/users/farid/build/gcc.build/texinfo/intl'
gmake[3]: Nothing to be done for `all'.
gmake[3]: Leaving directory `/users/farid/build/gcc.build/texinfo/intl'
Making all in lib
gmake[3]: Entering directory `/users/farid/build/gcc.build/texinfo/lib'
gmake[3]: Nothing to be done for `all'.
gmake[3]: Leaving directory `/users/farid/build/gcc.build/texinfo/lib'
Making all in makeinfo
gmake[3]: Entering directory `/users/farid/build/gcc.build/texinfo/makeinfo'
gmake[3]: Nothing to be done for `all'.
gmake[3]: Leaving directory `/users/farid/build/gcc.build/texinfo/makeinfo'
gmake[2]: Leaving directory `/users/farid/build/gcc.build/texinfo'
gmake[1]: Leaving directory `/users/farid/build/gcc.build/texinfo'
gmake[1]: Entering directory `/users/farid/build/gcc.build/etc'
gmake[1]: Nothing to be done for `all'.
gmake[1]: Leaving directory `/users/farid/build/gcc.build/etc'
gmake[1]: Entering directory `/users/farid/build/gcc.build/gcc'
(cd intl && gmake all)
gmake[2]: Entering directory `/users/farid/build/gcc.build/gcc/intl'
gmake[2]: Nothing to be done for `all'.
gmake[2]: Leaving directory `/users/farid/build/gcc.build/gcc/intl'
rm -f tmplibgcc2.a
for name in _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 _lshrdi3 _ashldi3
_ashrdi3 _ffsdi2 _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf
_fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi
_floatdixf _fixunsxfsi _fixtfdi _fixunstfdi _floatditf __gcc_bcmp _varargs __dummy
_eprintf _bb _shtab _clear_cache _trampoline __main _exit _ctors _pure; \
do \
echo ${name}; \
/users/farid/build/gcc.build/gcc/xgcc -B/users/farid/build/gcc.build/gcc/
-B/usr/local/i586-pc-gnu/bin/ -I/usr/local/i586-pc-gnu/include -O2 -DCROSS_COMPILE
-DIN_GCC -march=i586 -O2 -fomit-frame-pointer -I./include -fPIC -g1 -DIN_LIBGCC2
-D__GCC_FLOAT_NOT_NEEDED -I. -I../../gcc-2.95.2/gcc -I../../gcc-2.95.2/gcc/config
-I../../gcc-2.95.2/gcc/../include -c -DL${name} \
../../gcc-2.95.2/gcc/libgcc2.c -o ${name}.o; \
if [ $? -eq 0 ] ; then true; else exit 1; fi; \
i586-pc-gnu-ar rc tmplibgcc2.a ${name}.o; \
rm -f ${name}.o; \
done
_muldi3
In file included from tconfig.h:5,
from ../../gcc-2.95.2/gcc/libgcc2.c:33:
../../gcc-2.95.2/gcc/config/xm-gnu.h:31: fcntl.h: No such file or directory
../../gcc-2.95.2/gcc/libgcc2.c:41: stdlib.h: No such file or directory
../../gcc-2.95.2/gcc/libgcc2.c:42: unistd.h: No such file or directory
gmake[1]: *** [libgcc2.a] Error 1
/users/farid/build/gcc.build/gcc/xgcc -B/users/farid/build/gcc.build/gcc/
-B/usr/local/i586-pc-gnu/bin/ -I/usr/local/i586-pc-gnu/include -DCROSS_COMPILE
-DIN_GCC -march=i586 -O2 -fomit-frame-pointer -I./include -c
../../gcc-2.95.2/gcc/libgcc1-test.c
../../gcc-2.95.2/gcc/libgcc1-test.c:101: warning: conflicting types for built-in
function `memcpy'
gmake[1]: Target `all' not remade because of errors.
gmake[1]: Leaving directory `/users/farid/build/gcc.build/gcc'
gmake: *** [all-gcc] Error 2
gmake: Target `all' not remade because of errors.
farid@bsdevil:~/build/gcc.build> cd ..
farid@bsdevil:~/build> mkdir gnumach.build
farid@bsdevil:~/build> cd gnumach.build
farid@bsdevil:~/build/gnumach.build> cd ..
farid@bsdevil:~/build> ln -s ~/Devel/GNU-HURD/gnu-hurd/gnumach/ gnumach
farid@bsdevil:~/build> cd gnumach.build
farid@bsdevil:~/build/gnumach.build> cd ..
farid@bsdevil:~/build> cd gcc.build/
farid@bsdevil:~/build/gcc.build> su -
Password:xxxxxxxx
su: Cannot open /etc/termcap.
su: using dumb terminal settings.
bsdevil# bash
bash-2.03# cd ~farid/build/gcc.build
bash-2.03# gmake -k install > ../gcc.log.make-k-install 2>&1
bash-2.03# ln -s /usr/local/i586-pc-gnu
/usr/local/lib/gcc-lib/i586-pc-gnu/2.95.2/i586-pc-gnu
bash-2.03# exit
exit
bsdevil# cd ..
bsdevil# exit
bsdevil# logout
farid@bsdevil:~/build/gcc.build> cd ..
farid@bsdevil:~/build> mkdir gnumach.build
farid@bsdevil:~/build> ln -s ~farid/Devel/GNU-HURD/gnu-hurd/gnumach gnumach
farid@bsdevil:~/build> cd gnumach.build/
farid@bsdevil:~/build/gnumach.build> ../gnumach/configure
--build=i386-unknown-freebsdelf --host=i586-pc-gnu > ../gnumach.log.configure 2>&1
farid@bsdevil:~/build/gnumach.build> su -
Password:xxxxxxxx
su: Cannot open /etc/termcap.
su: using dumb terminal settings.
bsdevil# bash
bash-2.03# cd ~farid/build/gnumach.build
bash-2.03# gmake -k install-headers prefix=/usr/local/i586-pc-gnu >
../gnumach.log.make-k-install-headers 2>&1
bash-2.03# exit
exit
bsdevil# exit
bsdevil# logout
farid@bsdevil:~/build/gnumach.build> cd ..
farid@bsdevil:~/build> ln -s ~farid/Devel/GNU-HURD/gnu-hurd/mig mig
farid@bsdevil:~/build> mkdir mig.build
farid@bsdevil:~/build> cd mig.build
farid@bsdevil:~/build/mig.build> ../mig/configure --target=i586-pc-gnu
--host=i386-unknown-freebsdelf --prefix=/usr/local > ../mig.log.configure 2>&1
farid@bsdevil:~/build/mig.build> gmake > ../mig.log.make 2>&1
farid@bsdevil:~/build/mig.build> # we need a symlink:
farid@bsdevil:~/build/mig.build> su -
Password:xxxxxxxx
su: Cannot open /etc/termcap.
su: using dumb terminal settings.
bsdevil# bash
bash-2.03# cd /usr/local/i586-pc-gnu/include/mach
bash-2.03# ln -s i386 machine
bash-2.03# exit
exit
bsdevil# exit
bsdevil# logout
farid@bsdevil:~/build/mig.build> gmake >> ../mig.log.make 2>&1
farid@bsdevil:~/build/mig.build> gmake install > ../mig.log.make-install 2>&1
farid@bsdevil:~/build/mig.build> su -
Password:xxxxxxxx
su: Cannot open /etc/termcap.
su: using dumb terminal settings.
bsdevil# bash
bash-2.03# cd ~farid/build/mig.build
bash-2.03# gmake install >> ../mig.log.make-install 2>&1
bash-2.03# exit
exit
bsdevil# exit
bsdevil# logout
farid@bsdevil:~/build/mig.build> cd ..
farid@bsdevil:~/build> export CFLAGS="-march=i586 -g"
farid@bsdevil:~/build> ln -s ~farid/Devel/GNU-HURD/gnu-hurd/hurd hurd
farid@bsdevil:~/build> mkdir hurd.build
farid@bsdevil:~/build> cd hurd.build
farid@bsdevil:~/build/hurd.build> # we need a hurd/configure script first
farid@bsdevil:~/build/hurd.build> cd ../hurd
farid@bsdevil:~/build/hurd> autoconf
farid@bsdevil:~/build/hurd> cd ../hurd.build
farid@bsdevil:~/build/hurd.build> ../hurd/configure --build=i386-unknown-freebsdelf
--host=i586-pc-gnu --prefix=/usr/local/i586-pc-gnu --disable-profile >
../hurd.log.configure 2>&1
farid@bsdevil:~/build/hurd.build> su -
Password:xxxxxxxx
su: Cannot open /etc/termcap.
su: using dumb terminal settings.
bsdevil# bash
bash-2.03# cd ~farid/build/hurd.build
bash-2.03# echo $CFLAGS
bash-2.03# CFLAGS="-march=i586 -g"; export CFLAGS
bash-2.03# pwd
/users/farid/build/hurd.build
bash-2.03# gmake install-headers no_deps=t > ../hurd.log.make-install-headers-no_deps
2>&1
bash-2.03# exit
exit
bsdevil# exit
bsdevil# logout
farid@bsdevil:~/build/hurd.build> cd ..
farid@bsdevil:~/build> ln -s ~farid/Devel/GNU-HURD/gnu-hurd/glibc glibc
farid@bsdevil:~/build> mkdir glibc.build
farid@bsdevil:~/build> cd glibc.build
farid@bsdevil:~/build/glibc.build> # hopefully, ../glibc/crypt is crupt-addon
farid@bsdevil:~/build/glibc.build> ../glibc/configure --without-cvs
--enable-add-ons=crypt --build=i386-unknown-freebsdelf --host=i586-pc-gnu --prefix=
--disable-profile > ../glibc.log.configure 2>&1
farid@bsdevil:~/build/glibc.build> # the above command hangs while checking
farid@bsdevil:~/build/glibc.build> # the version of sed...
farid@bsdevil:~/build/glibc.build> # in emacs, we hit C-c C-d to resume.
farid@bsdevil:~/build/glibc.build> # glibc/intl/po2test.sed will not work.
farid@bsdevil:~/build/glibc.build> # we won't run the testsuite here...
farid@bsdevil:~/build/glibc.build> su -
Password:xxxxxxxx
su: Cannot open /etc/termcap.
su: using dumb terminal settings.
bsdevil# bash
bash-2.03# cd ~farid/build/glibc.build
bash-2.03# CFLAGS="-march=i586 -g"; export CFLAGS
bash-2.03# pwd
/users/farid/build/glibc.build
bash-2.03# gmake -k install-headers install_root=/usr/local/i586-pc-gnu >
../glibc.log.make-install-headers 2>&1
bash-2.03# cp ../glibc/include/features.h /usr/local/i586-pc-gnu/include/features.h
bash-2.03# mkdir /usr/local/i586-pc-gnu/include/gnu
bash-2.03# touch /usr/local/i586-pc-gnu/include/gnu/stubs.h
bash-2.03# cd ..
bash-2.03# exit
exit
bsdevil# exit
bsdevil# logout
farid@bsdevil:~/build/glibc.build> cd ..
farid@bsdevil:~/build> export CFLAGS="-march=i586 -O2 -fomit-frame-pointer"
farid@bsdevil:~/build> export C_INCLUDE_PATH=/usr/local/i586-pc-gnu/include
farid@bsdevil:~/build> cd gcc.build
farid@bsdevil:~/build/gcc.build> gmake > ../gcc.log.make 2>&1
farid@bsdevil:~/build/gcc.build> su -
Password:xxxxxxxx
su: Cannot open /etc/termcap.
su: using dumb terminal settings.
bsdevil# bash
bash-2.03# cd ~farid/build/gcc.build
bash-2.03# gmake install > ../gcc.log.make-install 2>&1
bash-2.03# exit
exit
bsdevil# exit
bsdevil# logout
farid@bsdevil:~/build/gcc.build> cd ..
farid@bsdevil:~/build> export CFLAGS="-march=i586 -g"
farid@bsdevil:~/build> cd glibc.build
farid@bsdevil:~/build/glibc.build> gmake > ../glibc.log.make 2>&1
farid@bsdevil:~/build/glibc.build> # permission error...
farid@bsdevil:~/build/glibc.build> cd ..
farid@bsdevil:~/build> su -
Password:xxxxxxxx
su: Cannot open /etc/termcap.
su: using dumb terminal settings.
bsdevil# bash
bash-2.03# cd ~farid/build/
bash-2.03# /usr/sbin/chown -R farid:users glibc.build
bash-2.03# exit
exit
bsdevil# exit
bsdevil# logout
farid@bsdevil:~/build> cd glibc.build
farid@bsdevil:~/build/glibc.build> gmake >> ../glibc.log.make 2>&1
farid@bsdevil:~/build/glibc.build> gmake # [snip]
gmake -C csu others
gmake[2]: Entering directory `/users/farid/Devel/GNU-HURD/gnu-hurd/glibc/csu'
gmake[2]: Nothing to be done for `others'.
gmake[2]: Leaving directory `/users/farid/Devel/GNU-HURD/gnu-hurd/glibc/csu'
gmake -C iconv others
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
farid@bsdevil:~/build/glibc.build>
---------- cut here ------------- cut here -------------- cut here ----------
Thanks,
-Farid.
--
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
Murphy's Law fails only when you try to demonstrate it, and thus succeeds.
_______________________________________________
Help-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/help-hurd