From c38849e1530498030b90e9c0d99a2b97c4346bbf Mon Sep 17 00:00:00 2001 From: ridedolphin <573884287@qq.com> Date: Wed, 29 Mar 2023 08:05:43 +0000 Subject: [PATCH 1/2] Enable gnutls/libmetal/openamp/dhcp compiled with clang in nonclangable.conf, add dhcp and openamp pathces. Reference information: dhcp:https://gitee.com/vonhust/yocto-meta-openeuler/issues/I63GJ7 openamp: https://gitee.com/src-openeuler/OpenAMP/pulls/10 --- meta-clang/conf/nonclangable.conf | 8 +++--- .../recipes-connectivity/dhcp/dhcp_%.bbappend | 8 ++++++ ...asprintf-declaration-for-clang-build.patch | 26 +++++++++++++++++++ .../recipes-mcs/openamp/openamp_%.bbappend | 5 ++++ 4 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 meta-openeuler/dynamic-layers/clang-layer/recipes-connectivity/dhcp/dhcp_%.bbappend create mode 100644 meta-openeuler/dynamic-layers/clang-layer/recipes-connectivity/dhcp/files/remove-asprintf-declaration-for-clang-build.patch create mode 100644 meta-openeuler/dynamic-layers/clang-layer/recipes-mcs/openamp/openamp_%.bbappend diff --git a/meta-clang/conf/nonclangable.conf b/meta-clang/conf/nonclangable.conf index ea64a85b7c0..a543034c657 100644 --- a/meta-clang/conf/nonclangable.conf +++ b/meta-clang/conf/nonclangable.conf @@ -136,10 +136,10 @@ TOOLCHAIN:pn-openssh = "gcc" # some packages not support clang compile yet. TOOLCHAIN:class-native:pn-pseudo-native = "gcc" TOOLCHAIN:class-native:pn-grub-native = "gcc" -TOOLCHAIN:pn-gnutls = "gcc" -TOOLCHAIN:pn-libmetal = "gcc" -TOOLCHAIN:pn-openamp = "gcc" -TOOLCHAIN:pn-dhcp = "gcc" +TOOLCHAIN:pn-gnutls = "clang" +TOOLCHAIN:pn-libmetal = "clang" +TOOLCHAIN:pn-openamp = "clang" +TOOLCHAIN:pn-dhcp = "clang" TOOLCHAIN:pn-openssh = "clang" CFLAGS:append:pn-liboil:toolchain-clang:x86-64 = " -fheinous-gnu-extensions " diff --git a/meta-openeuler/dynamic-layers/clang-layer/recipes-connectivity/dhcp/dhcp_%.bbappend b/meta-openeuler/dynamic-layers/clang-layer/recipes-connectivity/dhcp/dhcp_%.bbappend new file mode 100644 index 00000000000..e837b47046d --- /dev/null +++ b/meta-openeuler/dynamic-layers/clang-layer/recipes-connectivity/dhcp/dhcp_%.bbappend @@ -0,0 +1,8 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/files/:" + +# fix segmentfault error when compiling with clang +SRC_URI:append = " \ + file://remove-asprintf-declaration-for-clang-build.patch \ +" + +CFLAGS:append = " -DHAVE_ASPRINTF " diff --git a/meta-openeuler/dynamic-layers/clang-layer/recipes-connectivity/dhcp/files/remove-asprintf-declaration-for-clang-build.patch b/meta-openeuler/dynamic-layers/clang-layer/recipes-connectivity/dhcp/files/remove-asprintf-declaration-for-clang-build.patch new file mode 100644 index 00000000000..2a4dbdefdb0 --- /dev/null +++ b/meta-openeuler/dynamic-layers/clang-layer/recipes-connectivity/dhcp/files/remove-asprintf-declaration-for-clang-build.patch @@ -0,0 +1,26 @@ +From 3dbbfba1181b69588a544f782e3102d5626a7422 Mon Sep 17 00:00:00 2001 +From: Yunfei Li +Date: Fri, 4 Nov 2022 06:50:50 +0000 +Subject: [PATCH] remove asprintf declaration for clang build + +--- + client/dhclient.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/client/dhclient.c b/client/dhclient.c +index 3b79bd1..cedb19f 100644 +--- a/client/dhclient.c ++++ b/client/dhclient.c +@@ -49,7 +49,9 @@ + * Defined in stdio.h when _GNU_SOURCE is set, but we don't want to define + * that when building ISC code. + */ ++#ifndef HAVE_ASPRINTF + extern int asprintf(char **strp, const char *fmt, ...); ++#endif + + TIME default_lease_time = 43200; /* 12 hours... */ + TIME max_lease_time = 86400; /* 24 hours... */ +-- +2.31.1 + diff --git a/meta-openeuler/dynamic-layers/clang-layer/recipes-mcs/openamp/openamp_%.bbappend b/meta-openeuler/dynamic-layers/clang-layer/recipes-mcs/openamp/openamp_%.bbappend new file mode 100644 index 00000000000..98a0be33363 --- /dev/null +++ b/meta-openeuler/dynamic-layers/clang-layer/recipes-mcs/openamp/openamp_%.bbappend @@ -0,0 +1,5 @@ +# fix segmentfault error when compiling with clang +SRC_URI:append = " \ + file://0001-apps-Fix-atomic_flag-error-for-clang-compilation.patch \ + file://0002-lib-Fix-atomic_flag-error-for-clang-compilation.patch \ +" -- Gitee From faa66a8879363607e5bc8787f7397b9cc7e4cb0e Mon Sep 17 00:00:00 2001 From: ridedolphin Date: Wed, 29 Mar 2023 09:45:44 +0000 Subject: [PATCH 2/2] Disable libmetal compiled with clang in nonclangable.conf --- meta-clang/conf/nonclangable.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-clang/conf/nonclangable.conf b/meta-clang/conf/nonclangable.conf index a543034c657..3c30f5fde61 100644 --- a/meta-clang/conf/nonclangable.conf +++ b/meta-clang/conf/nonclangable.conf @@ -137,7 +137,7 @@ TOOLCHAIN:pn-openssh = "gcc" TOOLCHAIN:class-native:pn-pseudo-native = "gcc" TOOLCHAIN:class-native:pn-grub-native = "gcc" TOOLCHAIN:pn-gnutls = "clang" -TOOLCHAIN:pn-libmetal = "clang" +TOOLCHAIN:pn-libmetal = "gcc" TOOLCHAIN:pn-openamp = "clang" TOOLCHAIN:pn-dhcp = "clang" TOOLCHAIN:pn-openssh = "clang" -- Gitee