boost: Fix build on 32bit arches with 64bit time_t defaults

Message ID 20220221062028.122453-1-raj.khem@gmail.com
State Accepted, archived
Commit 2702bac9e5c13f8a30153a1c45b278eebc9f11e5
Headers show
Series boost: Fix build on 32bit arches with 64bit time_t defaults | expand

Commit Message

Khem Raj Feb. 21, 2022, 6:20 a.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...on-32-bit-architectures-using-64-bit.patch | 36 +++++++++++++++++++
 meta/recipes-support/boost/boost_1.78.0.bb    |  1 +
 2 files changed, 37 insertions(+)
 create mode 100644 meta/recipes-support/boost/boost/0001-futex-fix-build-on-32-bit-architectures-using-64-bit.patch

Patch

diff --git a/meta/recipes-support/boost/boost/0001-futex-fix-build-on-32-bit-architectures-using-64-bit.patch b/meta/recipes-support/boost/boost/0001-futex-fix-build-on-32-bit-architectures-using-64-bit.patch
new file mode 100644
index 00000000000..20dc3ca54e3
--- /dev/null
+++ b/meta/recipes-support/boost/boost/0001-futex-fix-build-on-32-bit-architectures-using-64-bit.patch
@@ -0,0 +1,36 @@ 
+From b15d8d0754bb545ba10d0cfba8bbfdfb22a62c38 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 20 Feb 2022 22:03:14 -0800
+Subject: [PATCH] futex: fix build on 32-bit architectures using 64-bit time_t
+
+Fix the following build failure on 32-bit architectures using 64-bit
+time_t (e.g. riscv32):
+| ./boost/fiber/detail/futex.hpp:31:23: error: use of undeclared identifier 'SYS_futex'
+|     return ::syscall( SYS_futex, addr, op, x, nullptr, nullptr, 0);
+|                       ^
+| 1 error generated.
+
+Upstream-Status: Submitted [https://github.com/boostorg/fiber/pull/292]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ boost/fiber/detail/futex.hpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/boost/fiber/detail/futex.hpp b/boost/fiber/detail/futex.hpp
+index e64bd5990..d0353e9e5 100644
+--- a/boost/fiber/detail/futex.hpp
++++ b/boost/fiber/detail/futex.hpp
+@@ -12,6 +12,10 @@
+ 
+ #include <boost/fiber/detail/config.hpp>
+ 
++#ifndef SYS_futex
++#define SYS_futex SYS_futex_time64
++#endif
++
+ #if BOOST_OS_LINUX
+ extern "C" {
+ #include <linux/futex.h>
+-- 
+2.35.1
+
diff --git a/meta/recipes-support/boost/boost_1.78.0.bb b/meta/recipes-support/boost/boost_1.78.0.bb
index f4b6ed85762..58be9dcf122 100644
--- a/meta/recipes-support/boost/boost_1.78.0.bb
+++ b/meta/recipes-support/boost/boost_1.78.0.bb
@@ -6,4 +6,5 @@  SRC_URI += "file://boost-CVE-2012-2677.patch \
            file://0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch \
            file://0001-dont-setup-compiler-flags-m32-m64.patch \
            file://de657e01635306085488290ea83de541ec393f8b.patch \
+           file://0001-futex-fix-build-on-32-bit-architectures-using-64-bit.patch \
            "