X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=tools%2Fmake-functions;h=cb455a94a3606ee72cebf41531806a55199b88a2;hb=e259f335ae8ced4253d5c65631afa6a7450fea6a;hp=4fbb530f45f4f15dd057b760351b9b536e9f6ee9;hpb=aa2e56a531a44a932ea7c379fd7834043cc3e407;p=ipfire-2.x.git diff --git a/tools/make-functions b/tools/make-functions index 4fbb530f45..cb455a94a3 100644 --- a/tools/make-functions +++ b/tools/make-functions @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2016 IPFire Team # # # # 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 # @@ -68,15 +68,21 @@ configure_target() { fi case "${target_arch}" in + x86_64) + BUILDTARGET="${target_arch}-unknown-linux-gnu" + CROSSTARGET="${target_arch}-cross-linux-gnu" + CFLAGS_ARCH="-m64 -mtune=generic" + ;; + i586) BUILDTARGET="${target_arch}-pc-linux-gnu" - CROSSTARGET="${BUILD_ARCH}-cross-linux-gnu" + CROSSTARGET="${target_arch}-cross-linux-gnu" CFLAGS_ARCH="-march=i586 -mtune=generic -fomit-frame-pointer" ;; armv5tel) BUILDTARGET="${target_arch}-unknown-linux-gnueabi" - CROSSTARGET="${BUILD_ARCH}-cross-linux-gnueabi" + CROSSTARGET="${target_arch}-cross-linux-gnueabi" CFLAGS_ARCH="-march=armv5te -mfloat-abi=soft -fomit-frame-pointer" MACHINE_TYPE="arm" ;; @@ -102,8 +108,10 @@ configure_target() { # Old variable names MACHINE="${TARGET_ARCH}" - CFLAGS="-O2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fPIC" - CFLAGS="${CFLAGS} -fstack-protector-all --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}" } @@ -112,7 +120,7 @@ configure_target_guess() { x86_64|i686|i586) echo "i586" ;; - armv7*|armv6*|armv5*) + aarch64|armv7*|armv6*|armv5*) echo "armv5tel" ;; *) @@ -304,6 +312,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 @@ -355,7 +373,7 @@ qemu_is_required() { fi case "${BUILD_ARCH},${target_arch}" in - x86_64,arm*|i?86,arm*) + x86_64,arm*|i?86,arm*|i?86,x86_64) return 0 ;; *) @@ -370,6 +388,15 @@ qemu_install_helper() { return 0 fi + if [ ! -e /proc/sys/fs/binfmt_misc/status ]; then + exiterror "binfmt_misc not mounted. QEMU_TARGET_HELPER not useable." + fi + + if [ ! $(cat /proc/sys/fs/binfmt_misc/status) = 'enabled' ]; then + exiterror "binfmt_misc not enabled. QEMU_TARGET_HELPER not useable." + fi + + if [ -z "${QEMU_TARGET_HELPER}" ]; then exiterror "QEMU_TARGET_HELPER not set" fi @@ -407,12 +434,17 @@ qemu_find_target_helper_name() { arm*) magic="7f454c4601010100000000000000000002002800" ;; + x86_64) + magic="7f454c4602010100000000000000000002003e00" + ;; esac [ -z "${magic}" ] && return 1 local file for file in /proc/sys/fs/binfmt_misc/*; do + # skip write only register entry + [ $(basename "${file}") = "register" ] && continue # Search for the file with the correct magic value. grep -qE "^magic ${magic}$" "${file}" || continue @@ -448,10 +480,11 @@ 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=1 \ - CCACHE_COMPILERCHECK="none" \ + CCACHE_COMPRESS="${CCACHE_COMPRESS}" \ + CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \ KVER=$KVER \ BUILDTARGET="$BUILDTARGET" \ CROSSTARGET="${CROSSTARGET}" \ @@ -535,7 +568,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 \ @@ -572,9 +607,11 @@ lfsmake2() { SYSTEM_RELEASE="${SYSTEM_RELEASE}" \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ - CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \ - CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \ - CCACHE_COMPILERCHECK="none" \ + CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \ + CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \ + CCACHE_DIR=/usr/src/ccache \ + CCACHE_COMPRESS="${CCACHE_COMPRESS}" \ + CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \ KVER=$KVER MAKETUNING=$MAKETUNING \ BUILDTARGET="$BUILDTARGET" \ CROSSTARGET="${CROSSTARGET}" \ @@ -613,9 +650,11 @@ ipfiremake() { CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ SYSTEM_RELEASE="$SYSTEM_RELEASE" \ - CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \ - CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \ - CCACHE_COMPILERCHECK="none" \ + CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \ + CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \ + CCACHE_DIR=/usr/src/ccache \ + CCACHE_COMPRESS="${CCACHE_COMPRESS}" \ + CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \ KVER=$KVER MAKETUNING=$MAKETUNING \ BUILDTARGET="$BUILDTARGET" \ CROSSTARGET="${CROSSTARGET}" \ @@ -652,9 +691,11 @@ ipfiredist() { VERSION=$VERSION \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ - CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \ - CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \ - CCACHE_COMPILERCHECK="none" \ + CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \ + CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \ + CCACHE_DIR=/usr/src/ccache \ + CCACHE_COMPRESS="${CCACHE_COMPRESS}" \ + CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \ KVER=$KVER \ BUILDTARGET="$BUILDTARGET" \ CROSSTARGET="${CROSSTARGET}" \ @@ -692,7 +733,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" \