Backport patch to fix RISC-V functions missing

This commit is contained in:
U2FsdGVkX1 2024-06-06 19:04:31 +08:00
commit 531b5cfda3
2 changed files with 44 additions and 1 deletions

View file

@ -0,0 +1,37 @@
From 819c2d6423b4e0f55c5f69e334bf81570e82f68f Mon Sep 17 00:00:00 2001
From: "Ivan A. Melnikov" <iv@altlinux.org>
Date: Thu, 17 Aug 2023 14:15:03 +0400
Subject: [PATCH] Fix ABI detection for empty 'os.platform'
`in` operator in bjam always returns true if its first
argument has no elements[1]. This means that if `os.platform`
is empty (not detected), the construction introduced
in commit d039c8e4da79dbc76481236249e22892bfdde047 sets
ABI to `aapcs` on all platforms where `os.platform` is
empty, including, e.g. riscv64, and breaks build there.
This commit refactors the condition to use '=' operator,
to make sure that when `os.platform` is empty we get
the default ABI value, and thus fixes build on riscv64.
[1] https://www.boost.org/doc/libs/1_83_0/tools/build/doc/html/index.html#jam.language.flow_of_control
Fixes: d039c8e4da79dbc76481236249e22892bfdde047
---
build/Jamfile.v2 | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/build/Jamfile.v2 b/build/Jamfile.v2
index faaf892c..c07847ab 100644
--- a/libs/context/build/Jamfile.v2
+++ b/libs/context/build/Jamfile.v2
@@ -79,7 +79,8 @@ local rule default_abi ( )
local tmp = sysv ;
if [ os.name ] = "NT" { tmp = ms ; }
else if [ os.name ] = "CYGWIN" { tmp = ms ; }
- else if [ os.platform ] in ARM ARM64 { tmp = aapcs ; }
+ else if [ os.platform ] = "ARM" { tmp = aapcs ; }
+ else if [ os.platform ] = "ARM64" { tmp = aapcs ; }
else if [ os.platform ] = "MIPS32" { tmp = o32 ; }
else if [ os.platform ] = "MIPS64" { tmp = n64 ; }
return $(tmp) ;

View file

@ -46,7 +46,7 @@ Name: boost
%global real_name boost
Summary: The free peer-reviewed portable C++ source libraries
Version: 1.83.0
Release: 5%{?dist}
Release: 6%{?dist}
License: BSL-1.0 AND MIT AND Python-2.0.1
# Replace each . with _ in %%{version}
@ -169,6 +169,9 @@ Patch9: boost-1.83-multiprecision-convert-noexcept.patch
# https://github.com/boostorg/math/issues/1132
Patch10: boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch
# https://github.com/boostorg/context/pull/234
Patch11: boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch
%bcond_with tests
%bcond_with docs_generated
@ -1298,6 +1301,9 @@ fi
%{_mandir}/man1/b2.1*
%changelog
* Sun Jun 02 2024 Songsong Zhang <U2FsdGVkX1@gmail.com> - 1.83.0-6
- Backport patch to fix RISC-V functions missing
* Sat May 25 2024 Kefu Chai <tchaikov@fedoraproject.org> - 1.83.0-5
- Add patch to fix Boost.Math bug where float_next(+INF) and float_prior(-INF)
returns NaN, but they should return +INF and -INF respectively.