Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Mar 2026 17:15:38 +0000
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 5bc64b7d417d - main - msun/x86: convert rest of the extern inline fenv functions to proper linkage
Message-ID:  <69caafba.41f04.6cb73a9a@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=5bc64b7d417dd1f105755e093f8e807bcdc2a666

commit 5bc64b7d417dd1f105755e093f8e807bcdc2a666
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-03-28 22:36:55 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-03-30 16:57:00 +0000

    msun/x86: convert rest of the extern inline fenv functions to proper linkage
    
    namely
            fegetexceptflag(3)
            fetestexcept(3)
            fesetround(3)
            fegetround(3)
            fesetenv(3)
    Same as it was done in f39754d51b7dc65c4cf9f for feclearexcept(3).
    
    PR:     277958
    Reviewed by:    dim
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D56139
---
 lib/msun/amd64/fenv.c | 32 +++++++++++++++++++++++++++-----
 lib/msun/i387/fenv.c  | 32 +++++++++++++++++++++++++++-----
 lib/msun/x86/fenv.h   | 29 ++++++++++++++++++++---------
 3 files changed, 74 insertions(+), 19 deletions(-)

diff --git a/lib/msun/amd64/fenv.c b/lib/msun/amd64/fenv.c
index cd3b83d11585..5dd122cf457c 100644
--- a/lib/msun/amd64/fenv.c
+++ b/lib/msun/amd64/fenv.c
@@ -52,7 +52,11 @@ int
 	return (__feclearexcept_int(excepts));
 }
 
-extern inline int fegetexceptflag(fexcept_t *__flagp, int __excepts);
+int
+(fegetexceptflag)(fexcept_t *flagp, int excepts)
+{
+	return (__fegetexceptflag_int(flagp, excepts));
+}
 
 int
 fesetexceptflag(const fexcept_t *flagp, int excepts)
@@ -82,9 +86,23 @@ feraiseexcept(int excepts)
 	return (0);
 }
 
-extern inline int fetestexcept(int __excepts);
-extern inline int fegetround(void);
-extern inline int fesetround(int __round);
+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)
@@ -115,7 +133,11 @@ feholdexcept(fenv_t *envp)
 	return (0);
 }
 
-extern inline int fesetenv(const fenv_t *__envp);
+int
+(fesetenv)(const fenv_t *envp)
+{
+	return (__fesetenv_int(envp));
+}
 
 int
 feupdateenv(const fenv_t *envp)
diff --git a/lib/msun/i387/fenv.c b/lib/msun/i387/fenv.c
index e0485a3597f6..d3cdc2e1cafb 100644
--- a/lib/msun/i387/fenv.c
+++ b/lib/msun/i387/fenv.c
@@ -94,7 +94,11 @@ int
 	return (__feclearexcept_int(excepts));
 }
 
-extern inline int fegetexceptflag(fexcept_t *__flagp, int __excepts);
+int
+(fegetexceptflag)(fexcept_t *flagp, int excepts)
+{
+	return (__fegetexceptflag_int(flagp, excepts));
+}
 
 int
 fesetexceptflag(const fexcept_t *flagp, int excepts)
@@ -127,9 +131,23 @@ feraiseexcept(int excepts)
 	return (0);
 }
 
-extern inline int fetestexcept(int __excepts);
-extern inline int fegetround(void);
-extern inline int fesetround(int __round);
+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)
@@ -166,7 +184,11 @@ feholdexcept(fenv_t *envp)
 	return (0);
 }
 
-extern inline int fesetenv(const fenv_t *__envp);
+int
+(fesetenv)(const fenv_t *envp)
+{
+	return (__fesetenv_int(envp));
+}
 
 int
 feupdateenv(const fenv_t *envp)
diff --git a/lib/msun/x86/fenv.h b/lib/msun/x86/fenv.h
index b806222e5ef6..b5da37902083 100644
--- a/lib/msun/x86/fenv.h
+++ b/lib/msun/x86/fenv.h
@@ -108,7 +108,7 @@ int feraiseexcept(int __excepts);
 int feupdateenv(const fenv_t *__envp);
 
 __fenv_static inline int
-fegetround(void)
+__fegetround_int(void)
 {
 	__uint16_t __control;
 
@@ -144,7 +144,18 @@ fegetexcept(void)
 #endif /* __BSD_VISIBLE */
 
 int feclearexcept(int);
+int fegetexceptflag(fexcept_t *, int);
+int fetestexcept(int);
+int fesetround(int);
+int fegetround(void);
+int fesetenv(const fenv_t *);
+
 #define	feclearexcept(a)	__feclearexcept_int(a)
+#define	fegetexceptflag(e, a)	__fegetexceptflag_int(e, a)
+#define	fetestexcept(a)		__fetestexcept_int(a)
+#define	fesetround(a)		__fesetround_int(a)
+#define	fegetround()		__fegetround_int()
+#define	fesetenv(a)		__fesetenv_int(a)
 
 #ifdef __i386__
 
@@ -188,7 +199,7 @@ __feclearexcept_int(int __excepts)
 }
 
 __fenv_static inline int
-fegetexceptflag(fexcept_t *__flagp, int __excepts)
+__fegetexceptflag_int(fexcept_t *__flagp, int __excepts)
 {
 	__uint32_t __mxcsr;
 	__uint16_t __status;
@@ -203,7 +214,7 @@ fegetexceptflag(fexcept_t *__flagp, int __excepts)
 }
 
 __fenv_static inline int
-fetestexcept(int __excepts)
+__fetestexcept_int(int __excepts)
 {
 	__uint32_t __mxcsr;
 	__uint16_t __status;
@@ -217,7 +228,7 @@ fetestexcept(int __excepts)
 }
 
 __fenv_static inline int
-fesetround(int __round)
+__fesetround_int(int __round)
 {
 	__uint32_t __mxcsr;
 	__uint16_t __control;
@@ -241,7 +252,7 @@ fesetround(int __round)
 }
 
 __fenv_static inline int
-fesetenv(const fenv_t *__envp)
+__fesetenv_int(const fenv_t *__envp)
 {
 	fenv_t __env = *__envp;
 	__uint32_t __mxcsr;
@@ -283,7 +294,7 @@ __feclearexcept_int(int __excepts)
 }
 
 __fenv_static inline int
-fegetexceptflag(fexcept_t *__flagp, int __excepts)
+__fegetexceptflag_int(fexcept_t *__flagp, int __excepts)
 {
 	__uint32_t __mxcsr;
 	__uint16_t __status;
@@ -295,7 +306,7 @@ fegetexceptflag(fexcept_t *__flagp, int __excepts)
 }
 
 __fenv_static inline int
-fetestexcept(int __excepts)
+__fetestexcept_int(int __excepts)
 {
 	__uint32_t __mxcsr;
 	__uint16_t __status;
@@ -306,7 +317,7 @@ fetestexcept(int __excepts)
 }
 
 __fenv_static inline int
-fesetround(int __round)
+__fesetround_int(int __round)
 {
 	__uint32_t __mxcsr;
 	__uint16_t __control;
@@ -328,7 +339,7 @@ fesetround(int __round)
 }
 
 __fenv_static inline int
-fesetenv(const fenv_t *__envp)
+__fesetenv_int(const fenv_t *__envp)
 {
 
 	/*


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69caafba.41f04.6cb73a9a>