]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - tools/make-functions
toolchain: fix full toolchain crossbuild
[ipfire-2.x.git] / tools / make-functions
index 01521552584ed1e7691ad50e1dd3f0b168805ac8..738675027237b88c60568d9d326c9965843ee41f 100644 (file)
@@ -69,20 +69,20 @@ configure_target() {
 
        case "${target_arch}" in
                x86_64)
-                       BUILDTARGET="${TARGET_ARCH}-unknown-linux-gnu"
-                       CROSSTARGET="${BUILD_ARCH}-cross-linux-gnu"
+                       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"
                        ;;
@@ -361,7 +361,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
                        ;;
                *)
@@ -376,6 +376,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
@@ -413,12 +422,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
 
@@ -456,8 +470,8 @@ entershell() {
                NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
                CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
                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}" \
@@ -579,8 +593,9 @@ lfsmake2() {
                                                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" \
+                                               CCACHE_DIR=/usr/src/ccache \
+                                               CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
+                                               CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
                                                KVER=$KVER MAKETUNING=$MAKETUNING \
                                                BUILDTARGET="$BUILDTARGET" \
                                                CROSSTARGET="${CROSSTARGET}" \
@@ -620,8 +635,9 @@ ipfiremake() {
                                                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" \
+                                               CCACHE_DIR=/usr/src/ccache \
+                                               CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
+                                               CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
                                                KVER=$KVER MAKETUNING=$MAKETUNING \
                                                BUILDTARGET="$BUILDTARGET" \
                                                CROSSTARGET="${CROSSTARGET}" \
@@ -659,8 +675,9 @@ ipfiredist() {
                                        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" \
+                                       CCACHE_DIR=/usr/src/ccache \
+                                       CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
+                                       CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
                                        KVER=$KVER \
                                        BUILDTARGET="$BUILDTARGET" \
                                        CROSSTARGET="${CROSSTARGET}" \