------- Comment From avina...@ibm.com 2025-07-16 00:47 EDT-------
There seems to be two issues in this bug
1. The build silently fails when charconv library build fails (the logs say 
that the targets have been skipped, but the exit status from the build process 
is 1 meaning not successful, and therefore the over build fails). If we run the 
build with b2 again, we can see the error particularly in the charconv library
2. Redefinition of functions in charconv library. When ieeelongdouble is 
enabled, the types for long double  and __float128 is essentially the same 
during compilation and we see the following error
/home/avinashj/src/boost_1.88_src/libs/charconv/build/../src/to_chars_float_impl.hpp:849:17:
 error: redefinition of ?boost::charconv::to_chars_result 
boost::charconv::detail::to_chars_float_impl(char*, char*, Real, 
boost::charconv::chars_format, int) [with Real = long double]?
849 | to_chars_result to_chars_float_impl(char* first, char* last, __float128 
value, chars_format fmt, int precision) noexcept
|                 ^~~~~~~~~~~~~~~~~~~
/home/avinashj/src/boost_1.88_src/libs/charconv/build/../src/to_chars_float_impl.hpp:776:17:
 note: ?boost::charconv::to_chars_result 
boost::charconv::detail::to_chars_float_impl(char*, char*, Real, 
boost::charconv::chars_format, int) [with Real = long double]? previously 
declared here
776 | to_chars_result to_chars_float_impl(char* first, char* last, long double 
value, chars_format fmt, int precision) noexcept
|                 ^~~~~~~~~~~~~~~~~~~
specifically the macros BOOST_CHARCONV_HAS_QUADMATH and 
BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE are defined and undefined respectively, 
and therefore both definitions move on for compilation after pre-processing 
which causes this specific error.
Small note: In some architectures like IA-64 __float128 is an alias for long 
double (more details here: 
https://gcc.gnu.org/onlinedocs/gcc/Floating-Types.html.), so this error would 
happen there as well.
For example, in x86 platform if -mlong-double-128 compiler option is used 
(however here error happens at assembly stage rather than at compile stage).

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2110099

Title:
  ftbfs with IEEE long double

To manage notifications about this bug go to:
https://bugs.launchpad.net/boost/+bug/2110099/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to