From f26b8ea31eea468eac53f7218f9e9895d3c3b6d3 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 2 Aug 2020 10:28:31 -0700 Subject: libcxx: Fix build on rv32 and use compiler-rt on rv32/rv64 Signed-off-by: Khem Raj --- ...ne-__NR_futex-to-be-__NR_futex_time64-on-.patch | 32 ++++++++++++++++++++++ recipes-devtools/clang/libcxx_git.bb | 2 -- 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 recipes-devtools/clang/clang/0025-libcxx-Define-__NR_futex-to-be-__NR_futex_time64-on-.patch diff --git a/recipes-devtools/clang/clang/0025-libcxx-Define-__NR_futex-to-be-__NR_futex_time64-on-.patch b/recipes-devtools/clang/clang/0025-libcxx-Define-__NR_futex-to-be-__NR_futex_time64-on-.patch new file mode 100644 index 0000000..52a08d6 --- /dev/null +++ b/recipes-devtools/clang/clang/0025-libcxx-Define-__NR_futex-to-be-__NR_futex_time64-on-.patch @@ -0,0 +1,32 @@ +From b0332a97ab1abdddadbe34dc30ee2b8e7d5cb2f9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 2 Aug 2020 10:11:00 -0700 +Subject: [PATCH] libcxx: Define __NR_futex to be __NR_futex_time64 on riscv32 + +RISCV glibc has decided to use 64bit time_t from get go unlike +other 32bit architecture therefore aliasing __NR_futex to +__NR_futex_time64 helps avoid the below errors on rv32 + +Upstream-Status: Submittted [https://reviews.llvm.org/D85095] +Signed-off-by: Khem Raj +--- + libcxx/src/atomic.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/libcxx/src/atomic.cpp b/libcxx/src/atomic.cpp +index 65d4837bb4a7..e9969b8e570e 100644 +--- a/libcxx/src/atomic.cpp ++++ b/libcxx/src/atomic.cpp +@@ -16,6 +16,9 @@ + #include + + #ifdef __linux__ ++#if !defined(__NR_futex) && defined(__riscv) && __riscv_xlen == 32 ++# define __NR_futex __NR_futex_time64 ++#endif + + #include + #include +-- +2.28.0 + diff --git a/recipes-devtools/clang/libcxx_git.bb b/recipes-devtools/clang/libcxx_git.bb index 1dfcc69..80eaa78 100644 --- a/recipes-devtools/clang/libcxx_git.bb +++ b/recipes-devtools/clang/libcxx_git.bb @@ -11,8 +11,6 @@ require common-source.inc inherit cmake python3native PACKAGECONFIG ??= "compiler-rt exceptions ${@bb.utils.contains("RUNTIME", "llvm", "unwind", "", d)}" -PACKAGECONFIG_riscv32 = "exceptions" -PACKAGECONFIG_riscv64 = "exceptions" PACKAGECONFIG_append_armv5 = " no-atomics" PACKAGECONFIG[unwind] = "-DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_SHARED_LIBRARY=ON -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_STATIC_LIBRARY=ON,-DLIBCXXABI_USE_LLVM_UNWINDER=OFF,," -- cgit v1.2.3-54-g00ecf