From nobody Mon Apr 6 15:56:36 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fqDTf5W0Pz6YFxV; Mon, 06 Apr 2026 15:56:38 +0000 (UTC) (envelope-from fluffy@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fqDTf534qz3xv3; Mon, 06 Apr 2026 15:56:38 +0000 (UTC) (envelope-from fluffy@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1775490998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=2jHa5ayFeGa5ibSc3Mc7MxtmHI7oAHbLGmjMuDG0eXc=; b=Kal5+iYnu1ObZ46+aLFfR9GpRPUdYMsOB4J39ZxaIEDZuz+yqpkBX8/NgzZ5sjvrqZ2poE PLHtVR1Wn5nlSUK8gaPYijTBiki4sxw2xDabW9xktjl+ZfO0xjy2ttgxKsvIjLBD9it3Vh t99+q2zOKdUgUQf3x0hXG5mxf18CWRlppXp3LLjCy2E4ClDawlGTO7lYSrT7ageub1BfQW oVij8r03YwAzwwSv8EAv1bLgqb9behM9gHhMNiaMlEX3sHBRh8ZM0BpFKu+3JmVkksygD7 +SlBPjiRPHoqAIXltlKezfiyEJQF36yqbJkqBg1deFARSi1kgZwSuFANgZDF+Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1775490998; a=rsa-sha256; cv=none; b=BSh9cUFJwrK14z/8Nn/ghzdztEsjmn8XNfVaUPkbbmA3V1Fgqp1yh8NW6xhwUNGSpkgOz6 qAmTA5L21eHFV/upZJpaE87jlDei8mJrCJZbg1S3vmY3+OmQJYKD40S92EV0EtLuwg0MCI Evhm2xarq9u73lTHTwFxZoOAQathOXOm/YXQYUm9qZ4F1OtZvFmutJdDsFT3LTECGriNmh 0Atx6oRq4mQ+3RKg1OwXryxJ65XtmldjaHu6n9xIu6FgnpkNqOmFHOLVm3e+9HsFqxPZxw 6IAvOw6sN1+UKX0ym9+pPULhDlorWc/osafUSwI9daLXQdI0vAPU6PZyjIF18A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1775490998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=2jHa5ayFeGa5ibSc3Mc7MxtmHI7oAHbLGmjMuDG0eXc=; b=M2N1D6GSylwsF1P5Ixw4Ukq9jorEHHURuhNlurEl+YFfSGCvrT600WSuaik1fB48vG4HGt qzRbWhPiXDfEN74s9PSajY06+S2cv4X+iPQwuS7nRLHv1O2F3SrBn2f8hzi4Z64GGVvQK+ Z6Wei+qfwFBpqdSi8rvWxEanlJnTA2azLonfazVb7zomKVBmSv4/Pl2Zfe7WZI+3YkkvwA jzRrUjIVNMNbgN4FcD3ETyvVGyMBos5UAsNznWv4EYQqJsSFJfLyhWS9hlopspunOOMZI4 OY4r8bIv8K7GPz+X6D9G0ch21xRB+0k57mvB5hg6l70zdm2cvB98bQ2F0eYrMA== Received: from [2a05:3580:e727:cd00::10:0] (unknown [IPv6:2a05:3580:e727:cd00:6028:73dc:5e69:9ca0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: fluffy) by smtp.freebsd.org (Postfix) with ESMTPSA id 4fqDTd6MQhz19NT; Mon, 06 Apr 2026 15:56:37 +0000 (UTC) (envelope-from fluffy@FreeBSD.org) Date: Mon, 6 Apr 2026 18:56:36 +0300 From: Dima Panov To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org, Konstantin Belousov Message-ID: <1f2ad4f0-a4ab-4f15-a779-5f1a6db9912b@FreeBSD.org> In-Reply-To: <69caafbb.408c4.7b20a1e1@gitrepo.freebsd.org> References: <69caafbb.408c4.7b20a1e1@gitrepo.freebsd.org> Subject: git: 3a01e1e1a50c - main - msun/aarch64: convert fenv functions to proper linkage List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="69d3d7b4_6b8b4567_d4c2" --69d3d7b4_6b8b4567_d4c2 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline 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 > > > 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 from . import multiarray File "/usr/local/lib/python3.11/site-packages/numpy/core/multiarray.py", line 10, in from . import overrides File "/usr/local/lib/python3.11/site-packages/numpy/core/overrides.py", line 8, in 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 from numpy.__config__ import show as show_config File "/usr/local/lib/python3.11/site-packages/numpy/__config__.py", line 4, in from numpy.core._multiarray_umath import ( File "/usr/local/lib/python3.11/site-packages/numpy/core/__init__.py", line 50, in raise ImportError(msg) ImportError: =============== On 30.03.2026 20:15, Konstantin Belousov wrote: > The branch main has been updated by kib: > > URL: https://cgit.FreeBSD.org/src/commit/?id=3a01e1e1a50cb9a9594aac2148dc920a6b295428 > > commit 3a01e1e1a50cb9a9594aac2148dc920a6b295428 > Author: Konstantin Belousov > AuthorDate: 2026-03-28 23:13:44 +0000 > Commit: Konstantin Belousov > CommitDate: 2026-03-30 16:57:00 +0000 > > msun/aarch64: convert fenv functions to proper linkage > > namely > fegetexceptflag(3) > fesetexceptflag(3) > feraiseexcept(3) > fetestexcept(3) > fegetround(3) > fesetround(3) > fegetenv(3) > feholdexcept(3) > fesetenv(3) > feupdateenv(3) > feenableexcept(3) > fedisableexcept(3) > fegetexcept(3) > > PR: 277958 > Reviewed by: dim > Sponsored by: The FreeBSD Foundation > MFC after: 1 week > Differential revision: https://reviews.freebsd.org/D56139 > --- > lib/msun/aarch64/fenv.c | 72 ++++++++++++++++++++++++++++++++++++++++--------- > lib/msun/aarch64/fenv.h | 41 +++++++++++++++++++++------- > 2 files changed, 90 insertions(+), 23 deletions(-) > > diff --git a/lib/msun/aarch64/fenv.c b/lib/msun/aarch64/fenv.c > index 4c54656be7d3..5d626f66516f 100644 > --- a/lib/msun/aarch64/fenv.c > +++ b/lib/msun/aarch64/fenv.c > @@ -44,16 +44,62 @@ int > return (__feclearexcept_int(excepts)); > } > > -extern inline int fegetexceptflag(fexcept_t *__flagp, int __excepts); > -extern inline int fesetexceptflag(const fexcept_t *__flagp, int __excepts); > -extern inline int feraiseexcept(int __excepts); > -extern inline int fetestexcept(int __excepts); > -extern inline int fegetround(void); > -extern inline int fesetround(int __round); > -extern inline int fegetenv(fenv_t *__envp); > -extern inline int feholdexcept(fenv_t *__envp); > -extern inline int fesetenv(const fenv_t *__envp); > -extern inline int feupdateenv(const fenv_t *__envp); > -extern inline int feenableexcept(int __mask); > -extern inline int fedisableexcept(int __mask); > -extern inline int fegetexcept(void); > +int > +(fegetexceptflag)(fexcept_t *flagp, int excepts) > +{ > + return (__fegetexceptflag_int(flagp, excepts)); > +} > + > +int > +(fesetexceptflag)(const fexcept_t *flagp, int excepts) > +{ > + return (__fesetexceptflag_int(flagp, excepts)); > +} > + > +int > +(feraiseexcept)(int excepts) > +{ > + return (__feraiseexcept_int(excepts)); > +} > + > +int > +(fetestexcept)(int excepts) > +{ > + return (__fetestexcept_int(excepts)); > +} > + > +int > +(fegetround)(void) > +{ > + return (__fegetround_int()); > +} > + > +int > +(fesetround)(int round) > +{ > + return (__fesetround_int(round)); > +} > + > +int > +(fegetenv)(fenv_t *envp) > +{ > + return (__fegetenv_int(envp)); > +} > + > +int > +(feholdexcept)(fenv_t *envp) > +{ > + return (__feholdexcept_int(envp)); > +} > + > +int > +(fesetenv)(const fenv_t *envp) > +{ > + return (__fesetenv_int(envp)); > +} > + > +int > +(feupdateenv)(const fenv_t *envp) > +{ > + return (__feupdateenv_int(envp)); > +} > diff --git a/lib/msun/aarch64/fenv.h b/lib/msun/aarch64/fenv.h > index d125978b887b..32a03ee1eb49 100644 > --- a/lib/msun/aarch64/fenv.h > +++ b/lib/msun/aarch64/fenv.h > @@ -82,7 +82,28 @@ extern const fenv_t __fe_dfl_env; > #define __msr_fpsr(__r) __asm __volatile("msr fpsr, %0" : : "r" (__r)) > > int feclearexcept(int); > +int fegetexceptflag(fexcept_t *, int); > +int fesetexceptflag(const fexcept_t *, int); > +int feraiseexcept(int); > +int fetestexcept(int); > +int fegetround(void); > +int fesetround(int); > +int fegetenv(fenv_t *); > +int feholdexcept(fenv_t *); > +int fesetenv(const fenv_t *); > +int feupdateenv(const fenv_t *); > + > #define feclearexcept(a) __feclearexcept_int(a) > +#define fegetexceptflag(e, a) __fegetexceptflag_int(e, a) > +#define fesetexceptflag(e, a) __fesetexceptflag_int(e, a) > +#define feraiseexcept(a) __feraiseexcept_int(a) > +#define fetestexcept(a) __fetestexcept_int(a) > +#define fegetround() __fegetround_int() > +#define fesetround(a) __fesetround_int(a) > +#define fegetenv(e) __fegetenv_int(e) > +#define feholdexcept(e) __feholdexcept_int(e) > +#define fesetenv(e) __fesetenv_int(e) > +#define feupdateenv(e) __feupdateenv_int(e) > > __fenv_static inline int > __feclearexcept_int(int __excepts) > @@ -96,7 +117,7 @@ __feclearexcept_int(int __excepts) > } > > __fenv_static inline int > -fegetexceptflag(fexcept_t *__flagp, int __excepts) > +__fegetexceptflag_int(fexcept_t *__flagp, int __excepts) > { > fexcept_t __r; > > @@ -106,7 +127,7 @@ fegetexceptflag(fexcept_t *__flagp, int __excepts) > } > > __fenv_static inline int > -fesetexceptflag(const fexcept_t *__flagp, int __excepts) > +__fesetexceptflag_int(const fexcept_t *__flagp, int __excepts) > { > fexcept_t __r; > > @@ -118,7 +139,7 @@ fesetexceptflag(const fexcept_t *__flagp, int __excepts) > } > > __fenv_static inline int > -feraiseexcept(int __excepts) > +__feraiseexcept_int(int __excepts) > { > fexcept_t __r; > > @@ -129,7 +150,7 @@ feraiseexcept(int __excepts) > } > > __fenv_static inline int > -fetestexcept(int __excepts) > +__fetestexcept_int(int __excepts) > { > fexcept_t __r; > > @@ -138,7 +159,7 @@ fetestexcept(int __excepts) > } > > __fenv_static inline int > -fegetround(void) > +__fegetround_int(void) > { > fenv_t __r; > > @@ -147,7 +168,7 @@ fegetround(void) > } > > __fenv_static inline int > -fesetround(int __round) > +__fesetround_int(int __round) > { > fenv_t __r; > > @@ -161,7 +182,7 @@ fesetround(int __round) > } > > __fenv_static inline int > -fegetenv(fenv_t *__envp) > +__fegetenv_int(fenv_t *__envp) > { > __uint64_t fpcr; > __uint64_t fpsr; > @@ -174,7 +195,7 @@ fegetenv(fenv_t *__envp) > } > > __fenv_static inline int > -feholdexcept(fenv_t *__envp) > +__feholdexcept_int(fenv_t *__envp) > { > fenv_t __r; > > @@ -191,7 +212,7 @@ feholdexcept(fenv_t *__envp) > } > > __fenv_static inline int > -fesetenv(const fenv_t *__envp) > +__fesetenv_int(const fenv_t *__envp) > { > > __msr_fpcr((*__envp) >> 32); > @@ -200,7 +221,7 @@ fesetenv(const fenv_t *__envp) > } > > __fenv_static inline int > -feupdateenv(const fenv_t *__envp) > +__feupdateenv_int(const fenv_t *__envp) > { > fexcept_t __r; > > -- Sincerely, Dima (fluffy@FreeBSD.org, https://t.me/FluffyBSD, @fluffy:matrix-dev.freebsd.org) (desktop, kde, x11, office, ports-secteam)@FreeBSD team --69d3d7b4_6b8b4567_d4c2 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
Hello=21

This breaks most of libm consumers
llvm/flang:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=46AIL= ED: =5Bcode=3D1=5D bin/flang-20
: && /usr/local/libexec/ccach= e/c++ -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno= -strict-aliasing -isystem /usr/local/include -fPIC -fno-semantic-interpos= ition -fvisibility-inline
s-hidden -Werror=3Ddate-time -Werror=3Dungu= arded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-string= s -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 -Wsugges= t-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsu= pport
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-de= fault -Wno-nested-anon-types -O2 -pipe -fstack-protector-strong -isystem = /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -DNDE= BUG -Wl,--color-diagnostics -Wl,--expor
t-dynamic -Wl,-z,origin -Wl,-= -gc-sections -Xlinker --dependency-file=3Dtools/flang/tools/flang-driver/= CMake=46iles/flang.dir/link.d tools/flang/tools/flang-driver/CMake=46iles= /flang.dir/driver.cpp.o tools/
flang/tools/flang-driver/CMake=46iles/= flang.dir/fc1=5Fmain.cpp.o -o bin/flang-20 -L/wrkdirs/usr/ports/devel/llv= m20/work-default/.build/./lib -Wl,-rpath,=22=5C=24ORIGIN/../lib:/wrkdirs/= usr/ports/devel/llvm20/work-
default/.build/./lib:/wrkdirs/usr/ports/= devel/llvm20/work-default/.build/lib:=22 -lpthread lib/libflang=46rontend= .a lib/libflang=46rontendTool.a lib/lib=46ortranLower.a lib/lib=46ortranS= emantics.a lib/lib=46o
rtranSupport.a lib/libflangPasses.a lib/libHL=46= IRTransforms.a lib/lib=46IRTransforms.a lib/lib=46IROpenACCSupport.a lib/= lib=46langOpenMPTransforms.a lib/lib=46IRCodeGen.a lib/lib=46IRAnalysis.a= lib/lib=46IRB
uilder.a lib/libCU=46Dialect.a lib/lib=46ortranEvaluat= e.a lib/lib=46ortranParser.a lib/lib=46ortranCommon.a lib/lib=46ortranDec= imal.a lib/lib=46IRSupport.a lib/libHL=46IRDialect.a lib/lib=46IRDialect.= a lib/lib
=46IRDialectSupport.a lib/libCU=46Attrs.a lib/libclang-cpp.= so.20.1 lib/libMLIR.so.20.1 lib/libLLVM.so.20.1 && :
ld: erro= r: undefined symbol: feholdexcept
referenced by host= .cpp
host.cpp.o:(=46ortran::evaluate::host::Host=46loatingPointEnviro= nment::SetUpHost=46loatingPointEnvironment(=46ortran::evaluate::=46olding= Context&)) in archive lib/lib=46ortranEvaluate.a

ld: error: undefined symbol: fegetenv
referenced by host.cpp
host.cpp.o:(=46ortran::evaluate:= :host::Host=46loatingPointEnvironment::SetUpHost=46loatingPointEnvironmen= t(=46ortran::evaluate::=46oldingContext&)) in archive lib/lib=46ortra= nEvaluate.a
did you mean: fesetenv
defined in: /usr/lib/libm.so <= br>
c++: error: linker command fail= ed with exit code 1 (use -v to see invocation)
=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D

All of math/py-numpy1 consumers (math/Imat= h for example):
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
-- = Configuring imathnumpy module
Traceback (most recent call last):
= =46ile =22/usr/local/lib/python3.11/site-packages/numpy/core/=5F=5Finit=5F= =5F.py=22, line 24, in <module>
from . import multiarray
= =46ile =22/usr/local/lib/python3.11/site-packages/numpy/core/multiarray.p= y=22, line 10, in <module>
from . import overrides
=46ile= =22/usr/local/lib/python3.11/site-packages/numpy/core/overrides.py=22, l= ine 8, in <module>
from numpy.core.=5Fmultiarray=5Fumath impor= t (
ImportError: /usr/local/lib/python3.11/site-packages/numpy/core/=5F= multiarray=5Fumath.cpython-311.so: Undefined symbol =22feraiseexcept=22 <= br>
During handling of the above exception, another exception occurre= d:

Traceback (most recent call last):
=46ile =22/usr/local/= lib/python3.11/site-packages/numpy/=5F=5Finit=5F=5F.py=22, line 130, in &= lt;module>
from numpy.=5F=5Fconfig=5F=5F import show as show=5Fco= nfig
=46ile =22/usr/local/lib/python3.11/site-packages/numpy/=5F=5Fc= onfig=5F=5F.py=22, line 4, in <module>
from numpy.core.=5Fmult= iarray=5Fumath import (
=46ile =22/usr/local/lib/python3.11/site-pac= kages/numpy/core/=5F=5Finit=5F=5F.py=22, line 50, in <module>
= raise ImportError(msg)
ImportError:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D



On 30.03.2026 20:15, Konstantin Belous= ov wrote:
The branch main has been upda= ted by kib:

URL: https://cgit.=46reeBSD.org/src/commit/=3Fid=3D3= a01e1e1a50cb9a9594aac2148dc920a6b295428

commit 3a01e1e1a50cb9a95= 94aac2148dc920a6b295428
Author: Konstantin Belousov <kib=40=46reeB= SD.org>
AuthorDate: 2026-03-28 23:13:44 +0000
Commit: Konstant= in Belousov <kib=40=46reeBSD.org>
CommitDate: 2026-03-30 16:57:= 00 +0000

msun/aarch64: convert fenv functions to proper linkage =

namely
fegetexceptflag(3)
fesetexceptflag(3)
feraise= except(3)
fetestexcept(3)
fegetround(3)
fesetround(3)
feg= etenv(3)
feholdexcept(3)
fesetenv(3)
feupdateenv(3)
feena= bleexcept(3)
fedisableexcept(3)
fegetexcept(3)

PR: 27795= 8
Reviewed by: dim
Sponsored by: The =46reeBSD =46oundation
M= =46C after: 1 week
Differential revision: https://reviews.freebsd.org= /D56139
---
lib/msun/aarch64/fenv.c =7C 72 ++++++++++++++++++++++= ++++++++++++++++++---------
lib/msun/aarch64/fenv.h =7C 41 ++++++++++= +++++++++++-------
2 files changed, 90 insertions(+), 23 deletions(-)=

diff --git a/lib/msun/aarch64/fenv.c b/lib/msun/aarch64/fenv.c =
index 4c54656be7d3..5d626f66516f 100644
--- a/lib/msun/aarch64/fe= nv.c
+++ b/lib/msun/aarch64/fenv.c
=40=40 -44,16 +44,62 =40=40 in= t
return (=5F=5Ffeclearexcept=5Fint(excepts));
=7D

-ext= ern inline int fegetexceptflag(fexcept=5Ft *=5F=5Fflagp, int =5F=5Fexcept= s);
-extern inline int fesetexceptflag(const fexcept=5Ft *=5F=5Fflagp= , int =5F=5Fexcepts);
-extern inline int feraiseexcept(int =5F=5Fexce= pts);
-extern inline int fetestexcept(int =5F=5Fexcepts);
-extern= inline int fegetround(void);
-extern inline int fesetround(int =5F=5F= round);
-extern inline int fegetenv(fenv=5Ft *=5F=5Fenvp);
-exter= n inline int feholdexcept(fenv=5Ft *=5F=5Fenvp);
-extern inline int f= esetenv(const fenv=5Ft *=5F=5Fenvp);
-extern inline int feupdateenv(c= onst fenv=5Ft *=5F=5Fenvp);
-extern inline int feenableexcept(int =5F= =5Fmask);
-extern inline int fedisableexcept(int =5F=5Fmask);
-ex= tern inline int fegetexcept(void);
+int
+(fegetexceptflag)(fexcep= t=5Ft *flagp, int excepts)
+=7B
+ return (=5F=5Ffegetexceptflag=5F= int(flagp, excepts));
+=7D
+
+int
+(fesetexceptflag)(cons= t fexcept=5Ft *flagp, int excepts)
+=7B
+ return (=5F=5Ffesetexce= ptflag=5Fint(flagp, excepts));
+=7D
+
+int
+(feraiseexcep= t)(int excepts)
+=7B
+ return (=5F=5Fferaiseexcept=5Fint(excepts)= );
+=7D
+
+int
+(fetestexcept)(int excepts)
+=7B
= + return (=5F=5Ffetestexcept=5Fint(excepts));
+=7D
+
+int +(fegetround)(void)
+=7B
+ return (=5F=5Ffegetround=5Fint()); +=7D
+
+int
+(fesetround)(int round)
+=7B
+ return = (=5F=5Ffesetround=5Fint(round));
+=7D
+
+int
+(fegetenv)(= fenv=5Ft *envp)
+=7B
+ return (=5F=5Ffegetenv=5Fint(envp));
+= =7D
+
+int
+(feholdexcept)(fenv=5Ft *envp)
+=7B
+ ret= urn (=5F=5Ffeholdexcept=5Fint(envp));
+=7D
+
+int
+(feset= env)(const fenv=5Ft *envp)
+=7B
+ return (=5F=5Ffesetenv=5Fint(en= vp));
+=7D
+
+int
+(feupdateenv)(const fenv=5Ft *envp) +=7B
+ return (=5F=5Ffeupdateenv=5Fint(envp));
+=7D
diff --= git a/lib/msun/aarch64/fenv.h b/lib/msun/aarch64/fenv.h
index d125978= b887b..32a03ee1eb49 100644
--- a/lib/msun/aarch64/fenv.h
+++ b/li= b/msun/aarch64/fenv.h
=40=40 -82,7 +82,28 =40=40 extern const fenv=5F= t =5F=5Ffe=5Fdfl=5Fenv;
=23define =5F=5Fmsr=5Ffpsr(=5F=5Fr) =5F=5Fasm= =5F=5Fvolatile(=22msr fpsr, %0=22 : : =22r=22 (=5F=5Fr))

int fe= clearexcept(int);
+int fegetexceptflag(fexcept=5Ft *, int);
+int = fesetexceptflag(const fexcept=5Ft *, int);
+int feraiseexcept(int); <= br>+int fetestexcept(int);
+int fegetround(void);
+int fesetround= (int);
+int fegetenv(fenv=5Ft *);
+int feholdexcept(fenv=5Ft *); =
+int fesetenv(const fenv=5Ft *);
+int feupdateenv(const fenv=5Ft = *);
+
=23define feclearexcept(a) =5F=5Ffeclearexcept=5Fint(a) +=23define fegetexceptflag(e, a) =5F=5Ffegetexceptflag=5Fint(e, a)
+= =23define fesetexceptflag(e, a) =5F=5Ffesetexceptflag=5Fint(e, a)
+=23= define feraiseexcept(a) =5F=5Fferaiseexcept=5Fint(a)
+=23define fetes= texcept(a) =5F=5Ffetestexcept=5Fint(a)
+=23define fegetround() =5F=5F= fegetround=5Fint()
+=23define fesetround(a) =5F=5Ffesetround=5Fint(a)=
+=23define fegetenv(e) =5F=5Ffegetenv=5Fint(e)
+=23define fehold= except(e) =5F=5Ffeholdexcept=5Fint(e)
+=23define fesetenv(e) =5F=5Ffe= setenv=5Fint(e)
+=23define feupdateenv(e) =5F=5Ffeupdateenv=5Fint(e) =

=5F=5Ffenv=5Fstatic inline int
=5F=5Ffeclearexcept=5Fint(int= =5F=5Fexcepts)
=40=40 -96,7 +117,7 =40=40 =5F=5Ffeclearexcept=5Fint(= int =5F=5Fexcepts)
=7D

=5F=5Ffenv=5Fstatic inline int
-f= egetexceptflag(fexcept=5Ft *=5F=5Fflagp, int =5F=5Fexcepts)
+=5F=5Ffe= getexceptflag=5Fint(fexcept=5Ft *=5F=5Fflagp, int =5F=5Fexcepts)
=7B =
fexcept=5Ft =5F=5Fr;

=40=40 -106,7 +127,7 =40=40 fegetexcep= tflag(fexcept=5Ft *=5F=5Fflagp, int =5F=5Fexcepts)
=7D

=5F=5F= fenv=5Fstatic inline int
-fesetexceptflag(const fexcept=5Ft *=5F=5Ffl= agp, int =5F=5Fexcepts)
+=5F=5Ffesetexceptflag=5Fint(const fexcept=5F= t *=5F=5Fflagp, int =5F=5Fexcepts)
=7B
fexcept=5Ft =5F=5Fr;
=
=40=40 -118,7 +139,7 =40=40 fesetexceptflag(const fexcept=5Ft *=5F=5F= flagp, int =5F=5Fexcepts)
=7D

=5F=5Ffenv=5Fstatic inline int=
-feraiseexcept(int =5F=5Fexcepts)
+=5F=5Fferaiseexcept=5Fint(int= =5F=5Fexcepts)
=7B
fexcept=5Ft =5F=5Fr;

=40=40 -129,7 = +150,7 =40=40 feraiseexcept(int =5F=5Fexcepts)
=7D

=5F=5Ffen= v=5Fstatic inline int
-fetestexcept(int =5F=5Fexcepts)
+=5F=5Ffet= estexcept=5Fint(int =5F=5Fexcepts)
=7B
fexcept=5Ft =5F=5Fr;
=
=40=40 -138,7 +159,7 =40=40 fetestexcept(int =5F=5Fexcepts)
=7D =

=5F=5Ffenv=5Fstatic inline int
-fegetround(void)
+=5F=5F= fegetround=5Fint(void)
=7B
fenv=5Ft =5F=5Fr;

=40=40 -14= 7,7 +168,7 =40=40 fegetround(void)
=7D

=5F=5Ffenv=5Fstatic i= nline int
-fesetround(int =5F=5Fround)
+=5F=5Ffesetround=5Fint(in= t =5F=5Fround)
=7B
fenv=5Ft =5F=5Fr;

=40=40 -161,7 +182= ,7 =40=40 fesetround(int =5F=5Fround)
=7D

=5F=5Ffenv=5Fstati= c inline int
-fegetenv(fenv=5Ft *=5F=5Fenvp)
+=5F=5Ffegetenv=5Fin= t(fenv=5Ft *=5F=5Fenvp)
=7B
=5F=5Fuint64=5Ft fpcr;
=5F=5Fui= nt64=5Ft fpsr;
=40=40 -174,7 +195,7 =40=40 fegetenv(fenv=5Ft *=5F=5Fe= nvp)
=7D

=5F=5Ffenv=5Fstatic inline int
-feholdexcept(fe= nv=5Ft *=5F=5Fenvp)
+=5F=5Ffeholdexcept=5Fint(fenv=5Ft *=5F=5Fenvp) <= br>=7B
fenv=5Ft =5F=5Fr;

=40=40 -191,7 +212,7 =40=40 fehold= except(fenv=5Ft *=5F=5Fenvp)
=7D

=5F=5Ffenv=5Fstatic inline = int
-fesetenv(const fenv=5Ft *=5F=5Fenvp)
+=5F=5Ffesetenv=5Fint(c= onst fenv=5Ft *=5F=5Fenvp)
=7B

=5F=5Fmsr=5Ffpcr((*=5F=5Fenv= p) >> 32);
=40=40 -200,7 +221,7 =40=40 fesetenv(const fenv=5Ft = *=5F=5Fenvp)
=7D

=5F=5Ffenv=5Fstatic inline int
-feupdat= eenv(const fenv=5Ft *=5F=5Fenvp)
+=5F=5Ffeupdateenv=5Fint(const fenv=5F= t *=5F=5Fenvp)
=7B
fexcept=5Ft =5F=5Fr;



--
Sincerely,
Dima (fluffy=40=46reeBSD.org, https://t.me/= =46luffyBSD, =40fluffy:matrix-dev.freebsd.org)
(desktop, kde, x11, of= fice, ports-secteam)=40=46reeBSD team

--69d3d7b4_6b8b4567_d4c2--