linux: use common kernel_make function

Since 4.17, make headers_check requires a working compiler to detect
goto-asm support.

Configuring CROSS_COMPILE= with a non-existant gcc compiler (as is the
case when building linux:host in a clean build) will now always fail.

Avoid setting CROSS_COMPILE in Makefile and instead pass on the
command line when required.

Signed-off-by: Matthias Reichl <hias@horus.com>
This commit is contained in:
Matthias Reichl 2018-06-11 04:05:01 +01:00 committed by MilhouseVH
parent 423242fda6
commit bef9e763e5

View File

@ -86,7 +86,7 @@ if [ "$PKG_BUILD_PERF" != "no" ] && grep -q ^CONFIG_PERF_EVENTS= $PKG_KERNEL_CFG
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET binutils elfutils libunwind zlib openssl"
fi
PKG_MAKE_OPTS_HOST="ARCH=${HEADERS_ARCH:-$TARGET_KERNEL_ARCH} headers_check"
PKG_MAKE_OPTS_HOST="CROSS_COMPILE= ARCH=${HEADERS_ARCH:-$TARGET_KERNEL_ARCH} headers_check"
if [ "$TARGET_ARCH" = "x86_64" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET intel-ucode:host kernel-firmware"
@ -97,12 +97,6 @@ if [ "$BUILD_ANDROID_BOOTIMG" = "yes" ]; then
fi
post_patch() {
sed -i -e "s|^HOSTCC[[:space:]]*=.*$|HOSTCC = $TOOLCHAIN/bin/host-gcc|" \
-e "s|^HOSTCXX[[:space:]]*=.*$|HOSTCXX = $TOOLCHAIN/bin/host-g++|" \
-e "s|^ARCH[[:space:]]*?=.*$|ARCH = $TARGET_KERNEL_ARCH|" \
-e "s|^CROSS_COMPILE[[:space:]]*?=.*$|CROSS_COMPILE = $TARGET_KERNEL_PREFIX|" \
$PKG_BUILD/Makefile
cp $PKG_KERNEL_CFG_FILE $PKG_BUILD/.config
if [ ! "$BUILD_ANDROID_BOOTIMG" = "yes" ]; then
sed -i -e "s|^CONFIG_INITRAMFS_SOURCE=.*$|CONFIG_INITRAMFS_SOURCE=\"$BUILD/image/initramfs.cpio\"|" $PKG_BUILD/.config
@ -148,7 +142,9 @@ post_patch() {
}
makeinstall_host() {
make ARCH=${HEADERS_ARCH:-$TARGET_KERNEL_ARCH} INSTALL_HDR_PATH=dest headers_install
make CROSS_COMPILE= ARCH=${HEADERS_ARCH:-$TARGET_KERNEL_ARCH} INSTALL_HDR_PATH=dest \
HOSTCFLAGS="$HOST_CFLAGS" HOSTLDFLAGS="$HOST_LDFLAGS" \
headers_install
mkdir -p $SYSROOT_PREFIX/usr/include
cp -R dest/include/* $SYSROOT_PREFIX/usr/include
}
@ -165,7 +161,7 @@ pre_make_target() {
sed -i "s|CONFIG_EXTRA_FIRMWARE=.*|CONFIG_EXTRA_FIRMWARE=\"${FW_LIST}\"|" $PKG_BUILD/.config
fi
make oldconfig
kernel_make oldconfig
# regdb (backward compatability with pre-4.15 kernels)
if grep -q ^CONFIG_CFG80211_INTERNAL_REGDB= $PKG_BUILD/.config ; then
@ -174,8 +170,8 @@ pre_make_target() {
}
make_target() {
LDFLAGS="" make modules
LDFLAGS="" make INSTALL_MOD_PATH=$INSTALL/$(get_kernel_overlay_dir) DEPMOD="$TOOLCHAIN/bin/depmod" modules_install
kernel_make modules
kernel_make INSTALL_MOD_PATH=$INSTALL/$(get_kernel_overlay_dir) modules_install
rm -f $INSTALL/$(get_kernel_overlay_dir)/lib/modules/*/build
rm -f $INSTALL/$(get_kernel_overlay_dir)/lib/modules/*/source
@ -221,11 +217,11 @@ make_target() {
if [ "$BOOTLOADER" = "u-boot" -a -n "$KERNEL_UBOOT_EXTRA_TARGET" ]; then
for extra_target in "$KERNEL_UBOOT_EXTRA_TARGET"; do
LDFLAGS="" make $extra_target
kernel_make $extra_target
done
fi
LDFLAGS="" make $KERNEL_TARGET $KERNEL_MAKE_EXTRACMD
kernel_make $KERNEL_TARGET $KERNEL_MAKE_EXTRACMD
if [ "$BUILD_ANDROID_BOOTIMG" = "yes" ]; then
DTB_BLOBS=($(ls arch/$TARGET_KERNEL_ARCH/boot/dts/amlogic/*.dtb 2>/dev/null || true))