Opened 5 years ago
Closed 4 years ago
#13531 closed Bugs (fixed)
Facing build failure on PowerPC due to boost/spirit/home/x3/support/numeric_utils/sign.hpp
Reported by: | Owned by: | Joel de Guzman | |
---|---|---|---|
Milestone: | To Be Determined | Component: | spirit |
Version: | Boost 1.63.0 | Severity: | Problem |
Keywords: | numeric_utils/sign.hpp | Cc: | nok.raven@… |
Description
Below is the error message from boost/spirit/home/x3/support/numeric_utils/sign.hpp
This can be resolved by making the below change in sign.hpp, #if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && !defined(BOOST_MATH_DISABLE_STD_FPCLASSIFY)
return -x;
#else
return (boost::math::changesign)(x);
#endif
Kindly help in making this change for future releases.
Error Message below,
../../../../../include/boost/spirit/home/x3/support/numeric_utils/sign.hpp: In instantiation of 'T snps_boost_1_63_0::spirit::x3::changesign(T) [with T = long double]': ../../../../../include/boost/spirit/home/x3/support/numeric_utils/extract_real.hpp:93:38: required from here ../../../../../include/boost/spirit/home/x3/support/numeric_utils/sign.hpp:36:32: error: no type named 'bits' in 'traits_type {aka struct snps_boost_1_63_0::math::detail::fp_traits_non_native<long double, snps_boost_1_63_0::math::detail::extended_double_precision>}'
typename traits_type::bits a;
../../../../../include/boost/spirit/home/x3/support/numeric_utils/sign.hpp:37:26: error: 'get_bits' is not a member of 'traits_type {aka snps_boost_1_63_0::math::detail::fp_traits_non_native<long double, snps_boost_1_63_0::math::detail::extended_double_precision>}'
traits_type::get_bits(x, a);
~~
../../../../../include/boost/spirit/home/x3/support/numeric_utils/sign.hpp:36:32: error: no type named 'bits' in 'traits_type {aka struct snps_boost_1_63_0::math::detail::fp_traits_non_native<long double, snps_boost_1_63_0::math::detail::extended_double_precision>}'
typename traits_type::bits a;
../../../../../include/boost/spirit/home/x3/support/numeric_utils/sign.hpp:38:7: error: 'sign' is not a member of 'traits_type {aka snps_boost_1_63_0::math::detail::fp_traits_non_native<long double, snps_boost_1_63_0::math::detail::extended_double_precision>}'
a = traits_type::sign;
~
../../../../../include/boost/spirit/home/x3/support/numeric_utils/sign.hpp:39:26: error: 'set_bits' is not a member of 'traits_type {aka snps_boost_1_63_0::math::detail::fp_traits_non_native<long double, snps_boost_1_63_0::math::detail::extended_double_precision>}'
traits_type::set_bits(x, a);
~~
* exit status 1 *
Attachments (1)
Change History (5)
by , 5 years ago
Attachment: | sign.hpp.txt added |
---|
comment:1 by , 5 years ago
comment:2 by , 4 years ago
Just an information, this issue exists in Boost 1.67.0 as well which got released this month.
comment:3 by , 4 years ago
Cc: | added |
---|
Fixed in https://github.com/boostorg/spirit/pull/392
Thanks for bringing up this 3 years old issue. I am sorry about the delay, the fix will be in Boost 1.69 (it is too late for 1.68).
comment:4 by , 4 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
I have referred the below link to fix it,
https://gitlab.labs.nic.cz/turris/openwrt-packages/commit/b283b55cfbbda925a8561cbe41ecaa7d34282fff