diff --git a/meta-clang/conf/nonclangable.conf b/meta-clang/conf/nonclangable.conf index ea64a85b7c0de42a6b2f9b7c13864147576f118d..3c30f5fde61dfb4df4fe8260f55037ba458405a9 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-gnutls = "clang" TOOLCHAIN:pn-libmetal = "gcc" -TOOLCHAIN:pn-openamp = "gcc" -TOOLCHAIN:pn-dhcp = "gcc" +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 0000000000000000000000000000000000000000..e837b47046d7a2f73a54e62cbeb35cb43746e85b --- /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 0000000000000000000000000000000000000000..2a4dbdefdb066dfd082ca249eccc81b8e368e99c --- /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 0000000000000000000000000000000000000000..98a0be3336300a248d28aea09f6983d5d159a816 --- /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 \ +"