git: 96a685c229f2 - main - lib/msun/aarch64: provide export file for arch-specific fenv methods

From: Konstantin Belousov <kib_at_FreeBSD.org>
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;