From d834f81b915716831fbf155174bbabd9f5e0278c Mon Sep 17 00:00:00 2001 From: emancipator Date: Fri, 10 Nov 2023 14:04:41 +0800 Subject: [PATCH] multilib: support multilib in aarch64 * support multilib in aarch64 * now you can add -f multilib during oebuild generate Signed-off-by: liangqifeng --- .oebuild/features/multilib.yaml | 11 +++++++++++ .../recipes-core/images/openeuler-image-sdk.inc | 6 ++++++ .../features/aarch64-multilib/aarch64-multilib.cfg | 4 ++++ .../features/aarch64-multilib/aarch64-multilib.scc | 4 ++++ .../recipes-kernel/linux/linux-openeuler.inc | 5 +++++ 5 files changed, 30 insertions(+) create mode 100644 .oebuild/features/multilib.yaml create mode 100644 meta-openeuler/recipes-kernel/linux/files/meta-data/features/aarch64-multilib/aarch64-multilib.cfg create mode 100644 meta-openeuler/recipes-kernel/linux/files/meta-data/features/aarch64-multilib/aarch64-multilib.scc diff --git a/.oebuild/features/multilib.yaml b/.oebuild/features/multilib.yaml new file mode 100644 index 00000000000..e25728e0932 --- /dev/null +++ b/.oebuild/features/multilib.yaml @@ -0,0 +1,11 @@ +type: feature + +support: ok3568|ryd-3568|ok3399|ok3588 + +local_conf: | + # Define multilib target + require conf/multilib.conf + MULTILIBS = "multilib:lib32" + DEFAULTTUNE:virtclass-multilib-lib32 = "armv7a" + # Add the multilib packages to the image + IMAGE_INSTALL:append = " lib32-glibc lib32-libgcc lib32-libstdc++" \ No newline at end of file diff --git a/meta-openeuler/recipes-core/images/openeuler-image-sdk.inc b/meta-openeuler/recipes-core/images/openeuler-image-sdk.inc index 0381f39b012..47051af29dd 100644 --- a/meta-openeuler/recipes-core/images/openeuler-image-sdk.inc +++ b/meta-openeuler/recipes-core/images/openeuler-image-sdk.inc @@ -92,3 +92,9 @@ openamp-dev \ libmetal-dev \ sysfsutils-dev \ " + +TOOLCHAIN_TARGET_TASK:remove:aarch64 = " \ +lib32-glibc \ +lib32-libgcc \ +lib32-libstdc++ \ +" diff --git a/meta-openeuler/recipes-kernel/linux/files/meta-data/features/aarch64-multilib/aarch64-multilib.cfg b/meta-openeuler/recipes-kernel/linux/files/meta-data/features/aarch64-multilib/aarch64-multilib.cfg new file mode 100644 index 00000000000..bf45f12a2b6 --- /dev/null +++ b/meta-openeuler/recipes-kernel/linux/files/meta-data/features/aarch64-multilib/aarch64-multilib.cfg @@ -0,0 +1,4 @@ +# +# preempt-rt related kernel config +# +CONFIG_AARCH32_EL0=y diff --git a/meta-openeuler/recipes-kernel/linux/files/meta-data/features/aarch64-multilib/aarch64-multilib.scc b/meta-openeuler/recipes-kernel/linux/files/meta-data/features/aarch64-multilib/aarch64-multilib.scc new file mode 100644 index 00000000000..90661ea9c09 --- /dev/null +++ b/meta-openeuler/recipes-kernel/linux/files/meta-data/features/aarch64-multilib/aarch64-multilib.scc @@ -0,0 +1,4 @@ +define KFEATURE_DESCRIPTION "Enable aarch64 multilib related configs" +define KFEATURE_COMPATBILIY all + +kconf non-hardware aarch64-multilib.cfg diff --git a/meta-openeuler/recipes-kernel/linux/linux-openeuler.inc b/meta-openeuler/recipes-kernel/linux/linux-openeuler.inc index 85639a017ea..8ffcbd28904 100644 --- a/meta-openeuler/recipes-kernel/linux/linux-openeuler.inc +++ b/meta-openeuler/recipes-kernel/linux/linux-openeuler.inc @@ -58,6 +58,11 @@ SRC_URI:append:aarch64 = " \ file://patches/${ARCH}/0001-arm64-add-zImage-support-for-arm64.patch \ " +# add multilib patches only for aarch64 +KERNEL_FEATURES:aarch64:append = " \ + ${@bb.utils.contains('MULTILIBS', 'multilib:lib32', 'features/aarch64-multilib/aarch64-multilib.scc', '', d)} \ +" + ## DEBUG FEATURES KERNEL_FEATURES:append = " \ ${@bb.utils.contains('IMAGE_FEATURES', 'debug-tweaks', 'features/debug/devmem.scc', '', d)} \ -- Gitee