Created attachment 894083 [details] build.log and emerge --info I am almost positive this is due to sys-devel/gcc[-ieee-long-double] (does not reproduce on ppc64le 23.0 profiles) so marking it as that rather than as a big-endian problem. gcc.compile.c++ bin.v2/libs/charconv/build/gcc-13.2/gentoorelease/pch-off/threading-multi/visibility-hidden/from_chars.o "powerpc64-unknown-linux-gnu-g++" -fvisibility-inlines-hidden -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -O2 -pipe -std=c++17 -fPIC -m64 -pthread -finline-functions -Wno-inline -Wall -fvisibility=hidden -DBOOST_ALL_NO_LIB=1 -DBOOST_CHARCONV_DYN_LINK=1 -DBOOST_CHARCONV_SOURCE=1 -DBOOST_COBALT_USE_STD_PMR=1 -DNDEBUG -I"." -c -o "bin.v2/libs/charconv/build/gcc-13.2/gentoorelease/pch-off/threading-multi/visibility-hidden/from_chars.o" "libs/charconv/build/../src/from_chars.cpp" libs/charconv/build/../src/from_chars.cpp: In function ‘boost::charconv::from_chars_result boost::charconv::from_chars_erange(const char*, const char*, long double&, chars_format)’: libs/charconv/build/../src/from_chars.cpp:258:48: error: ‘compute_float80’ is not a member of ‘boost::charconv::detail’; did you mean ‘compute_float64’? 258 | auto return_val = boost::charconv::detail::compute_float80<long double>(exponent, significand, sign, success); | ^~~~~~~~~~~~~~~ | compute_float64 libs/charconv/build/../src/from_chars.cpp:258:64: error: expected primary-expression before ‘long’ 258 | auto return_val = boost::charconv::detail::compute_float80<long double>(exponent, significand, sign, success); | ^~~~
OK, removing this from the title, this selectively fails on ppc64le sometimes, but only with very high optimization flags. It always fails on ppc64 BE.
Created attachment 895025 [details] build.log and emerge --info Still an issue on 1.85.0-r1
Try https://github.com/boostorg/charconv/pull/183?
(In reply to Sam James from comment #3) > Try https://github.com/boostorg/charconv/pull/183? I tried applying this, but maybe I mangles the paths or something? Because it errors out now with: "powerpc64-unknown-linux-gnu-g++" -fvisibility-inlines-hidden -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -O2 -pipe -std=c++17 -fPIC -m64 -pthread -finline-functions -Wno-inline -Wall -fvisibility=hidden -DBOOST_ALL_NO_LIB=1 -DBOOST_CHARCONV_DYN_LINK=1 -DBO OST_CHARCONV_SOURCE=1 -DBOOST_COBALT_USE_STD_PMR=1 -DNDEBUG -I"." -c -o "bin.v2/libs/charconv/build/gcc-13.2/gentoorelease/pch-off/threading -multi/visibility-hidden/to_chars.o" "libs/charconv/build/../src/to_chars.cpp" libs/charconv/build/../src/to_chars.cpp:626:111: error: ‘boost::charconv::to_chars_result boost::charconv::to_chars(char*, char*, long double, chars_format, int)’ should have been declared inside ‘boost::charconv’ 626 | boost::charconv::chars_format fmt, int precision) noexcept | ^~~~~~~~
Created attachment 897746 [details, diff] Fix from_chars unsupported long double macros I had the same problem and managed to adapt the patches from https://github.com/boostorg/charconv/pull/183. The diff file paths had to be manually adapted but apart from that were only 2 small issues that needed correction. Anyway, it builds fine now on my Talos II. @matoro: Could you try too on your machine one ppc64/ppc64le?
Created attachment 897747 [details, diff] Fix to_chars macros for unsupported long double formats
Created attachment 897748 [details, diff] Disable tests with unsupported long double layouts
Created attachment 897749 [details, diff] Remove cruft codeblock
Created attachment 897750 [details, diff] Fix macro name
I tried to update boost-1.85.0-r1 on my ppc64 BE and fails too. Different message but same result. Do you want to put my files here?
(In reply to Alejandro Sánchez Marín from comment #10) > Different message but same result. Do you want to put my files here? You could apply the patches attached to the bug and see if you get it built afterwards. Just throw them into /etc/portage/patches/dev-libs/boost/ and rebuild.
Can you combine these into one patch? I dropped them in one-by-one in the order attached to this ticket and the 4th (last) one failed to apply.
(In reply to matoro from comment #12) > Can you combine these into one patch? I dropped them in one-by-one in the > order attached to this ticket and the 4th (last) one failed to apply. So far I used them on ppc64-glibc and ppc64-musl where they work fine. I guess then the one you mentioned failed to apply on ppc64le? What's the error message? Also there are 5 patches, the last one would be the 5th. Combining them would not make much sense as long as one of them does not apply. ;)
matoro, did you use the filenames ernst gave?
(In reply to Sam James from comment #14) > matoro, did you use the filenames ernst gave? Nope, just missed the first patch! Looks good after applying all 5.
Very good! I'll pull it in.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2fb52613e7ab15074d3ca398190114c886395666 commit 2fb52613e7ab15074d3ca398190114c886395666 Author: Sam James <sam@gentoo.org> AuthorDate: 2024-07-16 23:01:00 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2024-07-16 23:01:00 +0000 dev-libs/boost: fix build on ppc64 Thanks to ernsteiswuerfel for extracting/rebasing the patches from the PR and both ernsteiswuerfel and matoro for testing. Closes: https://bugs.gentoo.org/932579 Signed-off-by: Sam James <sam@gentoo.org> dev-libs/boost/boost-1.85.0-r1.ebuild | 5 + ...5.0-01-fix_unsupported_long_double_macros.patch | 111 ++++++ ....0-02-fix_unsupported_long_double_formats.patch | 29 ++ ...ests_with_unsupported_long_double_layouts.patch | 420 +++++++++++++++++++++ .../boost-1.85.0-04-remove_cruft_codeblock.patch | 52 +++ .../files/boost-1.85.0-05-fix_macro_name.patch | 356 +++++++++++++++++ 6 files changed, 973 insertions(+)
Patches solve my problem on ppc64 BE XD Thank you very much to everybody helps to fix it.