[Bug 294143] Variability in defining fegetexcept, feenableexcept, and fedisableexcept across platforms

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 30 Mar 2026 15:53:15 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294143

            Bug ID: 294143
           Summary: Variability in defining  fegetexcept, feenableexcept,
                    and fedisableexcept across platforms
           Product: Base System
           Version: 16.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: marklmi26-fbsd@yahoo.com

This came up in review D56139 but was off topic for the limited purpose of that
code update.

kib wrote in review D56139 :

QUOTE (Overall)
In D56139#1284163, @markmi_dsl-only.net wrote:
QUOTE of Mark
The status of fegetexcept, feenableexcept, and fedisableexcept and their
relationship to __BSD_VISIBLE seems to be rather variable. Some of that
variability may be incorrect and other parts expected. I just note the
variability itself. A quick look seemed to show:

aarch64/fenv.c does not provide any external/exportable definitions for those.
aarch64/fenv.h has just __BSD_VISIBLE conditional __fenv_static based
definitions, nothing for external/exportable support.

arm/fenv.c has definitions not conditional on __BSD_VISIBLE. fegetexcept is
exported, unlike for the others. There is no use of weak references.
arm/fenv.h has __BSD_VISIBLE conditional external/exportable-supported based
code, including for fegetexcept.
arm/fenv.h has fegetexcept for __ARM_PCS_VFP both inside and outside
__BSD_VISIBLE.

powerpc/fenv.h has feenableexcept and fedisableexcept set up for exportable and
conditional on __BSD_VISIBLE but fegetexcept is just for the __fenv_static
definition.
powerpc/fenv.c has unconditional feenableexcept and fedisableexcept and no
fegetexcept. Thre is no use of weak references.

riscv is like powerpc.

x86/fenv.h has the __BSD_VISIBLE conditionality but does not have static
implementations of feenableexcept and fedisableexcept.
i387/fenv.c has unconditional feenableexcept and fedisableexcept with weak
reference indicated and does not have fegetexcept.
amd64/fenv.c does that as well.
END QUOTE of Mark

I have no idea why it grown this way, and what was the rationale of the arch
maintainers when it did.
I am only interested in re-checking that my patch does not change the current
state there. If somebody do it, I would appreciate.
END QOUTE (Overall)

-- 
You are receiving this mail because:
You are the assignee for the bug.