Building Eglibc Headers & GCC2 in the Cygwin VM
Update C:\Cygwin\opt\crosstool\src\build_gcc_cross.sh :
#!/bin/bash export TARGET=arm-linux-gnueabihf export PREFIX=/opt/crosstool/gcc-4.6.3-eglibc-2.13/$TARGET export PATH=$PATH:$PREFIX/bin cd /opt/crosstool/src/build-eglibc find . -delete BUILD_CC=gcc \ CC=$PREFIX/bin/$TARGET-gcc \ CXX=$PREFIX/bin/$TARGET-g++ \ AR=$PREFIX/bin/$TARGET-ar \ RANLIB=$PREFIX/bin/$TARGET-ranlib \ MAKEINFO=: \ ../eglibc-2.13/configure \ --prefix=/usr \ --with-headers=$PREFIX/usr/include \ --build=i686-pc-cygwin \ --host=$TARGET \ --enable-kernel=3.0.0 \ --disable-profile --without-gd \ --without-cvs --enable-add-ons if [ "$?" -ne "0" ]; then echo "=== build script: failed to configure eglibc ===" exit 1 fi make install_root=$PREFIX \ install-headers install-bootstrap-headers=yes if [ "$?" -ne "0" ]; then echo -n "=== build script: " echo "failed to make eglibc headers ===" exit 1 fi mkdir -p $PREFIX/usr/lib make csu/subdir_lib if [ "$?" -ne "0" ]; then echo -n "=== build script: " echo "failed to make eglibc csu subdir_lib ===" exit 1 fi cp csu/crt1.o csu/crti.o csu/crtn.o $PREFIX/usr/lib if [ "$?" -ne "0" ]; then echo -n "=== build script: " echo "failed to install eglibc csu subdir_lib ===" exit 1 fi $PREFIX/bin/$TARGET-gcc -nostdlib -nostartfiles \ -shared -x c /dev/null -o $PREFIX/usr/lib/libc.so if [ "$?" -ne "0" ]; then echo -n "=== build script: " echo "failed to install eglibc fake libc.so ===" exit 1 fi cd /opt/crosstool/src/build-gcc find . -delete ../gcc-4.6.3/configure --target=$TARGET --prefix=$PREFIX \ --with-sysroot=$PREFIX --disable-libquadmath \ --with-arch=armv6 --with-fpu=vfp --with-float=hard \ --disable-sjlj-exceptions --enable-checking=release \ --enable-linker-build-id --enable-gnu-unique-object \ --disable-nls --enable-languages=c --with-headers \ --disable-multilib --disable-libmudflap --disable-libssp \ --disable-libgomp --without-ppl --without-cloog \ --with-gmp=/usr/local --with-mpfr=/usr/local \ --with-mpc=/usr/local if [ "$?" -ne "0" ]; then echo "=== build script: failed to configure gcc ===" exit 1 fi make if [ "$?" -ne "0" ]; then echo "=== build script: failed to make gcc ===" exit 1 fi make install if [ "$?" -ne "0" ]; then echo "=== build script: failed to install gcc ===" exit 1 fi echo "=== build script: OK ==="
- You may need to reapply dos2unix to build_gcc_cross.sh if your text editor does not preserve DOS/Unix line endings.
- Run C:\Cygwin\opt\crosstool\src\build_gcc_cross.cmd and wait until it completes.
- If there are no errors, shutdown the Cygwin VM and make snapshot "SNAP-7".
Additional steps to support SoftFP ABI:
- Replace TARGET=arm-linux-gnueabihf with TARGET=arm-linux-gnueabi and ../gcc-4.6.3/configure with ../gcc-4.6.3.noarmhf/configure and ../eglibc-2.13/configure with ../eglibc-2.13.noarmhf/configure in build_gcc_cross.sh
- gcc configure flags: --with-arch=armv4t --with-float=soft. Also remove --with-fpu=vfp.
- You may need to reapply dos2unix to build_gcc_cross.sh if your text editor does not preserve DOS/Unix line endings.
- Run C:\Cygwin\opt\crosstool\src\build_gcc_cross.cmd and wait until it completes.
- If there are no errors, shutdown the Cygwin VM and make snapshot "SNAP-8".
>> Read next section or
buy already prepared
cross-compiler (€10) to save your time.