Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Apr 2026 18:56:36 +0300
From:      Dima Panov <fluffy@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,  dev-commits-src-main@FreeBSD.org, Konstantin Belousov <kib@FreeBSD.org>
Subject:   git: 3a01e1e1a50c - main - msun/aarch64: convert fenv functions to proper linkage
Message-ID:  <1f2ad4f0-a4ab-4f15-a779-5f1a6db9912b@FreeBSD.org>
In-Reply-To: <69caafbb.408c4.7b20a1e1@gitrepo.freebsd.org>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
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 <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:
===============

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 <kib@FreeBSD.org>
> AuthorDate: 2026-03-28 23:13:44 +0000
> Commit: Konstantin Belousov <kib@FreeBSD.org>
> 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


[-- Attachment #2 --]
<html><head><meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"></head><body><div id="CanaryBody">Hello! <br> <br>This breaks most of libm consumers <br> <br>llvm/flang: <br>=============== <br>FAILED: [code=1] bin/flang-20 <br>: &amp;&amp; /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 <br>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 <br>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 <br>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 <br>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 <br>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/ <br>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- <br>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 <br>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 <br>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 <br>FIRDialectSupport.a lib/libCUFAttrs.a lib/libclang-cpp.so.20.1 lib/libMLIR.so.20.1 lib/libLLVM.so.20.1 &amp;&amp; : <br>ld: error: undefined symbol: feholdexcept <br><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">referenced by host.cpp <br>host.cpp.o:(Fortran::evaluate::host::HostFloatingPointEnvironment::SetUpHostFloatingPointEnvironment(Fortran::evaluate::FoldingContext&amp;)) in archive lib/libFortranEvaluate.a <br></blockquote></blockquote></blockquote> <br>ld: error: undefined symbol: fegetenv <br><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">referenced by host.cpp <br>host.cpp.o:(Fortran::evaluate::host::HostFloatingPointEnvironment::SetUpHostFloatingPointEnvironment(Fortran::evaluate::FoldingContext&amp;)) in archive lib/libFortranEvaluate.a <br>did you mean: fesetenv <br>defined in: /usr/lib/libm.so <br></blockquote></blockquote></blockquote>c++: error: linker command failed with exit code 1 (use -v to see invocation) <br>=============== <br> <br>All of math/py-numpy1 consumers (math/Imath for example): <br>=============== <br>-- Configuring imathnumpy module <br>Traceback (most recent call last): <br> File "/usr/local/lib/python3.11/site-packages/numpy/core/__init__.py", line 24, in &lt;module&gt; <br> from . import multiarray <br> File "/usr/local/lib/python3.11/site-packages/numpy/core/multiarray.py", line 10, in &lt;module&gt; <br> from . import overrides <br> File "/usr/local/lib/python3.11/site-packages/numpy/core/overrides.py", line 8, in &lt;module&gt; <br> from numpy.core._multiarray_umath import ( <br>ImportError: /usr/local/lib/python3.11/site-packages/numpy/core/_multiarray_umath.cpython-311.so: Undefined symbol "feraiseexcept" <br> <br>During handling of the above exception, another exception occurred: <br> <br>Traceback (most recent call last): <br> File "/usr/local/lib/python3.11/site-packages/numpy/__init__.py", line 130, in &lt;module&gt; <br> from numpy.__config__ import show as show_config <br> File "/usr/local/lib/python3.11/site-packages/numpy/__config__.py", line 4, in &lt;module&gt; <br> from numpy.core._multiarray_umath import ( <br> File "/usr/local/lib/python3.11/site-packages/numpy/core/__init__.py", line 50, in &lt;module&gt; <br> raise ImportError(msg) <br>ImportError: <br>=============== <br> <br> <br> <br>On 30.03.2026 20:15, Konstantin Belousov wrote: <br><blockquote type="cite">The branch main has been updated by kib: <br> <br>URL: https://cgit.FreeBSD.org/src/commit/?id=3a01e1e1a50cb9a9594aac2148dc920a6b295428 <br> <br>commit 3a01e1e1a50cb9a9594aac2148dc920a6b295428 <br>Author: Konstantin Belousov &lt;kib@FreeBSD.org&gt; <br>AuthorDate: 2026-03-28 23:13:44 +0000 <br>Commit: Konstantin Belousov &lt;kib@FreeBSD.org&gt; <br>CommitDate: 2026-03-30 16:57:00 +0000 <br> <br>msun/aarch64: convert fenv functions to proper linkage <br> <br>namely <br>fegetexceptflag(3) <br>fesetexceptflag(3) <br>feraiseexcept(3) <br>fetestexcept(3) <br>fegetround(3) <br>fesetround(3) <br>fegetenv(3) <br>feholdexcept(3) <br>fesetenv(3) <br>feupdateenv(3) <br>feenableexcept(3) <br>fedisableexcept(3) <br>fegetexcept(3) <br> <br>PR: 277958 <br>Reviewed by: dim <br>Sponsored by: The FreeBSD Foundation <br>MFC after: 1 week <br>Differential revision: https://reviews.freebsd.org/D56139 <br>--- <br>lib/msun/aarch64/fenv.c | 72 ++++++++++++++++++++++++++++++++++++++++--------- <br>lib/msun/aarch64/fenv.h | 41 +++++++++++++++++++++------- <br>2 files changed, 90 insertions(+), 23 deletions(-) <br> <br>diff --git a/lib/msun/aarch64/fenv.c b/lib/msun/aarch64/fenv.c <br>index 4c54656be7d3..5d626f66516f 100644 <br>--- a/lib/msun/aarch64/fenv.c <br>+++ b/lib/msun/aarch64/fenv.c <br>@@ -44,16 +44,62 @@ int <br> return (__feclearexcept_int(excepts)); <br>} <br> <br>-extern inline int fegetexceptflag(fexcept_t *__flagp, int __excepts); <br>-extern inline int fesetexceptflag(const fexcept_t *__flagp, int __excepts); <br>-extern inline int feraiseexcept(int __excepts); <br>-extern inline int fetestexcept(int __excepts); <br>-extern inline int fegetround(void); <br>-extern inline int fesetround(int __round); <br>-extern inline int fegetenv(fenv_t *__envp); <br>-extern inline int feholdexcept(fenv_t *__envp); <br>-extern inline int fesetenv(const fenv_t *__envp); <br>-extern inline int feupdateenv(const fenv_t *__envp); <br>-extern inline int feenableexcept(int __mask); <br>-extern inline int fedisableexcept(int __mask); <br>-extern inline int fegetexcept(void); <br>+int <br>+(fegetexceptflag)(fexcept_t *flagp, int excepts) <br>+{ <br>+ return (__fegetexceptflag_int(flagp, excepts)); <br>+} <br>+ <br>+int <br>+(fesetexceptflag)(const fexcept_t *flagp, int excepts) <br>+{ <br>+ return (__fesetexceptflag_int(flagp, excepts)); <br>+} <br>+ <br>+int <br>+(feraiseexcept)(int excepts) <br>+{ <br>+ return (__feraiseexcept_int(excepts)); <br>+} <br>+ <br>+int <br>+(fetestexcept)(int excepts) <br>+{ <br>+ return (__fetestexcept_int(excepts)); <br>+} <br>+ <br>+int <br>+(fegetround)(void) <br>+{ <br>+ return (__fegetround_int()); <br>+} <br>+ <br>+int <br>+(fesetround)(int round) <br>+{ <br>+ return (__fesetround_int(round)); <br>+} <br>+ <br>+int <br>+(fegetenv)(fenv_t *envp) <br>+{ <br>+ return (__fegetenv_int(envp)); <br>+} <br>+ <br>+int <br>+(feholdexcept)(fenv_t *envp) <br>+{ <br>+ return (__feholdexcept_int(envp)); <br>+} <br>+ <br>+int <br>+(fesetenv)(const fenv_t *envp) <br>+{ <br>+ return (__fesetenv_int(envp)); <br>+} <br>+ <br>+int <br>+(feupdateenv)(const fenv_t *envp) <br>+{ <br>+ return (__feupdateenv_int(envp)); <br>+} <br>diff --git a/lib/msun/aarch64/fenv.h b/lib/msun/aarch64/fenv.h <br>index d125978b887b..32a03ee1eb49 100644 <br>--- a/lib/msun/aarch64/fenv.h <br>+++ b/lib/msun/aarch64/fenv.h <br>@@ -82,7 +82,28 @@ extern const fenv_t __fe_dfl_env; <br>#define __msr_fpsr(__r) __asm __volatile("msr fpsr, %0" : : "r" (__r)) <br> <br>int feclearexcept(int); <br>+int fegetexceptflag(fexcept_t *, int); <br>+int fesetexceptflag(const fexcept_t *, int); <br>+int feraiseexcept(int); <br>+int fetestexcept(int); <br>+int fegetround(void); <br>+int fesetround(int); <br>+int fegetenv(fenv_t *); <br>+int feholdexcept(fenv_t *); <br>+int fesetenv(const fenv_t *); <br>+int feupdateenv(const fenv_t *); <br>+ <br>#define feclearexcept(a) __feclearexcept_int(a) <br>+#define fegetexceptflag(e, a) __fegetexceptflag_int(e, a) <br>+#define fesetexceptflag(e, a) __fesetexceptflag_int(e, a) <br>+#define feraiseexcept(a) __feraiseexcept_int(a) <br>+#define fetestexcept(a) __fetestexcept_int(a) <br>+#define fegetround() __fegetround_int() <br>+#define fesetround(a) __fesetround_int(a) <br>+#define fegetenv(e) __fegetenv_int(e) <br>+#define feholdexcept(e) __feholdexcept_int(e) <br>+#define fesetenv(e) __fesetenv_int(e) <br>+#define feupdateenv(e) __feupdateenv_int(e) <br> <br>__fenv_static inline int <br>__feclearexcept_int(int __excepts) <br>@@ -96,7 +117,7 @@ __feclearexcept_int(int __excepts) <br>} <br> <br>__fenv_static inline int <br>-fegetexceptflag(fexcept_t *__flagp, int __excepts) <br>+__fegetexceptflag_int(fexcept_t *__flagp, int __excepts) <br>{ <br> fexcept_t __r; <br> <br>@@ -106,7 +127,7 @@ fegetexceptflag(fexcept_t *__flagp, int __excepts) <br>} <br> <br>__fenv_static inline int <br>-fesetexceptflag(const fexcept_t *__flagp, int __excepts) <br>+__fesetexceptflag_int(const fexcept_t *__flagp, int __excepts) <br>{ <br> fexcept_t __r; <br> <br>@@ -118,7 +139,7 @@ fesetexceptflag(const fexcept_t *__flagp, int __excepts) <br>} <br> <br>__fenv_static inline int <br>-feraiseexcept(int __excepts) <br>+__feraiseexcept_int(int __excepts) <br>{ <br> fexcept_t __r; <br> <br>@@ -129,7 +150,7 @@ feraiseexcept(int __excepts) <br>} <br> <br>__fenv_static inline int <br>-fetestexcept(int __excepts) <br>+__fetestexcept_int(int __excepts) <br>{ <br> fexcept_t __r; <br> <br>@@ -138,7 +159,7 @@ fetestexcept(int __excepts) <br>} <br> <br>__fenv_static inline int <br>-fegetround(void) <br>+__fegetround_int(void) <br>{ <br> fenv_t __r; <br> <br>@@ -147,7 +168,7 @@ fegetround(void) <br>} <br> <br>__fenv_static inline int <br>-fesetround(int __round) <br>+__fesetround_int(int __round) <br>{ <br> fenv_t __r; <br> <br>@@ -161,7 +182,7 @@ fesetround(int __round) <br>} <br> <br>__fenv_static inline int <br>-fegetenv(fenv_t *__envp) <br>+__fegetenv_int(fenv_t *__envp) <br>{ <br> __uint64_t fpcr; <br> __uint64_t fpsr; <br>@@ -174,7 +195,7 @@ fegetenv(fenv_t *__envp) <br>} <br> <br>__fenv_static inline int <br>-feholdexcept(fenv_t *__envp) <br>+__feholdexcept_int(fenv_t *__envp) <br>{ <br> fenv_t __r; <br> <br>@@ -191,7 +212,7 @@ feholdexcept(fenv_t *__envp) <br>} <br> <br>__fenv_static inline int <br>-fesetenv(const fenv_t *__envp) <br>+__fesetenv_int(const fenv_t *__envp) <br>{ <br> <br> __msr_fpcr((*__envp) &gt;&gt; 32); <br>@@ -200,7 +221,7 @@ fesetenv(const fenv_t *__envp) <br>} <br> <br>__fenv_static inline int <br>-feupdateenv(const fenv_t *__envp) <br>+__feupdateenv_int(const fenv_t *__envp) <br>{ <br> fexcept_t __r; <br> <br> <br></blockquote> <br>-- <br>Sincerely, <br>Dima (fluffy@FreeBSD.org, https://t.me/FluffyBSD, @fluffy:matrix-dev.freebsd.org) <br>(desktop, kde, x11, office, ports-secteam)@FreeBSD team <br> <br></div></body></html>
home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1f2ad4f0-a4ab-4f15-a779-5f1a6db9912b>