From c19a3ff7807e66f39bb898ce814fee5e904dc20b Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Tue, 18 Dec 2018 03:43:28 +0000 Subject: [PATCH] packages: setup_toolchain $TARGET only called after package is sourced Packages referencing variables defined in setup_toolchain such as CC, CXX, AR, CFLAGS, LDFLAGS, HOST_CC etc. etc. must only reference these variables in pre_build()/pre_configure()/pre_make() etc. functions, as the variables will not be available when the package is sourced, but will be available after the call to setup_toolchain() from scripts/build. --- .../lm_sensors/package.mk | 3 +- packages/databases/sqlite/package.mk | 16 ++++++---- packages/debug/gdb/package.mk | 9 ++++-- packages/devel/ccache/package.mk | 9 ++++-- packages/devel/make/package.mk | 5 ++- .../emulation/libretro-fbalpha/package.mk | 4 +-- packages/graphics/vsxu/package.mk | 7 ++-- packages/sysutils/busybox/package.mk | 32 ++++++++++--------- packages/sysutils/diskdev_cmds/package.mk | 5 +-- packages/sysutils/tz/package.mk | 5 ++- packages/tools/grub/package.mk | 12 +++---- packages/tools/syslinux/package.mk | 5 ++- packages/x11/lib/libpciaccess/package.mk | 7 ++-- 13 files changed, 73 insertions(+), 46 deletions(-) diff --git a/packages/addons/addon-depends/system-tools-depends/lm_sensors/package.mk b/packages/addons/addon-depends/system-tools-depends/lm_sensors/package.mk index ba1ab31ade..0840026316 100644 --- a/packages/addons/addon-depends/system-tools-depends/lm_sensors/package.mk +++ b/packages/addons/addon-depends/system-tools-depends/lm_sensors/package.mk @@ -11,10 +11,11 @@ PKG_URL="https://github.com/groeck/lm-sensors/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="Provides user-space support for the hardware monitoring drivers." -PKG_MAKE_OPTS_TARGET="PREFIX=/usr CC=$CC AR=$AR" PKG_MAKEINSTALL_OPTS_TARGET="PREFIX=/usr" pre_make_target() { + PKG_MAKE_OPTS_TARGET="PREFIX=/usr CC=$CC AR=$AR" + export CFLAGS="$TARGET_CFLAGS" export CPPFLAGS="$TARGET_CPPFLAGS" } diff --git a/packages/databases/sqlite/package.mk b/packages/databases/sqlite/package.mk index de52d44fa2..66af7122b5 100644 --- a/packages/databases/sqlite/package.mk +++ b/packages/databases/sqlite/package.mk @@ -13,6 +13,14 @@ PKG_LONGDESC="An Embeddable SQL Database Engine." # libsqlite3.a(sqlite3.o): requires dynamic R_X86_64_PC32 reloc against 'sqlite3_stricmp' which may overflow at runtime PKG_BUILD_FLAGS="+pic +pic:host -parallel" +PKG_CONFIGURE_OPTS_TARGET="--disable-static \ + --enable-shared \ + --disable-readline \ + --enable-threadsafe \ + --enable-dynamic-extensions \ + --with-gnu-ld" + +pre_configure_target() { # sqlite fails to compile with fast-math link time optimization. CFLAGS=`echo $CFLAGS | sed -e "s|-Ofast|-O3|g"` CFLAGS=`echo $CFLAGS | sed -e "s|-ffast-math||g"` @@ -43,10 +51,4 @@ PKG_BUILD_FLAGS="+pic +pic:host -parallel" # sqlite3_config(SQLITE_CONFIG_MMAP_SIZE) call, or at run-time using the # mmap_size pragma. CFLAGS="$CFLAGS -DSQLITE_TEMP_STORE=3 -DSQLITE_DEFAULT_MMAP_SIZE=268435456" - -PKG_CONFIGURE_OPTS_TARGET="--disable-static \ - --enable-shared \ - --disable-readline \ - --enable-threadsafe \ - --enable-dynamic-extensions \ - --with-gnu-ld" +} diff --git a/packages/debug/gdb/package.mk b/packages/debug/gdb/package.mk index b5041ad3cb..10c51b7229 100644 --- a/packages/debug/gdb/package.mk +++ b/packages/debug/gdb/package.mk @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="gdb" PKG_VERSION="8.1" @@ -11,9 +12,6 @@ PKG_DEPENDS_TARGET="toolchain zlib ncurses expat" PKG_LONGDESC="GNU Project debugger, allows you to see what is going on inside another program while it executes." # gdb could fail on runtime if build with LTO support -CC_FOR_BUILD="$HOST_CC" -CFLAGS_FOR_BUILD="$HOST_CFLAGS" - PKG_CONFIGURE_OPTS_TARGET="bash_cv_have_mbstate_t=set \ --disable-shared \ --enable-static \ @@ -30,6 +28,11 @@ PKG_CONFIGURE_OPTS_TARGET="bash_cv_have_mbstate_t=set \ --enable-libssp \ --disable-werror" +pre_configure_target() { + CC_FOR_BUILD="$HOST_CC" + CFLAGS_FOR_BUILD="$HOST_CFLAGS" +} + makeinstall_target() { make DESTDIR=$INSTALL install } diff --git a/packages/devel/ccache/package.mk b/packages/devel/ccache/package.mk index 186641fc47..f0cc2a309b 100644 --- a/packages/devel/ccache/package.mk +++ b/packages/devel/ccache/package.mk @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="ccache" PKG_VERSION="3.3.6" @@ -10,11 +11,13 @@ PKG_URL="https://samba.org/ftp/ccache/$PKG_NAME-$PKG_VERSION.tar.bz2" PKG_DEPENDS_HOST="make:host" PKG_LONGDESC="A compiler cache to speed up re-compilation of C/C++ code by caching." -export CC=$LOCAL_CC -export CXX=$LOCAL_CXX - PKG_CONFIGURE_OPTS_HOST="--with-bundled-zlib" +pre_configure_host() { + export CC=$LOCAL_CC + export CXX=$LOCAL_CXX +} + post_makeinstall_host() { # setup ccache if [ -z "$CCACHE_DISABLE" ]; then diff --git a/packages/devel/make/package.mk b/packages/devel/make/package.mk index 2e53181f1d..366fec7145 100644 --- a/packages/devel/make/package.mk +++ b/packages/devel/make/package.mk @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="make" PKG_VERSION="4.2.1" @@ -10,7 +11,9 @@ PKG_URL="http://ftpmirror.gnu.org/make/$PKG_NAME-$PKG_VERSION.tar.bz2" PKG_DEPENDS_HOST="" PKG_LONGDESC="Utility to maintain groups of programs." -export CC=$LOCAL_CC +pre_configure_host() { + export CC=$LOCAL_CC +} post_makeinstall_host() { ln -sf make $TOOLCHAIN/bin/gmake diff --git a/packages/emulation/libretro-fbalpha/package.mk b/packages/emulation/libretro-fbalpha/package.mk index e05bd4c971..6a0b13d9eb 100644 --- a/packages/emulation/libretro-fbalpha/package.mk +++ b/packages/emulation/libretro-fbalpha/package.mk @@ -15,9 +15,9 @@ PKG_LIBNAME="fbalpha_libretro.so" PKG_LIBPATH="$PKG_LIBNAME" PKG_LIBVAR="FBALPHA_LIB" -PKG_MAKE_OPTS_TARGET="-f makefile.libretro CC=$CC CXX=$CXX GIT_VERSION=${PKG_VERSION:0:7}" - pre_make_target() { + PKG_MAKE_OPTS_TARGET="-f makefile.libretro CC=$CC CXX=$CXX GIT_VERSION=${PKG_VERSION:0:7}" + if [ "$PROJECT" = "RPi" ]; then case $DEVICE in RPi) diff --git a/packages/graphics/vsxu/package.mk b/packages/graphics/vsxu/package.mk index 0e0d2c9328..54e015dc09 100644 --- a/packages/graphics/vsxu/package.mk +++ b/packages/graphics/vsxu/package.mk @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="vsxu" PKG_VERSION="0.5.1" @@ -12,13 +13,15 @@ PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.gz" PKG_DEPENDS_TARGET="toolchain $OPENGL libX11 glew glfw zlib libpng libjpeg-turbo freetype" PKG_LONGDESC="an OpenGL-based programming environment to visualize music and create graphic effects" -export LDFLAGS="$LDFLAGS -lX11" - PKG_CMAKE_OPTS_TARGET="-DBUILD_SHARED_LIBS=0 \ -DVSXU_STATIC=1 \ -DCMAKE_POSITION_INDEPENDENT_CODE=1 \ -DCMAKE_CXX_FLAGS=-I$SYSROOT_PREFIX/usr/include/freetype2" +pre_configure_target(){ + export LDFLAGS="$LDFLAGS -lX11" +} + post_makeinstall_target() { mkdir -p $SYSROOT_PREFIX/usr/lib/vsxu cp -PR $INSTALL/usr/lib/* $SYSROOT_PREFIX/usr/lib diff --git a/packages/sysutils/busybox/package.mk b/packages/sysutils/busybox/package.mk index 8dd9226cfe..4d8b2fbd0a 100644 --- a/packages/sysutils/busybox/package.mk +++ b/packages/sysutils/busybox/package.mk @@ -15,22 +15,10 @@ PKG_LONGDESC="BusyBox combines tiny versions of many common UNIX utilities into # busybox fails to build with GOLD support enabled with binutils-2.25 PKG_BUILD_FLAGS="-parallel -gold" -PKG_MAKE_OPTS_HOST="ARCH=$TARGET_ARCH CROSS_COMPILE= KBUILD_VERBOSE=1 install" -PKG_MAKE_OPTS_TARGET="ARCH=$TARGET_ARCH \ - HOSTCC=$HOST_CC \ - CROSS_COMPILE=$TARGET_PREFIX \ - KBUILD_VERBOSE=1 \ - install" -PKG_MAKE_OPTS_INIT="ARCH=$TARGET_ARCH \ - HOSTCC=$HOST_CC \ - CROSS_COMPILE=$TARGET_PREFIX \ - KBUILD_VERBOSE=1 \ - install" - # nano text editor - if [ "$NANO_EDITOR" = "yes" ]; then - PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET nano" - fi +if [ "$NANO_EDITOR" = "yes" ]; then + PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET nano" +fi # nfs support if [ "$NFS_SUPPORT" = yes ]; then @@ -38,16 +26,30 @@ if [ "$NFS_SUPPORT" = yes ]; then fi pre_build_target() { + PKG_MAKE_OPTS_TARGET="ARCH=$TARGET_ARCH \ + HOSTCC=$HOST_CC \ + CROSS_COMPILE=$TARGET_PREFIX \ + KBUILD_VERBOSE=1 \ + install" + mkdir -p $PKG_BUILD/.$TARGET_NAME cp -RP $PKG_BUILD/* $PKG_BUILD/.$TARGET_NAME } pre_build_host() { + PKG_MAKE_OPTS_HOST="ARCH=$TARGET_ARCH CROSS_COMPILE= KBUILD_VERBOSE=1 install" + mkdir -p $PKG_BUILD/.$HOST_NAME cp -RP $PKG_BUILD/* $PKG_BUILD/.$HOST_NAME } pre_build_init() { + PKG_MAKE_OPTS_INIT="ARCH=$TARGET_ARCH \ + HOSTCC=$HOST_CC \ + CROSS_COMPILE=$TARGET_PREFIX \ + KBUILD_VERBOSE=1 \ + install" + mkdir -p $PKG_BUILD/.$TARGET_NAME-init cp -RP $PKG_BUILD/* $PKG_BUILD/.$TARGET_NAME-init } diff --git a/packages/sysutils/diskdev_cmds/package.mk b/packages/sysutils/diskdev_cmds/package.mk index d37cf8897c..d02f6cf026 100644 --- a/packages/sysutils/diskdev_cmds/package.mk +++ b/packages/sysutils/diskdev_cmds/package.mk @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="diskdev_cmds" PKG_VERSION="332.14" @@ -10,9 +11,9 @@ PKG_URL="http://www.opensource.apple.com/tarballs/diskdev_cmds/$PKG_NAME-$PKG_VE PKG_DEPENDS_TARGET="toolchain openssl" PKG_LONGDESC="The fsck and mkfs utliities for hfs and hfsplus filesystems." -PKG_MAKE_OPTS_TARGET="-f Makefile.lnx CC=$CC" - pre_make_target() { + PKG_MAKE_OPTS_TARGET="-f Makefile.lnx CC=$CC" + export CFLAGS="$TARGET_CFLAGS -g3 -Wall -I$PKG_BUILD/include -DDEBUG_BUILD=0 -D_FILE_OFFSET_BITS=64 -D LINUX=1 -D BSD=1" } diff --git a/packages/sysutils/tz/package.mk b/packages/sysutils/tz/package.mk index abf7899ffd..2cfb68959a 100644 --- a/packages/sysutils/tz/package.mk +++ b/packages/sysutils/tz/package.mk @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="tz" PKG_VERSION="2018c" @@ -10,7 +11,9 @@ PKG_URL="https://github.com/eggert/tz/archive/$PKG_VERSION.tar.gz" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="Time zone and daylight-saving time data." -PKG_MAKE_OPTS_TARGET="CC=$HOST_CC LDFLAGS=" +pre_configure_target() { + PKG_MAKE_OPTS_TARGET="CC=$HOST_CC LDFLAGS=" +} makeinstall_target() { make TZDIR="$INSTALL/usr/share/zoneinfo" REDO=posix_only TOPDIR="$INSTALL" install diff --git a/packages/tools/grub/package.mk b/packages/tools/grub/package.mk index 8516d8f258..9c660e855d 100755 --- a/packages/tools/grub/package.mk +++ b/packages/tools/grub/package.mk @@ -12,19 +12,19 @@ PKG_DEPENDS_TARGET="toolchain flex freetype:host" PKG_LONGDESC="GRUB is a Multiboot boot loader." PKG_TOOLCHAIN="configure" -PKG_CONFIGURE_OPTS_TARGET="--target=i386-pc-linux \ - --disable-nls \ - --with-platform=efi" +pre_configure_target() { + PKG_CONFIGURE_OPTS_TARGET="--target=i386-pc-linux \ + --disable-nls \ + --with-platform=efi" unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS - -pre_configure_target() { unset CPP + cd $PKG_BUILD - ./autogen.sh + ./autogen.sh } make_target() { diff --git a/packages/tools/syslinux/package.mk b/packages/tools/syslinux/package.mk index 608dd59b93..f47bcee789 100644 --- a/packages/tools/syslinux/package.mk +++ b/packages/tools/syslinux/package.mk @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="syslinux" PKG_VERSION="6.03" @@ -12,13 +13,15 @@ PKG_DEPENDS_HOST="util-linux:host" PKG_DEPENDS_TARGET="toolchain util-linux e2fsprogs syslinux:host" PKG_LONGDESC="The SYSLINUX project covers lightweight linux bootloaders." -PKG_MAKE_OPTS_TARGET="CC=$CC AR=$AR RANLIB=$RANLIB installer" +pre_configure_target() { + PKG_MAKE_OPTS_TARGET="CC=$CC AR=$AR RANLIB=$RANLIB installer" # Unset all compiler FLAGS unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS +} pre_build_target() { mkdir -p $PKG_BUILD/.$TARGET_NAME diff --git a/packages/x11/lib/libpciaccess/package.mk b/packages/x11/lib/libpciaccess/package.mk index cc7fee9503..7a5b9a92c1 100644 --- a/packages/x11/lib/libpciaccess/package.mk +++ b/packages/x11/lib/libpciaccess/package.mk @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="libpciaccess" PKG_VERSION="0.14" @@ -10,8 +11,10 @@ PKG_URL="http://xorg.freedesktop.org/archive/individual/lib/$PKG_NAME-$PKG_VERSI PKG_DEPENDS_TARGET="toolchain util-macros zlib" PKG_LONGDESC="X.org libpciaccess library." -CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE" - PKG_CONFIGURE_OPTS_TARGET="ac_cv_header_asm_mtrr_h=set \ --with-pciids-path=/usr/share \ --with-zlib " + +pre_configure_target() { + CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE" +}