cookutils rev 651
cross: some clean-up now ARM v6 hard float compile!
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Tue Mar 04 18:56:37 2014 +0100 (2014-03-04) |
parents | 5dfdf8fe7dcd |
children | 818b7f937fcf |
files | cross |
line diff
1.1 --- a/cross Tue Mar 04 00:10:07 2014 +0100 1.2 +++ b/cross Tue Mar 04 18:56:37 2014 +0100 1.3 @@ -2,7 +2,7 @@ 1.4 # 1.5 # Cross - Help build a cross toolchain on SliTaz. 1.6 # 1.7 -# Copyright 2012-2013 (C) SliTaz GNU/Linux - BSD License 1.8 +# Copyright 2012-2014 (C) SliTaz GNU/Linux - BSD License 1.9 # Author: Christophe Lincoln <pankso@slitaz.org> 1.10 # 1.11 . /lib/libtaz.sh 1.12 @@ -92,6 +92,15 @@ 1.13 cd $source 1.14 } 1.15 1.16 +# Some arch may need custom CFLAGS to build Glibc/Eglibc 1.17 +init_cflags() { 1.18 + case "$ARCH" in 1.19 + arm|armv6) export CFLAGS="-march=armv6 -O2" ;; 1.20 + armv6hf) export CFLAGS="-O2 -march=armv6j -mfpu=vfp -mfloat-abi=hard" ;; 1.21 + armv7) export CFLAGS="-Os -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -pipe" ;; 1.22 + esac 1.23 +} 1.24 + 1.25 # Get source if not yet in $SRC. 1.26 download_src() { 1.27 mkdir -p $SRC && cd $SRC 1.28 @@ -193,7 +202,7 @@ 1.29 echo "cross: gcc-static compiled on: $(date)" 1.30 } 1.31 1.32 -# 4. GNU Glibc 1.33 +# 4. GNU Glibc: TODO Improve ARM support 1.34 glibc() { 1.35 init_compile 1.36 echo "Extracting: $glibc_tarball" 1.37 @@ -253,15 +262,10 @@ 1.38 # 4. eglibc: always use --prefix=/usr 1.39 eglibc() { 1.40 init_compile 1.41 + init_cflags 1.42 rm -rf eglibc-build eglibc-$EGLIBC_VERSION 1.43 echo "Extracting: $eglibc_tarball" 1.44 tar xjf $SRC/$eglibc_tarball || exit 1 1.45 - # Some arch may need glibc-ports and custom CFLAGS 1.46 - case "$ARCH" in 1.47 - arm) export CFLAGS="-march=armv6 -O2" ;; 1.48 - armv6hf) export CFLAGS="-O2 -march=armv6j -mfpu=vfp -mfloat-abi=hard" ;; 1.49 - armv7) export CFLAGS="-Os -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -pipe" ;; 1.50 - esac 1.51 case "$ARCH" in 1.52 arm*) 1.53 if [ ! -d "$source/eglibc-ports-$EGLIBC_VERSION" ]; then 1.54 @@ -280,6 +284,7 @@ 1.55 cp Makeconfig Makeconfig.orig 1.56 sed -e 's/-lgcc_eh//g' Makeconfig.orig > Makeconfig 1.57 cd .. 1.58 + echo "CFLAGS: $CFLAGS" 1.59 mkdir -p eglibc-build && cd eglibc-build 1.60 # config.cache 1.61 cat > config.cache << EOT 1.62 @@ -353,12 +358,14 @@ 1.63 [ -f "$doc" ] && less -E $doc ;; 1.64 info) 1.65 init_compile 1.66 + init_cflags 1.67 CC=${TARGET}-gcc 1.68 echo -e "\nCross Toolchain information" && separator 1.69 [ "$config" ] && echo "Config file : $config" 1.70 cat << EOT 1.71 Target arch : $ARCH 1.72 C Compiler : $CC 1.73 +CFLAGS : $CFLAGS 1.74 Build directory : $WORK 1.75 Tools prefix : $tools/bin 1.76 Arch sysroot : $sysroot 1.77 @@ -404,8 +411,6 @@ 1.78 echo "Getting $arch cross.conf" 1.79 cp -f ${data}/cross-${arch}.conf /etc/slitaz/cross.conf 1.80 cook ${arch}-setup 1.81 - echo "Setting up cook environment" 1.82 - cook setup >/dev/null 1.83 newline ;; 1.84 download) 1.85 download_src ;;