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 f39754d51b for feclearexcept(3).

PR:	277958
Reviewed by:	dim
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D56139
This commit is contained in:
Konstantin Belousov
2026-03-29 00:36:55 +02:00
parent 7cfffe25da
commit 5bc64b7d41
3 changed files with 74 additions and 19 deletions
+27 -5
View File
@@ -52,7 +52,11 @@ int
return (__feclearexcept_int(excepts)); 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 int
fesetexceptflag(const fexcept_t *flagp, int excepts) fesetexceptflag(const fexcept_t *flagp, int excepts)
@@ -82,9 +86,23 @@ feraiseexcept(int excepts)
return (0); return (0);
} }
extern inline int fetestexcept(int __excepts); int
extern inline int fegetround(void); (fetestexcept)(int excepts)
extern inline int fesetround(int __round); {
return (__fetestexcept_int(excepts));
}
int
(fegetround)(void)
{
return (__fegetround_int());
}
int
(fesetround)(int round)
{
return (__fesetround_int(round));
}
int int
fegetenv(fenv_t *envp) fegetenv(fenv_t *envp)
@@ -115,7 +133,11 @@ feholdexcept(fenv_t *envp)
return (0); return (0);
} }
extern inline int fesetenv(const fenv_t *__envp); int
(fesetenv)(const fenv_t *envp)
{
return (__fesetenv_int(envp));
}
int int
feupdateenv(const fenv_t *envp) feupdateenv(const fenv_t *envp)
+27 -5
View File
@@ -94,7 +94,11 @@ int
return (__feclearexcept_int(excepts)); 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 int
fesetexceptflag(const fexcept_t *flagp, int excepts) fesetexceptflag(const fexcept_t *flagp, int excepts)
@@ -127,9 +131,23 @@ feraiseexcept(int excepts)
return (0); return (0);
} }
extern inline int fetestexcept(int __excepts); int
extern inline int fegetround(void); (fetestexcept)(int excepts)
extern inline int fesetround(int __round); {
return (__fetestexcept_int(excepts));
}
int
(fegetround)(void)
{
return (__fegetround_int());
}
int
(fesetround)(int round)
{
return (__fesetround_int(round));
}
int int
fegetenv(fenv_t *envp) fegetenv(fenv_t *envp)
@@ -166,7 +184,11 @@ feholdexcept(fenv_t *envp)
return (0); return (0);
} }
extern inline int fesetenv(const fenv_t *__envp); int
(fesetenv)(const fenv_t *envp)
{
return (__fesetenv_int(envp));
}
int int
feupdateenv(const fenv_t *envp) feupdateenv(const fenv_t *envp)
+20 -9
View File
@@ -108,7 +108,7 @@ int feraiseexcept(int __excepts);
int feupdateenv(const fenv_t *__envp); int feupdateenv(const fenv_t *__envp);
__fenv_static inline int __fenv_static inline int
fegetround(void) __fegetround_int(void)
{ {
__uint16_t __control; __uint16_t __control;
@@ -144,7 +144,18 @@ fegetexcept(void)
#endif /* __BSD_VISIBLE */ #endif /* __BSD_VISIBLE */
int feclearexcept(int); 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 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__ #ifdef __i386__
@@ -188,7 +199,7 @@ __feclearexcept_int(int __excepts)
} }
__fenv_static inline int __fenv_static inline int
fegetexceptflag(fexcept_t *__flagp, int __excepts) __fegetexceptflag_int(fexcept_t *__flagp, int __excepts)
{ {
__uint32_t __mxcsr; __uint32_t __mxcsr;
__uint16_t __status; __uint16_t __status;
@@ -203,7 +214,7 @@ fegetexceptflag(fexcept_t *__flagp, int __excepts)
} }
__fenv_static inline int __fenv_static inline int
fetestexcept(int __excepts) __fetestexcept_int(int __excepts)
{ {
__uint32_t __mxcsr; __uint32_t __mxcsr;
__uint16_t __status; __uint16_t __status;
@@ -217,7 +228,7 @@ fetestexcept(int __excepts)
} }
__fenv_static inline int __fenv_static inline int
fesetround(int __round) __fesetround_int(int __round)
{ {
__uint32_t __mxcsr; __uint32_t __mxcsr;
__uint16_t __control; __uint16_t __control;
@@ -241,7 +252,7 @@ fesetround(int __round)
} }
__fenv_static inline int __fenv_static inline int
fesetenv(const fenv_t *__envp) __fesetenv_int(const fenv_t *__envp)
{ {
fenv_t __env = *__envp; fenv_t __env = *__envp;
__uint32_t __mxcsr; __uint32_t __mxcsr;
@@ -283,7 +294,7 @@ __feclearexcept_int(int __excepts)
} }
__fenv_static inline int __fenv_static inline int
fegetexceptflag(fexcept_t *__flagp, int __excepts) __fegetexceptflag_int(fexcept_t *__flagp, int __excepts)
{ {
__uint32_t __mxcsr; __uint32_t __mxcsr;
__uint16_t __status; __uint16_t __status;
@@ -295,7 +306,7 @@ fegetexceptflag(fexcept_t *__flagp, int __excepts)
} }
__fenv_static inline int __fenv_static inline int
fetestexcept(int __excepts) __fetestexcept_int(int __excepts)
{ {
__uint32_t __mxcsr; __uint32_t __mxcsr;
__uint16_t __status; __uint16_t __status;
@@ -306,7 +317,7 @@ fetestexcept(int __excepts)
} }
__fenv_static inline int __fenv_static inline int
fesetround(int __round) __fesetround_int(int __round)
{ {
__uint32_t __mxcsr; __uint32_t __mxcsr;
__uint16_t __control; __uint16_t __control;
@@ -328,7 +339,7 @@ fesetround(int __round)
} }
__fenv_static inline int __fenv_static inline int
fesetenv(const fenv_t *__envp) __fesetenv_int(const fenv_t *__envp)
{ {
/* /*