Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 932579 - dev-libs/boost-1.85.0-r1 fails to compile on ppc64
Summary: dev-libs/boost-1.85.0-r1 fails to compile on ppc64
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: PPC64 Linux
: Normal normal (vote)
Assignee: David Seifert
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: boost-1.85
  Show dependency tree
 
Reported: 2024-05-23 20:40 UTC by matoro
Modified: 2024-07-12 22:55 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log and emerge --info (file_932579.txt,774.54 KB, text/plain)
2024-05-23 20:40 UTC, matoro
Details
build.log and emerge --info (file_932579.txt,782.81 KB, text/plain)
2024-06-03 23:08 UTC, matoro
Details

Note You need to log in before you can comment on or make changes to this bug.
Description matoro archtester 2024-05-23 20:40:25 UTC
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);
      |                                                                ^~~~
Comment 1 matoro archtester 2024-05-25 19:24:53 UTC
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.
Comment 2 matoro archtester 2024-06-03 23:08:52 UTC
Created attachment 895025 [details]
build.log and emerge --info

Still an issue on 1.85.0-r1
Comment 3 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-07-12 21:03:22 UTC
Try https://github.com/boostorg/charconv/pull/183?
Comment 4 matoro archtester 2024-07-12 22:55:52 UTC
(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
      |                                                                                                               ^~~~~~~~