From 88c39552db18e60eaee5117fc0dc599db7bfc474 Mon Sep 17 00:00:00 2001 From: Yunfei Li Date: Fri, 24 Mar 2023 14:38:21 +0800 Subject: [PATCH] openamp: add fix patch for clang compile Add patch 0001-apps-Fix-atomic_flag-error-for-clang-compilation.patch and 0002-lib-Fix-atomic_flag-error-for-clang-compilation.patch to support clang compile. Signed-off-by:liyunfei --- ...mic_flag-error-for-clang-compilation.patch | 53 +++++++++++++++++++ ...mic_flag-error-for-clang-compilation.patch | 44 +++++++++++++++ openamp.spec | 6 +++ 3 files changed, 103 insertions(+) create mode 100644 0001-apps-Fix-atomic_flag-error-for-clang-compilation.patch create mode 100644 0002-lib-Fix-atomic_flag-error-for-clang-compilation.patch diff --git a/0001-apps-Fix-atomic_flag-error-for-clang-compilation.patch b/0001-apps-Fix-atomic_flag-error-for-clang-compilation.patch new file mode 100644 index 0000000..18ece10 --- /dev/null +++ b/0001-apps-Fix-atomic_flag-error-for-clang-compilation.patch @@ -0,0 +1,53 @@ +From 124b01e83f31a404ccb4e796a840f9ff8c92e589 Mon Sep 17 00:00:00 2001 +From: Yunfei Li +Date: Mon, 6 Mar 2023 15:28:33 +0800 +Subject: [PATCH 1/2] apps:Fix atomic_flag error for clang compilation + +Change atomic_int to atomic_flag to solve the error +reported when compiling with clang. + +Signed-off-by: Yunfei Li +--- + apps/examples/linux_rpc_demo/linux_rpc_demo.c | 5 +++-- + apps/system/linux/machine/generic/platform_info.c | 2 +- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/apps/examples/linux_rpc_demo/linux_rpc_demo.c b/apps/examples/linux_rpc_demo/linux_rpc_demo.c +index 16d39d4..35b4f28 100644 +--- a/apps/examples/linux_rpc_demo/linux_rpc_demo.c ++++ b/apps/examples/linux_rpc_demo/linux_rpc_demo.c +@@ -37,7 +37,7 @@ + static struct rpmsg_rpc_clt *rpmsg_default_rpc; + static int fd, bytes_written, bytes_read; + static struct polling poll; +-static atomic_int wait_resp; ++static atomic_flag wait_resp; + + static void rpmsg_rpc_shutdown(struct rpmsg_rpc_clt *rpc) + { +@@ -465,7 +465,8 @@ int app(struct rpmsg_device *rdev, void *priv) + /* redirect I/Os */ + LPRINTF("Initializating I/Os redirection...\r\n"); + table_len = (int)sizeof(rpc_table) / sizeof(struct rpmsg_rpc_services); +- atomic_init(&wait_resp, 1); ++ wait_resp = (atomic_flag)ATOMIC_FLAG_INIT; ++ atomic_flag_test_and_set(&wait_resp); + + ret = rpmsg_rpc_client_init(&rpc, rdev, + rpmsg_rpc_shutdown, rpc_table, table_len); +diff --git a/apps/system/linux/machine/generic/platform_info.c b/apps/system/linux/machine/generic/platform_info.c +index 9afd65e..f0980c8 100644 +--- a/apps/system/linux/machine/generic/platform_info.c ++++ b/apps/system/linux/machine/generic/platform_info.c +@@ -51,7 +51,7 @@ struct vring_ipi_info { + /* Socket file path */ + const char *path; + int fd; +- atomic_int sync; ++ atomic_flag sync; + }; + + struct remoteproc_priv { +-- +2.28.0.windows.1 + diff --git a/0002-lib-Fix-atomic_flag-error-for-clang-compilation.patch b/0002-lib-Fix-atomic_flag-error-for-clang-compilation.patch new file mode 100644 index 0000000..9cd4674 --- /dev/null +++ b/0002-lib-Fix-atomic_flag-error-for-clang-compilation.patch @@ -0,0 +1,44 @@ +From e49995a8a0b354c890454333f7d5ca9712078b83 Mon Sep 17 00:00:00 2001 +From: Yunfei Li +Date: Mon, 6 Mar 2023 15:36:57 +0800 +Subject: [PATCH 2/2] lib:Fix atomic_flag error for clang compilation + +Change atomic_int to atomic_flag to solve the error +reported when compiling with clang. + +Signed-off-by: Yunfei Li +--- + lib/include/openamp/rpmsg_retarget.h | 2 +- + lib/proxy/rpmsg_retarget.c | 3 ++- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/lib/include/openamp/rpmsg_retarget.h b/lib/include/openamp/rpmsg_retarget.h +index b5fe8c6..791874b 100644 +--- a/lib/include/openamp/rpmsg_retarget.h ++++ b/lib/include/openamp/rpmsg_retarget.h +@@ -46,7 +46,7 @@ struct rpmsg_rpc_syscall { + struct rpmsg_rpc_data { + struct rpmsg_endpoint ept; + int ept_destroyed; +- atomic_int nacked; ++ atomic_flag nacked; + void *respbuf; + size_t respbuf_len; + rpmsg_rpc_poll poll; +diff --git a/lib/proxy/rpmsg_retarget.c b/lib/proxy/rpmsg_retarget.c +index 7a1cb7e..2b93427 100644 +--- a/lib/proxy/rpmsg_retarget.c ++++ b/lib/proxy/rpmsg_retarget.c +@@ -85,7 +85,8 @@ int rpmsg_rpc_init(struct rpmsg_rpc_data *rpc, + rpc->ept_destroyed = 0; + rpc->respbuf = NULL; + rpc->respbuf_len = 0; +- atomic_init(&rpc->nacked, 1); ++ rpc->nacked = (atomic_flag)ATOMIC_FLAG_INIT; ++ atomic_flag_test_and_set(&rpc->nacked); + ret = rpmsg_create_ept(&rpc->ept, rdev, + ept_name, ept_addr, ept_raddr, + rpmsg_rpc_ept_cb, rpmsg_service_unbind); +-- +2.28.0.windows.1 + diff --git a/openamp.spec b/openamp.spec index 1d8ec1b..4d49aff 100644 --- a/openamp.spec +++ b/openamp.spec @@ -7,6 +7,9 @@ License: BSD-3-Clause URL: http://github.com/OpenAMP Source0: https://github.com/OpenAMP/open-amp/archive/refs/tags/v%{version}/%{name}-%{version}.tar.gz +Patch0001:0001-apps-Fix-atomic_flag-error-for-clang-compilation.patch +Patch0002:0002-lib-Fix-atomic_flag-error-for-clang-compilation.patch + BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++ @@ -67,6 +70,9 @@ cd build %{_bindir}/*-shared %changelog +* Fri March 24 2023 liyunfei - 2022.10.1-5 +- add patch for clang compile + * Wed March 15 2023 hanzongcheng - 2022.10.1-4 - rename to openamp