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 ;;