git: 96a685c229f2 - main - lib/msun/aarch64: provide export file for arch-specific fenv methods
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 08 Apr 2026 14:32:15 UTC
The branch main has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=96a685c229f2ce440591f98d33d36776e56dd55c
commit 96a685c229f2ce440591f98d33d36776e56dd55c
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-04-06 16:41:23 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-04-08 14:32:00 +0000
lib/msun/aarch64: provide export file for arch-specific fenv methods
Reported and tested by: fluffy
Reviewed by: emaste
Fixes: 3a01e1e1a50cb9a9594aac2148dc920a6b295428
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D56283
---
lib/msun/aarch64/Symbol.map | 10 ++++++++++
lib/msun/aarch64/fenv.c | 18 ++++++++++++++++++
lib/msun/aarch64/fenv.h | 14 +++++++++-----
3 files changed, 37 insertions(+), 5 deletions(-)
diff --git a/lib/msun/aarch64/Symbol.map b/lib/msun/aarch64/Symbol.map
new file mode 100644
index 000000000000..b468c814ff06
--- /dev/null
+++ b/lib/msun/aarch64/Symbol.map
@@ -0,0 +1,10 @@
+FBSD_1.9 {
+ fesetexceptflag;
+ feraiseexcept;
+ fegetenv;
+ feholdexcept;
+ feupdateenv;
+ feenableexcept;
+ fedisableexcept;
+ fegetexcept;
+};
diff --git a/lib/msun/aarch64/fenv.c b/lib/msun/aarch64/fenv.c
index a428a9d8a271..3d7e467880c7 100644
--- a/lib/msun/aarch64/fenv.c
+++ b/lib/msun/aarch64/fenv.c
@@ -98,3 +98,21 @@ int
{
return (__feupdateenv_int(envp));
}
+
+int
+(feenableexcept)(int mask)
+{
+ return (__feenableexcept_int(mask));
+}
+
+int
+(fedisableexcept)(int mask)
+{
+ return (__fedisableexcept_int(mask));
+}
+
+int
+(fegetexcept)(void)
+{
+ return (__fegetexcept_int());
+}
diff --git a/lib/msun/aarch64/fenv.h b/lib/msun/aarch64/fenv.h
index 32a03ee1eb49..5d47940cf9eb 100644
--- a/lib/msun/aarch64/fenv.h
+++ b/lib/msun/aarch64/fenv.h
@@ -92,6 +92,9 @@ int fegetenv(fenv_t *);
int feholdexcept(fenv_t *);
int fesetenv(const fenv_t *);
int feupdateenv(const fenv_t *);
+int feenableexcept(int);
+int fedisableexcept(int);
+int fegetexcept(void);
#define feclearexcept(a) __feclearexcept_int(a)
#define fegetexceptflag(e, a) __fegetexceptflag_int(e, a)
@@ -104,6 +107,9 @@ int feupdateenv(const fenv_t *);
#define feholdexcept(e) __feholdexcept_int(e)
#define fesetenv(e) __fesetenv_int(e)
#define feupdateenv(e) __feupdateenv_int(e)
+#define feenableexcept(a) __feenableexcept_int(a)
+#define fedisableexcept(a) __fedisableexcept_int(a)
+#define fegetexcept() __fegetexcept_int()
__fenv_static inline int
__feclearexcept_int(int __excepts)
@@ -233,10 +239,8 @@ __feupdateenv_int(const fenv_t *__envp)
#if __BSD_VISIBLE
-/* We currently provide no external definitions of the functions below. */
-
static inline int
-feenableexcept(int __mask)
+__feenableexcept_int(int __mask)
{
fenv_t __old_r, __new_r;
@@ -247,7 +251,7 @@ feenableexcept(int __mask)
}
static inline int
-fedisableexcept(int __mask)
+__fedisableexcept_int(int __mask)
{
fenv_t __old_r, __new_r;
@@ -258,7 +262,7 @@ fedisableexcept(int __mask)
}
static inline int
-fegetexcept(void)
+__fegetexcept_int(void)
{
fenv_t __r;