From ca54a7f1a99e5e5173260f7b4370dc0dd7a3f4b2 Mon Sep 17 00:00:00 2001 From: "Sascha Kuehndel (InuSasha)" Date: Sun, 3 Jun 2018 17:56:08 +0200 Subject: [PATCH] WC/WP: use older linaro compiler for WeTek_Core/Play - linux-3.10 are not able to build with gcc-8.1 --- config/path | 10 ++-- .../gcc-linaro-arm-linux-gnuebihf/package.mk | 54 +++++++++++++++++++ packages/linux/package.mk | 5 ++ projects/WeTek_Core/options | 3 ++ projects/WeTek_Play/options | 3 ++ 5 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 packages/lang/gcc-linaro-arm-linux-gnuebihf/package.mk diff --git a/config/path b/config/path index d53ee100ef..71dfdb78e5 100644 --- a/config/path +++ b/config/path @@ -38,10 +38,14 @@ LIB_PREFIX=$SYSROOT_PREFIX/usr TARGET_PREFIX=$TOOLCHAIN/bin/$TARGET_NAME- # use linaro toolchain on 64/32 split builds -if [ "$TARGET_KERNEL_ARCH" = "arm64" -a "$TARGET_ARCH" = "arm" ]; then - TARGET_KERNEL_PREFIX=$TOOLCHAIN/lib/gcc-linaro-aarch64-linux-gnu/bin/aarch64-linux-gnu- +if [ -z "$TARGET_KERNEL_RELATIVE_PREFIX" ]; then + if [ "$TARGET_KERNEL_ARCH" = "arm64" -a "$TARGET_ARCH" = "arm" ]; then + TARGET_KERNEL_PREFIX=$TOOLCHAIN/lib/gcc-linaro-aarch64-linux-gnu/bin/aarch64-linux-gnu- + else + TARGET_KERNEL_PREFIX=$TARGET_PREFIX + fi else - TARGET_KERNEL_PREFIX=$TARGET_PREFIX + TARGET_KERNEL_PREFIX="$TOOLCHAIN/$TARGET_KERNEL_RELATIVE_PREFIX" fi FAKEROOT_SCRIPT=$BUILD/.fakeroot diff --git a/packages/lang/gcc-linaro-arm-linux-gnuebihf/package.mk b/packages/lang/gcc-linaro-arm-linux-gnuebihf/package.mk new file mode 100644 index 0000000000..4e33676424 --- /dev/null +++ b/packages/lang/gcc-linaro-arm-linux-gnuebihf/package.mk @@ -0,0 +1,54 @@ +################################################################################ +# This file is part of LibreELEC - https://libreelec.tv +# Copyright (C) 2017-present Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +PKG_NAME="gcc-linaro-arm-linux-gnuebihf" +PKG_VERSION="7.2.1-2017.11" +PKG_SHA256="72919a3a99d4e28309bc8b0e615f44c65824ef012de50db3ffe9a34776e6f510" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="" +PKG_URL="https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabihf/gcc-linaro-7.2.1-2017.11-i686_arm-linux-gnueabihf.tar.xz" +PKG_SOURCE_DIR="gcc-linaro-$PKG_VERSION-i686_arm-linux-gnueabihf" +PKG_DEPENDS_HOST="ccache:host" +PKG_SECTION="lang" +PKG_SHORTDESC="Linaro Aarch64 GNU Linux Binary Toolchain" +PKG_TOOLCHAIN="manual" + +makeinstall_host() { + mkdir -p $TOOLCHAIN/lib/gcc-linaro-arm-linux-gnuebihf/ + cp -a * $TOOLCHAIN/lib/gcc-linaro-arm-linux-gnuebihf + + # wrap gcc and g++ with ccache like in gcc package.mk + PKG_GCC_PREFIX="$TOOLCHAIN/lib/gcc-linaro-arm-linux-gnuebihf/bin/arm-linux-gnueabihf-" + + cp "${PKG_GCC_PREFIX}gcc" "${PKG_GCC_PREFIX}gcc.real" +cat > "${PKG_GCC_PREFIX}gcc" << EOF +#!/bin/sh +$TOOLCHAIN/bin/ccache ${PKG_GCC_PREFIX}gcc.real "\$@" +EOF + + chmod +x "${PKG_GCC_PREFIX}gcc" + + cp "${PKG_GCC_PREFIX}g++" "${PKG_GCC_PREFIX}g++.real" +cat > "${PKG_GCC_PREFIX}g++" << EOF +#!/bin/sh +$TOOLCHAIN/bin/ccache ${PKG_GCC_PREFIX}g++.real "\$@" +EOF + + chmod +x "${PKG_GCC_PREFIX}g++" +} diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 96507364d9..130c916665 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -76,6 +76,11 @@ if [ "$TARGET_KERNEL_ARCH" = "arm64" -a "$TARGET_ARCH" = "arm" ]; then HEADERS_ARCH=$TARGET_ARCH fi +if [ "$LINUX" = "amlogic-3.10" -a "$TARGET_KERNEL_ARCH" = "arm" -a "$TARGET_ARCH" = "arm" ]; then + PKG_DEPENDS_HOST="$PKG_DEPENDS_HOST gcc-linaro-arm-linux-gnuebihf:host" + PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET gcc-linaro-arm-linux-gnuebihf:host" +fi + if [ "$PKG_BUILD_PERF" != "no" ] && grep -q ^CONFIG_PERF_EVENTS= $PKG_KERNEL_CFG_FILE ; then PKG_BUILD_PERF="yes" PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET binutils elfutils libunwind zlib openssl" diff --git a/projects/WeTek_Core/options b/projects/WeTek_Core/options index 829bf2ddc4..f6dd1dd20d 100644 --- a/projects/WeTek_Core/options +++ b/projects/WeTek_Core/options @@ -33,6 +33,9 @@ # neon-vfpv4. TARGET_FPU="neon-fp16" TARGET_FEATURES="32bit" + + # TARGET_KERNEL_PREFIX + TARGET_KERNEL_RELATIVE_PREFIX="lib/gcc-linaro-arm-linux-gnuebihf/bin/arm-linux-gnueabihf-" ;; esac diff --git a/projects/WeTek_Play/options b/projects/WeTek_Play/options index 6434f24cbe..b61ac08897 100644 --- a/projects/WeTek_Play/options +++ b/projects/WeTek_Play/options @@ -33,6 +33,9 @@ # neon-vfpv4. TARGET_FPU="neon-fp16" TARGET_FEATURES="32bit" + + # TARGET_KERNEL_PREFIX + TARGET_KERNEL_RELATIVE_PREFIX="lib/gcc-linaro-arm-linux-gnuebihf/bin/arm-linux-gnueabihf-" ;; esac