[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: |
Mon, 6 Nov 2000 21:24:48 +0100 |
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 | 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 <=