# HG changeset patch # User Christophe Lincoln # Date 1393955797 -3600 # Node ID 8e8237a1e876f4903b6de995c4e81b7608a32330 # Parent 5dfdf8fe7dcd6830b51316d2dd2d5dea8f46d3f7 cross: some clean-up now ARM v6 hard float compile! diff -r 5dfdf8fe7dcd -r 8e8237a1e876 cross --- a/cross Tue Mar 04 00:10:07 2014 +0100 +++ b/cross Tue Mar 04 18:56:37 2014 +0100 @@ -2,7 +2,7 @@ # # Cross - Help build a cross toolchain on SliTaz. # -# Copyright 2012-2013 (C) SliTaz GNU/Linux - BSD License +# Copyright 2012-2014 (C) SliTaz GNU/Linux - BSD License # Author: Christophe Lincoln # . /lib/libtaz.sh @@ -92,6 +92,15 @@ cd $source } +# Some arch may need custom CFLAGS to build Glibc/Eglibc +init_cflags() { + case "$ARCH" in + arm|armv6) export CFLAGS="-march=armv6 -O2" ;; + armv6hf) export CFLAGS="-O2 -march=armv6j -mfpu=vfp -mfloat-abi=hard" ;; + armv7) export CFLAGS="-Os -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -pipe" ;; + esac +} + # Get source if not yet in $SRC. download_src() { mkdir -p $SRC && cd $SRC @@ -193,7 +202,7 @@ echo "cross: gcc-static compiled on: $(date)" } -# 4. GNU Glibc +# 4. GNU Glibc: TODO Improve ARM support glibc() { init_compile echo "Extracting: $glibc_tarball" @@ -253,15 +262,10 @@ # 4. eglibc: always use --prefix=/usr eglibc() { init_compile + init_cflags rm -rf eglibc-build eglibc-$EGLIBC_VERSION echo "Extracting: $eglibc_tarball" tar xjf $SRC/$eglibc_tarball || exit 1 - # Some arch may need glibc-ports and custom CFLAGS - case "$ARCH" in - arm) export CFLAGS="-march=armv6 -O2" ;; - armv6hf) export CFLAGS="-O2 -march=armv6j -mfpu=vfp -mfloat-abi=hard" ;; - armv7) export CFLAGS="-Os -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -pipe" ;; - esac case "$ARCH" in arm*) if [ ! -d "$source/eglibc-ports-$EGLIBC_VERSION" ]; then @@ -280,6 +284,7 @@ cp Makeconfig Makeconfig.orig sed -e 's/-lgcc_eh//g' Makeconfig.orig > Makeconfig cd .. + echo "CFLAGS: $CFLAGS" mkdir -p eglibc-build && cd eglibc-build # config.cache cat > config.cache << EOT @@ -353,12 +358,14 @@ [ -f "$doc" ] && less -E $doc ;; info) init_compile + init_cflags CC=${TARGET}-gcc echo -e "\nCross Toolchain information" && separator [ "$config" ] && echo "Config file : $config" cat << EOT Target arch : $ARCH C Compiler : $CC +CFLAGS : $CFLAGS Build directory : $WORK Tools prefix : $tools/bin Arch sysroot : $sysroot @@ -404,8 +411,6 @@ echo "Getting $arch cross.conf" cp -f ${data}/cross-${arch}.conf /etc/slitaz/cross.conf cook ${arch}-setup - echo "Setting up cook environment" - cook setup >/dev/null newline ;; download) download_src ;;