From f1455b56ebe721dfea562a4bb159d848f93db679 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 8 Aug 2020 17:39:43 +0200 Subject: [PATCH] package/libabseil-cpp: fix build on RISC-V 32-bits This commit backports an upstream patch that fixes the build on RISC-V 32-bits. Fixes: http://autobuild.buildroot.net/results/c6c2c99bdba8c840d52fe0464d26aca169ea1d90/ Signed-off-by: Thomas Petazzoni Signed-off-by: Yann E. MORIN --- .../0003-Fix-build-on-riscv32-675.patch | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 package/libabseil-cpp/0003-Fix-build-on-riscv32-675.patch diff --git a/package/libabseil-cpp/0003-Fix-build-on-riscv32-675.patch b/package/libabseil-cpp/0003-Fix-build-on-riscv32-675.patch new file mode 100644 index 0000000000..0077c5fe9b --- /dev/null +++ b/package/libabseil-cpp/0003-Fix-build-on-riscv32-675.patch @@ -0,0 +1,77 @@ +From 3f347c46272886a099852a4cd303ecf37a054de8 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 18 May 2020 10:23:50 -0700 +Subject: [PATCH] Fix build on riscv32 (#675) + +[Backport from upstream commit 3f347c46272886a099852a4cd303ecf37a054de8] +Signed-off-by: Thomas Petazzoni +--- + absl/base/internal/direct_mmap.h | 5 +++++ + absl/base/internal/spinlock_linux.inc | 8 ++++++++ + absl/synchronization/internal/waiter.cc | 8 ++++++++ + 3 files changed, 21 insertions(+) + +diff --git a/absl/base/internal/direct_mmap.h b/absl/base/internal/direct_mmap.h +index 5618867..16accf0 100644 +--- a/absl/base/internal/direct_mmap.h ++++ b/absl/base/internal/direct_mmap.h +@@ -61,6 +61,10 @@ extern "C" void* __mmap2(void*, size_t, int, int, int, size_t); + #endif + #endif // __BIONIC__ + ++#if defined(__NR_mmap2) && !defined(SYS_mmap2) ++#define SYS_mmap2 __NR_mmap2 ++#endif ++ + namespace absl { + ABSL_NAMESPACE_BEGIN + namespace base_internal { +@@ -72,6 +76,7 @@ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd, + #if defined(__i386__) || defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) || \ + (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32) || \ + (defined(__PPC__) && !defined(__PPC64__)) || \ ++ (defined(__riscv) && __riscv_xlen == 32) || \ + (defined(__s390__) && !defined(__s390x__)) + // On these architectures, implement mmap with mmap2. + static int pagesize = 0; +diff --git a/absl/base/internal/spinlock_linux.inc b/absl/base/internal/spinlock_linux.inc +index 323edd6..e31c6ed 100644 +--- a/absl/base/internal/spinlock_linux.inc ++++ b/absl/base/internal/spinlock_linux.inc +@@ -46,6 +46,14 @@ static_assert(sizeof(std::atomic) == sizeof(int), + #endif + #endif + ++#if defined(__NR_futex_time64) && !defined(SYS_futex_time64) ++#define SYS_futex_time64 __NR_futex_time64 ++#endif ++ ++#if defined(SYS_futex_time64) && !defined(SYS_futex) ++#define SYS_futex SYS_futex_time64 ++#endif ++ + extern "C" { + + ABSL_ATTRIBUTE_WEAK void AbslInternalSpinLockDelay( +diff --git a/absl/synchronization/internal/waiter.cc b/absl/synchronization/internal/waiter.cc +index 2949f5a..b6150b9 100644 +--- a/absl/synchronization/internal/waiter.cc ++++ b/absl/synchronization/internal/waiter.cc +@@ -86,6 +86,14 @@ static void MaybeBecomeIdle() { + #endif + #endif + ++#if defined(__NR_futex_time64) && !defined(SYS_futex_time64) ++#define SYS_futex_time64 __NR_futex_time64 ++#endif ++ ++#if defined(SYS_futex_time64) && !defined(SYS_futex) ++#define SYS_futex SYS_futex_time64 ++#endif ++ + class Futex { + public: + static int WaitUntil(std::atomic *v, int32_t val, +-- +2.26.2 + -- 2.30.2