Re: git: 3a01e1e1a50c - main - msun/aarch64: convert fenv functions to proper linkage

From: Konstantin Belousov <kib_at_freebsd.org>
Date: Mon, 06 Apr 2026 16:07:38 UTC
On Mon, Apr 06, 2026 at 06:56:36PM +0300, Dima Panov wrote:
> Hello!
> 
> This breaks most of libm consumers
> 
> llvm/flang:
> ===============
> FAILED: [code=1] bin/flang-20
> : && /usr/local/libexec/ccache/c++ -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -fPIC -fno-semantic-interposition -fvisibility-inline
> s-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-s
> emi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupport
> ed -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-string-conversion -Wno-ctad-maybe-unsupported -Wno-unused-command-line-argument -Wstring-conversion -Wcover
> ed-switch-default -Wno-nested-anon-types -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -DNDEBUG -Wl,--color-diagnostics -Wl,--expor
> t-dynamic -Wl,-z,origin -Wl,--gc-sections -Xlinker --dependency-file=tools/flang/tools/flang-driver/CMakeFiles/flang.dir/link.d tools/flang/tools/flang-driver/CMakeFiles/flang.dir/driver.cpp.o tools/
> flang/tools/flang-driver/CMakeFiles/flang.dir/fc1_main.cpp.o -o bin/flang-20 -L/wrkdirs/usr/ports/devel/llvm20/work-default/.build/./lib -Wl,-rpath,"\$ORIGIN/../lib:/wrkdirs/usr/ports/devel/llvm20/work-
> default/.build/./lib:/wrkdirs/usr/ports/devel/llvm20/work-default/.build/lib:" -lpthread lib/libflangFrontend.a lib/libflangFrontendTool.a lib/libFortranLower.a lib/libFortranSemantics.a lib/libFo
> rtranSupport.a lib/libflangPasses.a lib/libHLFIRTransforms.a lib/libFIRTransforms.a lib/libFIROpenACCSupport.a lib/libFlangOpenMPTransforms.a lib/libFIRCodeGen.a lib/libFIRAnalysis.a lib/libFIRB
> uilder.a lib/libCUFDialect.a lib/libFortranEvaluate.a lib/libFortranParser.a lib/libFortranCommon.a lib/libFortranDecimal.a lib/libFIRSupport.a lib/libHLFIRDialect.a lib/libFIRDialect.a lib/lib
> FIRDialectSupport.a lib/libCUFAttrs.a lib/libclang-cpp.so.20.1 lib/libMLIR.so.20.1 lib/libLLVM.so.20.1 && :
> ld: error: undefined symbol: feholdexcept

This is strange.  Could you show me the output of e.g.
	readelf --dyn_syms /lib/libm.so.5 | grep feholdexcept
The best would be the output from the command like above for each missing
symbol.

> > > > referenced by host.cpp
> > > > host.cpp.o:(Fortran::evaluate::host::HostFloatingPointEnvironment::SetUpHostFloatingPointEnvironment(Fortran::evaluate::FoldingContext&)) in archive lib/libFortranEvaluate.a
> 
> ld: error: undefined symbol: fegetenv
> > > > referenced by host.cpp
> > > > host.cpp.o:(Fortran::evaluate::host::HostFloatingPointEnvironment::SetUpHostFloatingPointEnvironment(Fortran::evaluate::FoldingContext&)) in archive lib/libFortranEvaluate.a
> > > > did you mean: fesetenv
> > > > defined in: /usr/lib/libm.so
> c++: error: linker command failed with exit code 1 (use -v to see invocation)
> ===============
> 
> All of math/py-numpy1 consumers (math/Imath for example):
> ===============
> -- Configuring imathnumpy module
> Traceback (most recent call last):
> File "/usr/local/lib/python3.11/site-packages/numpy/core/__init__.py", line 24, in <module>
> from . import multiarray
> File "/usr/local/lib/python3.11/site-packages/numpy/core/multiarray.py", line 10, in <module>
> from . import overrides
> File "/usr/local/lib/python3.11/site-packages/numpy/core/overrides.py", line 8, in <module>
> from numpy.core._multiarray_umath import (
> ImportError: /usr/local/lib/python3.11/site-packages/numpy/core/_multiarray_umath.cpython-311.so: Undefined symbol "feraiseexcept"
> 
> During handling of the above exception, another exception occurred:
> 
> Traceback (most recent call last):
> File "/usr/local/lib/python3.11/site-packages/numpy/__init__.py", line 130, in <module>
> from numpy.__config__ import show as show_config
> File "/usr/local/lib/python3.11/site-packages/numpy/__config__.py", line 4, in <module>
> from numpy.core._multiarray_umath import (
> File "/usr/local/lib/python3.11/site-packages/numpy/core/__init__.py", line 50, in <module>
> raise ImportError(msg)
> ImportError:
> ===============