]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - tools/make-functions
cleanup-toolchain: Use TOOLCHAIN variable
[ipfire-2.x.git] / tools / make-functions
index a42e3fa0e5a28a934bf235dbcc4f079bc589098b..8ae50b4f074c4692dce5fdc185a59552ba58a49f 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -80,6 +80,18 @@ configure_target() {
                        CFLAGS_ARCH="-march=i586 -mtune=generic -fomit-frame-pointer"
                        ;;
 
+               aarch64)
+                       BUILDTARGET="${target_arch}-unknown-linux-gnu"
+                       CROSSTARGET="${target_arch}-cross-linux-gnu"
+                       CFLAGS_ARCH=""
+                       ;;
+
+               armv7hl)
+                       BUILDTARGET="${target_arch}-unknown-linux-gnueabi"
+                       CROSSTARGET="${target_arch}-cross-linux-gnueabi"
+                       CFLAGS_ARCH="-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard"
+                       ;;
+
                armv5tel)
                        BUILDTARGET="${target_arch}-unknown-linux-gnueabi"
                        CROSSTARGET="${target_arch}-cross-linux-gnueabi"
@@ -108,8 +120,10 @@ configure_target() {
        # Old variable names
        MACHINE="${TARGET_ARCH}"
 
-       CFLAGS="-O2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fPIC"
-       CFLAGS="${CFLAGS} -fstack-protector-strong --param=ssp-buffer-size=4 ${CFLAGS_ARCH}"
+       # Enables hardening
+       HARDENING_CFLAGS="-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4"
+
+       CFLAGS="-O2 -pipe -Wall -fexceptions -fPIC ${CFLAGS_ARCH}"
        CXXFLAGS="${CFLAGS}"
 }
 
@@ -118,9 +132,19 @@ configure_target_guess() {
                x86_64|i686|i586)
                        echo "i586"
                        ;;
-               armv7*|armv6*|armv5*)
+
+               aarch64)
+                       echo "aarch64"
+                       ;;
+
+               armv7*)
+                       echo "armv7hl"
+                       ;;
+
+               armv6*|armv5*)
                        echo "armv5tel"
                        ;;
+
                *)
                        exiterror "Cannot guess target architecture"
                        ;;
@@ -310,6 +334,16 @@ exiterror() {
                losetup -d /dev/loop${i} 2>/dev/null
            fi;
        done
+
+       if [ -n "${LOGFILE}" ]; then
+               echo # empty line
+
+               local line
+               while read -r line; do
+                       echo "    ${line}"
+               done <<< "$(tail -n30 ${LOGFILE})"
+       fi
+
        echo -e "\nERROR: $*"
        echo "       Check $LOGFILE for errors if applicable"
        exit 1
@@ -468,7 +502,8 @@ entershell() {
                PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
                VERSION=$VERSION CONFIG_ROOT=$CONFIG_ROOT \
                NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
-               CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
+               CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
+               CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
                CCACHE_DIR=/usr/src/ccache \
                CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
                CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
@@ -555,7 +590,9 @@ lfsmake1() {
 
        local PKG_TIME_START=`date +%s`
 
-       cd $BASEDIR/lfs && make -f $*   BUILDTARGET=$BUILDTARGET \
+       cd $BASEDIR/lfs && \
+               PATH="/tools/ccache/bin:/tools/bin:$PATH" \
+               make -f $* TOOLCHAIN=1 BUILDTARGET=$BUILDTARGET \
                                                CROSSTARGET="${CROSSTARGET}" \
                                                MACHINE=$MACHINE \
                                                MACHINE_TYPE=$MACHINE_TYPE \
@@ -592,7 +629,8 @@ lfsmake2() {
                                                SYSTEM_RELEASE="${SYSTEM_RELEASE}" \
                                                CONFIG_ROOT=$CONFIG_ROOT \
                                                NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
-                                               CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
+                                               CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
+                                               CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
                                                CCACHE_DIR=/usr/src/ccache \
                                                CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
                                                CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
@@ -634,7 +672,8 @@ ipfiremake() {
                                                CONFIG_ROOT=$CONFIG_ROOT \
                                                NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
                                                SYSTEM_RELEASE="$SYSTEM_RELEASE" \
-                                               CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
+                                               CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
+                                               CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
                                                CCACHE_DIR=/usr/src/ccache \
                                                CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
                                                CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
@@ -674,7 +713,8 @@ ipfiredist() {
                                        VERSION=$VERSION \
                                        CONFIG_ROOT=$CONFIG_ROOT \
                                        NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
-                                       CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
+                                       CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
+                                       CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
                                        CCACHE_DIR=/usr/src/ccache \
                                        CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
                                        CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
@@ -715,7 +755,8 @@ installmake() {
                                                SYSTEM_RELEASE="${SYSTEM_RELEASE}" \
                                                CONFIG_ROOT=$CONFIG_ROOT \
                                                NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
-                                               CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
+                                               CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
+                                               CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
                                                CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
                                                KVER=$KVER \
                                                BUILDTARGET="$BUILDTARGET" \