[libc-commits] [libc] [libc][math] Add LIBC_CONF_MATH_USE_SYSTEM_FENV / LIBC_MATH_USE_SYSTEM_FENV (PR #172902)
via libc-commits
libc-commits at lists.llvm.org
Mon Dec 22 08:22:04 PST 2025
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
The build failed before running any tests. Click on a failure below to see the details.
<details>
<summary>libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__build__.dir/shared_math_test.cpp.o</summary>
```
FAILED: libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__build__.dir/shared_math_test.cpp.o
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_22_0_0_git -I/home/gha/actions-runner/_work/llvm-project/llvm-project/libc -isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=gnu++17 -UNDEBUG -mavx2 -mfma -msse4.2 -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffixed-point -Wall -Wextra -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -MD -MT libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__build__.dir/shared_math_test.cpp.o -MF libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__build__.dir/shared_math_test.cpp.o.d -o libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__build__.dir/shared_math_test.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_test.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_test.cpp:9:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:14:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/acos.h:13:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/acos.h:12:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/asin_utils.h:14:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/dyadic_float.h:12:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:52:10: error: no matching function for call to 'fesetexceptflag'
52 | return fesetexceptflag(&excepts, FE_ALL_EXCEPT);
| ^~~~~~~~~~~~~~~
/usr/include/fenv.h:88:12: note: candidate function not viable: no known conversion from 'int *' to 'const fexcept_t *' (aka 'const unsigned short *') for 1st argument
88 | extern int fesetexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_test.cpp:9:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:14:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/acos.h:13:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/acos.h:18:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/sqrt.h:15:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/generic/sqrt.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/cast.h:55:18: error: shift count is negative [-Werror,-Wshift-count-negative]
55 | x_mant >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/rsqrtf16.h:67:53: note: in instantiation of function template specialization '__llvm_libc_22_0_0_git::fputil::cast<float, _Float16>' requested here
67 | float result = 1.0f / fputil::sqrt<float>(fputil::cast<float>(x));
| ^
2 errors generated.
```
</details>
<details>
<summary>libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_FMA_OPT.__build__.dir/shared_math_test.cpp.o</summary>
```
FAILED: libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_FMA_OPT.__build__.dir/shared_math_test.cpp.o
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_22_0_0_git -I/home/gha/actions-runner/_work/llvm-project/llvm-project/libc -isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=gnu++17 -UNDEBUG -msse4.2 -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffixed-point -Wall -Wextra -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -MD -MT libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_FMA_OPT.__build__.dir/shared_math_test.cpp.o -MF libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_FMA_OPT.__build__.dir/shared_math_test.cpp.o.d -o libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_FMA_OPT.__build__.dir/shared_math_test.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_test.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_test.cpp:9:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:14:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/acos.h:13:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/acos.h:12:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/asin_utils.h:14:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/dyadic_float.h:12:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:52:10: error: no matching function for call to 'fesetexceptflag'
52 | return fesetexceptflag(&excepts, FE_ALL_EXCEPT);
| ^~~~~~~~~~~~~~~
/usr/include/fenv.h:88:12: note: candidate function not viable: no known conversion from 'int *' to 'const fexcept_t *' (aka 'const unsigned short *') for 1st argument
88 | extern int fesetexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_test.cpp:9:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:14:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/acos.h:13:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/acos.h:18:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/sqrt.h:15:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/generic/sqrt.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/cast.h:55:18: error: shift count is negative [-Werror,-Wshift-count-negative]
55 | x_mant >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/rsqrtf16.h:67:53: note: in instantiation of function template specialization '__llvm_libc_22_0_0_git::fputil::cast<float, _Float16>' requested here
67 | float result = 1.0f / fputil::sqrt<float>(fputil::cast<float>(x));
| ^
2 errors generated.
```
</details>
<details>
<summary>libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_ROUND_OPT.__build__.dir/shared_math_test.cpp.o</summary>
```
FAILED: libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_ROUND_OPT.__build__.dir/shared_math_test.cpp.o
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_22_0_0_git -I/home/gha/actions-runner/_work/llvm-project/llvm-project/libc -isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=gnu++17 -UNDEBUG -mavx2 -mfma -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffixed-point -Wall -Wextra -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -MD -MT libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_ROUND_OPT.__build__.dir/shared_math_test.cpp.o -MF libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_ROUND_OPT.__build__.dir/shared_math_test.cpp.o.d -o libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_ROUND_OPT.__build__.dir/shared_math_test.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_test.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_test.cpp:9:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:14:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/acos.h:13:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/acos.h:12:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/asin_utils.h:14:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/dyadic_float.h:12:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:52:10: error: no matching function for call to 'fesetexceptflag'
52 | return fesetexceptflag(&excepts, FE_ALL_EXCEPT);
| ^~~~~~~~~~~~~~~
/usr/include/fenv.h:88:12: note: candidate function not viable: no known conversion from 'int *' to 'const fexcept_t *' (aka 'const unsigned short *') for 1st argument
88 | extern int fesetexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_test.cpp:9:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:14:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/acos.h:13:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/acos.h:18:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/sqrt.h:15:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/generic/sqrt.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/cast.h:55:18: error: shift count is negative [-Werror,-Wshift-count-negative]
55 | x_mant >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/rsqrtf16.h:67:53: note: in instantiation of function template specialization '__llvm_libc_22_0_0_git::fputil::cast<float, _Float16>' requested here
67 | float result = 1.0f / fputil::sqrt<float>(fputil::cast<float>(x));
| ^
2 errors generated.
```
</details>
<details>
<summary>libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_FMA_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_test.cpp.o</summary>
```
FAILED: libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_FMA_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_test.cpp.o
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_22_0_0_git -I/home/gha/actions-runner/_work/llvm-project/llvm-project/libc -isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=gnu++17 -UNDEBUG -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffixed-point -Wall -Wextra -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -MD -MT libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_FMA_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_test.cpp.o -MF libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_FMA_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_test.cpp.o.d -o libc/test/shared/CMakeFiles/libc.test.shared.shared_math_test.__unit__.__NO_FMA_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_test.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_test.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_test.cpp:9:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:14:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/acos.h:13:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/acos.h:12:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/asin_utils.h:14:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/dyadic_float.h:12:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:52:10: error: no matching function for call to 'fesetexceptflag'
52 | return fesetexceptflag(&excepts, FE_ALL_EXCEPT);
| ^~~~~~~~~~~~~~~
/usr/include/fenv.h:88:12: note: candidate function not viable: no known conversion from 'int *' to 'const fexcept_t *' (aka 'const unsigned short *') for 1st argument
88 | extern int fesetexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_test.cpp:9:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:14:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/acos.h:13:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/acos.h:18:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/sqrt.h:15:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/generic/sqrt.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/cast.h:55:18: error: shift count is negative [-Werror,-Wshift-count-negative]
55 | x_mant >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/rsqrtf16.h:67:53: note: in instantiation of function template specialization '__llvm_libc_22_0_0_git::fputil::cast<float, _Float16>' requested here
67 | float result = 1.0f / fputil::sqrt<float>(fputil::cast<float>(x));
| ^
2 errors generated.
```
</details>
If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.
https://github.com/llvm/llvm-project/pull/172902
More information about the libc-commits
mailing list