diff --git a/config/arch.arm b/config/arch.arm index 9c56274b21..0412da85aa 100644 --- a/config/arch.arm +++ b/config/arch.arm @@ -45,13 +45,21 @@ TARGET_FPU_FLAGS="-mfloat-abi=$TARGET_FLOAT -mfpu=$TARGET_FPU" SIMD_SUPPORT="yes" ;; + cortex-a53) + TARGET_SUBARCH=armv8-a + TARGET_ABI=eabi + TARGET_EXTRA_FLAGS="-mcpu=${TARGET_CPU}" + TARGET_FPU_FLAGS="-mfloat-abi=$TARGET_FLOAT -mfpu=$TARGET_FPU" + SIMD_SUPPORT="yes" + ;; esac + TARGET_VARIANT="${TARGET_SUBARCH}${TARGET_CPU_FLAGS}" TARGET_GCC_ARCH=${TARGET_SUBARCH/-} - TARGET_KERNEL_ARCH=arm + TARGET_KERNEL_ARCH=${TARGET_KERNEL_ARCH:-arm} # setup ARCH specific *FLAGS - TARGET_CFLAGS="-march=$TARGET_SUBARCH -mabi=aapcs-linux -Wno-psabi -Wa,-mno-warn-deprecated $TARGET_EXTRA_FLAGS" + TARGET_CFLAGS="-march=$TARGET_VARIANT -mabi=aapcs-linux -Wno-psabi -Wa,-mno-warn-deprecated $TARGET_EXTRA_FLAGS" [ -n "$TARGET_FPU" ] && TARGET_CFLAGS="$TARGET_CFLAGS $TARGET_FPU_FLAGS" - TARGET_LDFLAGS="-march=$TARGET_SUBARCH -mtune=$TARGET_CPU" + TARGET_LDFLAGS="-march=$TARGET_VARIANT -mtune=$TARGET_CPU" GCC_OPTS="--with-abi=aapcs-linux --with-arch=$TARGET_SUBARCH --with-float=$TARGET_FLOAT --with-fpu=$TARGET_FPU" diff --git a/config/functions b/config/functions index e63764f699..21a1c15d17 100644 --- a/config/functions +++ b/config/functions @@ -342,8 +342,8 @@ dashes="===========================" linux_config_dir="$PROJECT_DIR/$PROJECT/linux" fi - if [ ! -e $linux_config_dir/linux.$TARGET_ARCH.conf ] && - ! ls $linux_config_dir/*/linux.$TARGET_ARCH.conf &>/dev/null; then + if [ ! -e $linux_config_dir/linux.${TARGET_PATCH_ARCH:-$TARGET_ARCH}.conf ] && + ! ls $linux_config_dir/*/linux.${TARGET_PATCH_ARCH:-$TARGET_ARCH}.conf &>/dev/null; then check_arch="$check_arch\n $dashes$dashes$dashes" check_arch="$check_arch\n ERROR: Architecture not found, use a valid Architecture" check_arch="$check_arch\n for your project or create a new config" diff --git a/packages/addons/driver/sapphire/package.mk b/packages/addons/driver/sapphire/package.mk index 8ea65a0d6f..a959a333ae 100644 --- a/packages/addons/driver/sapphire/package.mk +++ b/packages/addons/driver/sapphire/package.mk @@ -33,6 +33,7 @@ PKG_AUTORECONF="no" PKG_IS_ADDON="yes" PKG_ADDON_NAME="Sapphire Remote Driver" PKG_ADDON_TYPE="xbmc.service" +PKG_IS_KERNEL_PKG="yes" if [ -f $SYSROOT_PREFIX/usr/include/linux/input-event-codes.h ]; then INPUT_H="$SYSROOT_PREFIX/usr/include/linux/input-event-codes.h" diff --git a/packages/devel/libcec/package.mk b/packages/devel/libcec/package.mk index 6d0a37825c..e6a554f20a 100644 --- a/packages/devel/libcec/package.mk +++ b/packages/devel/libcec/package.mk @@ -47,7 +47,7 @@ else fi if [ "$KODIPLAYER_DRIVER" = "libamcodec" ]; then - if [ "$TARGET_ARCH" = "aarch64" ]; then + if [ "$TARGET_KERNEL_ARCH" = "arm64" ]; then PKG_CMAKE_OPTS_TARGET="$PKG_CMAKE_OPTS_TARGET -DHAVE_AOCEC_API=1" else PKG_CMAKE_OPTS_TARGET="$PKG_CMAKE_OPTS_TARGET -DHAVE_AMLOGIC_API=1" diff --git a/packages/emulation/libretro-beetle-pcfx/package.mk b/packages/emulation/libretro-beetle-pcfx/package.mk index d389ac5fff..5aa6b86b90 100644 --- a/packages/emulation/libretro-beetle-pcfx/package.mk +++ b/packages/emulation/libretro-beetle-pcfx/package.mk @@ -51,11 +51,12 @@ make_target() { imx6) make platform=armv7-cortexa9-neon-hardfloat ;; - WeTek_Play|WeTek_Core) - make platform=armv7-cortexa9-neon-hardfloat - ;; - Odroid_C2|WeTek_Hub|WeTek_Play_2) - make platform=aarch64 + WeTek_Play|WeTek_Core|Odroid_C2|WeTek_Hub|WeTek_Play_2) + if [ "$TARGET_ARCH" = "aarch64" ]; then + make platform=aarch64 + else + make platform=armv7-cortexa9-neon-hardfloat + fi ;; Generic) make diff --git a/packages/emulation/libretro-craft/package.mk b/packages/emulation/libretro-craft/package.mk index fc9e976ea0..1ee82b1dc8 100644 --- a/packages/emulation/libretro-craft/package.mk +++ b/packages/emulation/libretro-craft/package.mk @@ -58,11 +58,12 @@ make_target() { imx6) make -f Makefile.libretro platform=imx6 ;; - WeTek_Play|WeTek_Core) - make -f Makefile.libretro platform=armv7-neon-gles-cortex-a9 - ;; - Odroid_C2|WeTek_Hub|WeTek_Play_2) - make -f Makefile.libretro platform=aarch64 + WeTek_Play|WeTek_Core|Odroid_C2|WeTek_Hub|WeTek_Play_2) + if [ "$TARGET_ARCH" = "aarch64" ]; then + make -f Makefile.libretro platform=aarch64 + else + make -f Makefile.libretro platform=armv7-neon-gles-cortex-a9 + fi ;; Generic) make -f Makefile.libretro diff --git a/packages/emulation/libretro-mame2000/package.mk b/packages/emulation/libretro-mame2000/package.mk index 5fd47c8363..91e432501b 100644 --- a/packages/emulation/libretro-mame2000/package.mk +++ b/packages/emulation/libretro-mame2000/package.mk @@ -41,14 +41,11 @@ configure_target() { } make_target() { - case $PROJECT in - RPi|imx6|WeTek_Play|WeTek_Core) - make ARM=1 - ;; - Generic|Odroid_C2|WeTek_Hub|WeTek_Play_2) - make - ;; - esac + if [ "$TARGET_ARCH" = "arm" ]; then + make ARM=1 + else + make + fi } makeinstall_target() { diff --git a/packages/emulation/libretro-mame2010/package.mk b/packages/emulation/libretro-mame2010/package.mk index f70345f579..79ed1ba28f 100644 --- a/packages/emulation/libretro-mame2010/package.mk +++ b/packages/emulation/libretro-mame2010/package.mk @@ -58,11 +58,12 @@ make_target() { imx6) make platform=armv7-neon-hardfloat-cortex-a9 ;; - WeTek_Play|WeTek_Core) - make platform=armv7-neon-hardfloat-cortex-a9 - ;; - Odroid_C2|WeTek_Hub|WeTek_Play_2) - make platform=aarch64 + WeTek_Play|WeTek_Core|Odroid_C2|WeTek_Hub|WeTek_Play_2) + if [ "$TARGET_ARCH" = "aarch64" ]; then + make platform=aarch64 + else + make platform=armv7-neon-hardfloat-cortex-a9 + fi ;; Generic) make diff --git a/packages/emulation/libretro-mame2014/package.mk b/packages/emulation/libretro-mame2014/package.mk index f207696797..abf4d659b5 100644 --- a/packages/emulation/libretro-mame2014/package.mk +++ b/packages/emulation/libretro-mame2014/package.mk @@ -58,11 +58,12 @@ make_target() { imx6) make platform=armv7-neon-hardfloat-cortex-a9 ;; - WeTek_Play|WeTek_Core) - make platform=armv7-neon-hardfloat-cortex-a9 - ;; - Odroid_C2|WeTek_Hub|WeTek_Play_2) - make platform=aarch64 + WeTek_Play|WeTek_Core|Odroid_C2|WeTek_Hub|WeTek_Play_2) + if [ "$TARGET_ARCH" = "aarch64" ]; then + make platform=aarch64 + else + make platform=armv7-neon-hardfloat-cortex-a9 + fi ;; Generic) make diff --git a/packages/emulation/libretro-mupen64plus/package.mk b/packages/emulation/libretro-mupen64plus/package.mk index 5cbbeef268..99f68f40e3 100644 --- a/packages/emulation/libretro-mupen64plus/package.mk +++ b/packages/emulation/libretro-mupen64plus/package.mk @@ -51,11 +51,12 @@ make_target() { imx6) make platform=imx6 ;; - WeTek_Play|WeTek_Core) - make platform=armv7-neon-gles-cortex-a9 - ;; - Odroid_C2|WeTek_Hub|WeTek_Play_2) - make platform=aarch64 + WeTek_Play|WeTek_Core|Odroid_C2|WeTek_Hub|WeTek_Play_2) + if [ "$TARGET_ARCH" = "aarch64" ]; then + make platform=aarch64 + else + make platform=armv7-neon-gles-cortex-a9 + fi ;; Generic) make WITH_DYNAREC=x86_64 diff --git a/packages/emulation/libretro-pcsx-rearmed/package.mk b/packages/emulation/libretro-pcsx-rearmed/package.mk index e2d06866ae..a2f8ce9986 100644 --- a/packages/emulation/libretro-pcsx-rearmed/package.mk +++ b/packages/emulation/libretro-pcsx-rearmed/package.mk @@ -60,11 +60,12 @@ make_target() { imx6) make -f Makefile.libretro platform=armv7-neon-hardfloat-cortex-a9 ;; - WeTek_Play|WeTek_Core) - make -f Makefile.libretro platform=armv7-neon-hardfloat-cortex-a9 - ;; - Odroid_C2|WeTek_Hub|WeTek_Play_2) - make -f Makefile.libretro platform=aarch64 + WeTek_Play|WeTek_Core|Odroid_C2|WeTek_Hub|WeTek_Play_2) + if [ "$TARGET_ARCH" = "aarch64" ]; then + make -f Makefile.libretro platform=aarch64 + else + make -f Makefile.libretro platform=armv7-neon-hardfloat-cortex-a9 + fi ;; Generic) make -f Makefile.libretro diff --git a/packages/graphics/opengl-meson/package.mk b/packages/graphics/opengl-meson/package.mk index 4b853d58a8..9cfd7014da 100644 --- a/packages/graphics/opengl-meson/package.mk +++ b/packages/graphics/opengl-meson/package.mk @@ -29,8 +29,12 @@ case $MESON_FAMILY in PKG_SHA256="21a8376668c84bf1b9e64a917fcfa1cf74689035fed8e4630833c9cde28d40c1" ;; gxbb) - PKG_VERSION="gxbb-r5p1-01rel0" - ;; + if [ "$TARGET_ARCH" = "arm" ]; then + PKG_VERSION="8-r5p1-01rel0-armhf" + else + PKG_VERSION="gxbb-r5p1-01rel0" + fi +;; esac PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" PKG_DEPENDS_TARGET="toolchain" diff --git a/packages/lang/Python/patches/aarch64/Python-001-fix_platform_machine_func_for_32bit_userspace.patch b/packages/lang/Python/patches/aarch64/Python-001-fix_platform_machine_func_for_32bit_userspace.patch new file mode 100644 index 0000000000..b8a117f244 --- /dev/null +++ b/packages/lang/Python/patches/aarch64/Python-001-fix_platform_machine_func_for_32bit_userspace.patch @@ -0,0 +1,13 @@ +diff -Naur Python-2.7.13.orig/Lib/platform.py Python-2.7.13/Lib/platform.py +--- Python-2.7.13.orig/Lib/platform.py 2017-01-08 11:57:36.615886244 +0100 ++++ Python-2.7.13/Lib/platform.py 2017-01-08 12:12:44.567848271 +0100 +@@ -1250,6 +1250,9 @@ + system = 'Windows' + release = 'Vista' + ++ if machine == 'aarch64' and architecture()[0] == '32bit': ++ machine = 'armv7l' ++ + _uname_cache = system,node,release,version,machine,processor + return _uname_cache + diff --git a/packages/lang/gcc-linaro-aarch64-elf/package.mk b/packages/lang/gcc-linaro-aarch64-elf/package.mk index dd27a4b18f..8845469b8f 100644 --- a/packages/lang/gcc-linaro-aarch64-elf/package.mk +++ b/packages/lang/gcc-linaro-aarch64-elf/package.mk @@ -24,7 +24,6 @@ PKG_LICENSE="GPL" PKG_SITE="" PKG_URL="https://releases.linaro.org/components/toolchain/binaries/${PKG_VERSION}/aarch64-elf/gcc-linaro-${PKG_VERSION}-x86_64_aarch64-elf.tar.xz" PKG_SOURCE_DIR="gcc-linaro-${PKG_VERSION}-x86_64_aarch64-elf" -PKG_DEPENDS_HOST="toolchain" PKG_SECTION="lang" PKG_SHORTDESC="" PKG_LONGDESC="" diff --git a/packages/linux-drivers/RTL8188EU/package.mk b/packages/linux-drivers/RTL8188EU/package.mk index b5a0e6ea80..d9ecaad289 100644 --- a/packages/linux-drivers/RTL8188EU/package.mk +++ b/packages/linux-drivers/RTL8188EU/package.mk @@ -33,6 +33,7 @@ PKG_LONGDESC="Realtek RTL81xxEU Linux 3.x driver" PKG_IS_ADDON="no" PKG_AUTORECONF="no" +PKG_IS_KERNEL_PKG="yes" pre_make_target() { unset LDFLAGS diff --git a/packages/linux-drivers/RTL8192CU/package.mk b/packages/linux-drivers/RTL8192CU/package.mk index 66d140c3c9..7bdd26cf5e 100644 --- a/packages/linux-drivers/RTL8192CU/package.mk +++ b/packages/linux-drivers/RTL8192CU/package.mk @@ -32,6 +32,7 @@ PKG_LONGDESC="Realtek RTL81xxCU Linux 3.x driver" PKG_IS_ADDON="no" PKG_AUTORECONF="no" +PKG_IS_KERNEL_PKG="yes" pre_make_target() { unset LDFLAGS diff --git a/packages/linux-drivers/RTL8192DU/package.mk b/packages/linux-drivers/RTL8192DU/package.mk index 8ebf30843f..09a54d1f50 100644 --- a/packages/linux-drivers/RTL8192DU/package.mk +++ b/packages/linux-drivers/RTL8192DU/package.mk @@ -32,6 +32,7 @@ PKG_LONGDESC="Realtek RTL8192DU Linux 3.x driver" PKG_IS_ADDON="no" PKG_AUTORECONF="no" +PKG_IS_KERNEL_PKG="yes" pre_make_target() { unset LDFLAGS diff --git a/packages/linux-drivers/RTL8192EU/package.mk b/packages/linux-drivers/RTL8192EU/package.mk index 2b1536822c..2958b076c8 100644 --- a/packages/linux-drivers/RTL8192EU/package.mk +++ b/packages/linux-drivers/RTL8192EU/package.mk @@ -32,6 +32,7 @@ PKG_LONGDESC="Realtek RTL8192EU Linux 3.x driver" PKG_IS_ADDON="no" PKG_AUTORECONF="no" +PKG_IS_KERNEL_PKG="yes" pre_make_target() { unset LDFLAGS diff --git a/packages/linux-drivers/RTL8812AU/package.mk b/packages/linux-drivers/RTL8812AU/package.mk index 3143610207..4725b346e7 100644 --- a/packages/linux-drivers/RTL8812AU/package.mk +++ b/packages/linux-drivers/RTL8812AU/package.mk @@ -31,6 +31,7 @@ PKG_SHORTDESC="Realtek RTL8812AU Linux 3.x driver" PKG_LONGDESC="Realtek RTL8812AU Linux 3.x driver" PKG_IS_ADDON="no" PKG_AUTORECONF="no" +PKG_IS_KERNEL_PKG="yes" pre_make_target() { unset LDFLAGS diff --git a/packages/linux-drivers/bcm_sta/package.mk b/packages/linux-drivers/bcm_sta/package.mk index fa836804c6..ac55c6b9c6 100644 --- a/packages/linux-drivers/bcm_sta/package.mk +++ b/packages/linux-drivers/bcm_sta/package.mk @@ -34,6 +34,7 @@ PKG_LONGDESC="These packages contain Broadcom's IEEE 802.11a/b/g/n hybrid Linux PKG_IS_ADDON="no" PKG_AUTORECONF="no" +PKG_IS_KERNEL_PKG="yes" make_target() { cd x86-64 diff --git a/packages/linux-drivers/brcmap6xxx-aml/package.mk b/packages/linux-drivers/brcmap6xxx-aml/package.mk index da77b2707d..f0af7b4104 100644 --- a/packages/linux-drivers/brcmap6xxx-aml/package.mk +++ b/packages/linux-drivers/brcmap6xxx-aml/package.mk @@ -31,6 +31,7 @@ PKG_LONGDESC="brcmap6xxx-aml: Linux drivers for AP6xxx WLAN chips used in some d PKG_IS_ADDON="no" PKG_AUTORECONF="no" +PKG_IS_KERNEL_PKG="yes" make_target() { cd bcmdhd_1_201_59_x diff --git a/packages/linux-drivers/dvbhdhomerun/package.mk b/packages/linux-drivers/dvbhdhomerun/package.mk index f4afa3891c..a1e94e9065 100644 --- a/packages/linux-drivers/dvbhdhomerun/package.mk +++ b/packages/linux-drivers/dvbhdhomerun/package.mk @@ -33,6 +33,7 @@ PKG_LONGDESC="A linux DVB driver for the HDHomeRun TV tuner (http://www.silicond PKG_IS_ADDON="no" PKG_AUTORECONF="no" +PKG_IS_KERNEL_PKG="yes" PKG_CMAKE_SCRIPT="userhdhomerun/CMakeLists.txt" diff --git a/packages/linux-drivers/gpu-aml/package.mk b/packages/linux-drivers/gpu-aml/package.mk index d002a5e94c..3f8ddfb8d0 100644 --- a/packages/linux-drivers/gpu-aml/package.mk +++ b/packages/linux-drivers/gpu-aml/package.mk @@ -33,6 +33,7 @@ PKG_LONGDESC="gpu-aml: Linux drivers for Mali GPUs found in Amlogic Meson SoCs" PKG_IS_ADDON="no" PKG_AUTORECONF="no" +PKG_IS_KERNEL_PKG="yes" make_target() { LDFLAGS="" make -C $(kernel_path) M=$PKG_BUILD/mali \ diff --git a/packages/linux-drivers/intel_nuc_led/package.mk b/packages/linux-drivers/intel_nuc_led/package.mk index 06bbe6d2ee..ff302fe446 100644 --- a/packages/linux-drivers/intel_nuc_led/package.mk +++ b/packages/linux-drivers/intel_nuc_led/package.mk @@ -31,6 +31,7 @@ PKG_LONGDESC="Intel NUC7i[x]BN and NUC6CAY LED Control for Linux" PKG_IS_ADDON="no" PKG_AUTORECONF="no" +PKG_IS_KERNEL_PKG="yes" pre_make_target() { unset LDFLAGS diff --git a/packages/linux-drivers/media_build/package.mk b/packages/linux-drivers/media_build/package.mk index f96d4ccb42..01676fae91 100644 --- a/packages/linux-drivers/media_build/package.mk +++ b/packages/linux-drivers/media_build/package.mk @@ -31,6 +31,7 @@ PKG_SHORTDESC="DVB drivers that replace the version shipped with the kernel" PKG_LONGDESC="DVB drivers that replace the version shipped with the kernel" PKG_IS_ADDON="no" PKG_AUTORECONF="no" +PKG_IS_KERNEL_PKG="yes" pre_make_target() { export KERNEL_VER=$(get_module_dir) diff --git a/packages/linux-drivers/slice-drivers/package.mk b/packages/linux-drivers/slice-drivers/package.mk index 186bed69e5..70e4ef38e3 100644 --- a/packages/linux-drivers/slice-drivers/package.mk +++ b/packages/linux-drivers/slice-drivers/package.mk @@ -31,6 +31,7 @@ PKG_LONGDESC="linux kernel modules for the Slice box" PKG_IS_ADDON="no" PKG_AUTORECONF="no" +PKG_IS_KERNEL_PKG="yes" pre_make_target() { unset LDFLAGS diff --git a/packages/linux-drivers/wetekdvb/package.mk b/packages/linux-drivers/wetekdvb/package.mk index 32024a63d7..18f0c001d5 100644 --- a/packages/linux-drivers/wetekdvb/package.mk +++ b/packages/linux-drivers/wetekdvb/package.mk @@ -31,6 +31,7 @@ PKG_LONGDESC="These package contains Wetek's DVB driver " PKG_IS_ADDON="no" PKG_AUTORECONF="no" +PKG_IS_KERNEL_PKG="yes" make_target() { : # nothing todo diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 5d004f0d20..173afce9a0 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -72,8 +72,16 @@ esac PKG_IS_ADDON="no" PKG_AUTORECONF="no" +PKG_IS_KERNEL_PKG="yes" -PKG_MAKE_OPTS_HOST="ARCH=$TARGET_KERNEL_ARCH headers_check" +if [ "$TARGET_KERNEL_ARCH" = "arm64" -a "$TARGET_ARCH" = "arm" ]; then + PKG_DEPENDS_HOST="$PKG_DEPENDS_HOST gcc-linaro-aarch64-elf:host" + PKG_DEPENDS_TARGET="$PKG_DEPENDS_HOST gcc-linaro-aarch64-elf:host" + TARGET_PREFIX=$TOOLCHAIN/lib/gcc-linaro-aarch64-elf/bin/aarch64-elf- + HEADERS_ARCH=$TARGET_ARCH +fi + +PKG_MAKE_OPTS_HOST="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" @@ -84,18 +92,25 @@ if [ "$BUILD_ANDROID_BOOTIMG" = "yes" ]; then fi post_patch() { - if [ -n "$DEVICE" -a -f $PROJECT_DIR/$PROJECT/devices/$DEVICE/$PKG_NAME/$PKG_VERSION/$PKG_NAME.$TARGET_ARCH.conf ]; then - KERNEL_CFG_FILE=$PROJECT_DIR/$PROJECT/devices/$DEVICE/$PKG_NAME/$PKG_VERSION/$PKG_NAME.$TARGET_ARCH.conf - elif [ -n "$DEVICE" -a -f $PROJECT_DIR/$PROJECT/devices/$DEVICE/$PKG_NAME/$PKG_NAME.$TARGET_ARCH.conf ]; then - KERNEL_CFG_FILE=$PROJECT_DIR/$PROJECT/devices/$DEVICE/$PKG_NAME/$PKG_NAME.$TARGET_ARCH.conf - elif [ -f $PROJECT_DIR/$PROJECT/$PKG_NAME/$PKG_VERSION/$PKG_NAME.$TARGET_ARCH.conf ]; then - KERNEL_CFG_FILE=$PROJECT_DIR/$PROJECT/$PKG_NAME/$PKG_VERSION/$PKG_NAME.$TARGET_ARCH.conf - elif [ -f $PROJECT_DIR/$PROJECT/$PKG_NAME/$PKG_NAME.$TARGET_ARCH.conf ]; then - KERNEL_CFG_FILE=$PROJECT_DIR/$PROJECT/$PKG_NAME/$PKG_NAME.$TARGET_ARCH.conf - elif [ -f $PKG_DIR/config/$PKG_VERSION/$PKG_NAME.$TARGET_ARCH.conf ]; then - KERNEL_CFG_FILE=$PKG_DIR/config/$PKG_VERSION/$PKG_NAME.$TARGET_ARCH.conf + CFG_FILE="$PKG_NAME.${TARGET_PATCH_ARCH:-$TARGET_ARCH}.conf" + if [ -n "$DEVICE" -a -f $PROJECT_DIR/$PROJECT/devices/$DEVICE/$PKG_NAME/$PKG_VERSION/$CFG_FILE ]; then + KERNEL_CFG_FILE=$PROJECT_DIR/$PROJECT/devices/$DEVICE/$PKG_NAME/$PKG_VERSION/$CFG_FILE + elif [ -n "$DEVICE" -a -f $PROJECT_DIR/$PROJECT/devices/$DEVICE/$PKG_NAME/$LINUX/$CFG_FILE ]; then + KERNEL_CFG_FILE=$PROJECT_DIR/$PROJECT/devices/$DEVICE/$PKG_NAME/$LINUX/$CFG_FILE + elif [ -n "$DEVICE" -a -f $PROJECT_DIR/$PROJECT/devices/$DEVICE/$PKG_NAME/$CFG_FILE ]; then + KERNEL_CFG_FILE=$PROJECT_DIR/$PROJECT/devices/$DEVICE/$PKG_NAME/$CFG_FILE + elif [ -f $PROJECT_DIR/$PROJECT/$PKG_NAME/$PKG_VERSION/$CFG_FILE ]; then + KERNEL_CFG_FILE=$PROJECT_DIR/$PROJECT/$PKG_NAME/$PKG_VERSION/$CFG_FILE + elif [ -f $PROJECT_DIR/$PROJECT/$PKG_NAME/$LINUX/$CFG_FILE ]; then + KERNEL_CFG_FILE=$PROJECT_DIR/$PROJECT/$PKG_NAME/$LINUX/$CFG_FILE + elif [ -f $PROJECT_DIR/$PROJECT/$PKG_NAME/$CFG_FILE ]; then + KERNEL_CFG_FILE=$PROJECT_DIR/$PROJECT/$PKG_NAME/$CFG_FILE + elif [ -f $PKG_DIR/config/$PKG_VERSION/$CFG_FILE ]; then + KERNEL_CFG_FILE=$PKG_DIR/config/$PKG_VERSION/$CFG_FILE + elif [ -f $PKG_DIR/config/$LINUX/$CFG_FILE ]; then + KERNEL_CFG_FILE=$PKG_DIR/config/$LINUX/$CFG_FILE else - KERNEL_CFG_FILE=$PKG_DIR/config/$PKG_NAME.$TARGET_ARCH.conf + KERNEL_CFG_FILE=$PKG_DIR/config/$CFG_FILE fi sed -i -e "s|^HOSTCC[[:space:]]*=.*$|HOSTCC = $TOOLCHAIN/bin/host-gcc|" \ @@ -148,7 +163,7 @@ post_patch() { } makeinstall_host() { - make ARCH=$TARGET_KERNEL_ARCH INSTALL_HDR_PATH=dest headers_install + make ARCH=${HEADERS_ARCH:-$TARGET_KERNEL_ARCH} INSTALL_HDR_PATH=dest headers_install mkdir -p $SYSROOT_PREFIX/usr/include cp -R dest/include/* $SYSROOT_PREFIX/usr/include } diff --git a/packages/multimedia/libamcodec/package.mk b/packages/multimedia/libamcodec/package.mk index 813d19cc3e..f65ecf676a 100644 --- a/packages/multimedia/libamcodec/package.mk +++ b/packages/multimedia/libamcodec/package.mk @@ -20,13 +20,13 @@ PKG_NAME="libamcodec" PKG_ARCH="arm aarch64" PKG_LICENSE="other" PKG_SITE="http://openlinux.amlogic.com" -case $TARGET_ARCH in +case $TARGET_KERNEL_ARCH in arm) PKG_VERSION="5e23a81" PKG_SHA256="412cfafbd9725f5186b884b9599ff6561d2031b44d9873e79d377631a2b5f9b9" PKG_URL="https://github.com/codesnake/libamcodec/archive/$PKG_VERSION.tar.gz" ;; - aarch64) + arm64) PKG_VERSION="210755d" PKG_SHA256="0c688d80bf1147177acf546230c255404e506ba687ca7bfddd4508d29958c279" PKG_URL="http://amlinux.ru/source/$PKG_NAME-$PKG_VERSION.tar.gz" diff --git a/projects/Odroid_C2/options b/projects/Odroid_C2/options index 29272041b2..0c91745ea3 100644 --- a/projects/Odroid_C2/options +++ b/projects/Odroid_C2/options @@ -21,6 +21,14 @@ TARGET_CPU="cortex-a53" TARGET_CPU_FLAGS="+crc+fp+simd" ;; + arm) + TARGET_KERNEL_ARCH="arm64" + TARGET_PATCH_ARCH="aarch64" + TARGET_FLOAT=hard + TARGET_CPU="cortex-a53" + TARGET_CPU_FLAGS="+crc" + TARGET_FPU="neon-fp-armv8" + ;; esac # Bootloader to use (syslinux / u-boot / bcm2835-bootloader) diff --git a/projects/WeTek_Hub/options b/projects/WeTek_Hub/options index 0b06f98cb3..3af3402bdc 100644 --- a/projects/WeTek_Hub/options +++ b/projects/WeTek_Hub/options @@ -21,6 +21,14 @@ TARGET_CPU="cortex-a53" TARGET_CPU_FLAGS="+crc+fp+simd" ;; + arm) + TARGET_KERNEL_ARCH="arm64" + TARGET_PATCH_ARCH="aarch64" + TARGET_FLOAT=hard + TARGET_CPU="cortex-a53" + TARGET_CPU_FLAGS="+crc" + TARGET_FPU="neon-fp-armv8" + ;; esac # Bootloader to use (syslinux / u-boot / atv-bootloader / bcm2835-bootloader) diff --git a/projects/WeTek_Play_2/options b/projects/WeTek_Play_2/options index c4ffa69674..03a6a902c8 100644 --- a/projects/WeTek_Play_2/options +++ b/projects/WeTek_Play_2/options @@ -21,6 +21,14 @@ TARGET_CPU="cortex-a53" TARGET_CPU_FLAGS="+crc+fp+simd" ;; + arm) + TARGET_KERNEL_ARCH="arm64" + TARGET_PATCH_ARCH="aarch64" + TARGET_FLOAT=hard + TARGET_CPU="cortex-a53" + TARGET_CPU_FLAGS="+crc" + TARGET_FPU="neon-fp-armv8" + ;; esac # Bootloader to use (syslinux / u-boot / atv-bootloader / bcm2835-bootloader) diff --git a/scripts/build b/scripts/build index fa101fce4d..43f9fbed9d 100755 --- a/scripts/build +++ b/scripts/build @@ -164,6 +164,12 @@ if [ ! -f $STAMP ]; then # include buildfile . $PKG_DIR/package.mk + if [ "$PKG_IS_KERNEL_PKG" = "yes" ]; then + if [ "$TARGET_KERNEL_ARCH" = "arm64" -a "$TARGET_ARCH" = "arm" ]; then + TARGET_PREFIX=$TOOLCHAIN/lib/gcc-linaro-aarch64-elf/bin/aarch64-elf- + fi + fi + if [ "$TARGET" = "target" ]; then for p in $PKG_DEPENDS_TARGET; do $SCRIPTS/build $p diff --git a/scripts/image b/scripts/image index e6a3109455..0def3aae30 100755 --- a/scripts/image +++ b/scripts/image @@ -222,6 +222,9 @@ find $INSTALL/usr/lib/modules/$MODVER/ -name *.ko | \ $TOOLCHAIN/bin/depmod -b $INSTALL/usr -a -e -F "$BUILD/linux-$(kernel_version)/System.map" $MODVER # strip kernel modules +if [ "$TARGET_KERNEL_ARCH" = "arm64" -a "$TARGET_ARCH" = "arm" ]; then + STRIP=$TOOLCHAIN/lib/gcc-linaro-aarch64-elf/bin/aarch64-elf-strip +fi for MOD in `find $INSTALL/usr/lib/modules/ -type f -name *.ko`; do $STRIP --strip-debug $MOD done diff --git a/scripts/unpack b/scripts/unpack index 21dd0db371..d1780c3292 100755 --- a/scripts/unpack +++ b/scripts/unpack @@ -113,7 +113,7 @@ if [ -d "$SOURCES/$1" -o -d "$PKG_DIR/sources" ]; then if [ "$TARGET_ARCH" = "x86_64" ]; then PATCH_ARCH="x86" else - PATCH_ARCH="$TARGET_ARCH" + PATCH_ARCH="${TARGET_PATCH_ARCH:-$TARGET_ARCH}" fi PATCH_DIRS_PKG=""