help-hurd
[Top][All Lists]
Advanced

[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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]