Re: [PATCH] newlib: change static to __fenv_static for fe{enable,disable,get}except
"Richard Earnshaw (lists)" <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
On 03/07/2025 13:28, Radek Barton wrote: > Hello. > > As a follow up of https://sourceware.org/pipermail/newlib/2025/021872.html, I am sending alternative approach how to fix the undefine references issue. > This is getting closer, but it still changes the behaviour on non-cygwin platforms. I think I'd introduce a new macro, perhaps something like #ifdef __CYGWIN__ #define __cygwin_fenv_static __fenv_static #else #define __cygwin_fenv_static static #endif then use __cygwin_fenv_static for the cases you want to change. This should then keep the existing behaviour on elf systems. > Radek > > --- > From 4218cbb3360fc45514569703ac9089f0cc2ad748 Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?Radek=20Barto=C5=88?= <[email protected]> > Date: Thu, 3 Jul 2025 12:00:22 +0200 > Subject: [PATCH] newlib: change static to __fenv_static for > fe{enable,disable,get}except > MIME-Version: 1.0 > Content-Type: text/plain; charset=UTF-8 > Content-Transfer-Encoding: 8bit > > This fixes undefined references to those functions when building cygwin1.dll for AArch64. > > Signed-off-by: Radek Bartoň <[email protected]> > --- > newlib/libc/machine/aarch64/sys/fenv.h | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/newlib/libc/machine/aarch64/sys/fenv.h b/newlib/libc/machine/aarch64/sys/fenv.h > index 6b0879269..212612725 100644 > --- a/newlib/libc/machine/aarch64/sys/fenv.h > +++ b/newlib/libc/machine/aarch64/sys/fenv.h > @@ -82,7 +82,7 @@ extern const fenv_t *_fe_dfl_env; > > /* We currently provide no external definitions of the functions below. */ This comment will need updating as well to describe the requirements for cygwin. > > -static inline int > +__fenv_static inline int > feenableexcept(int __mask) > { > fenv_t __old_r, __new_r; > @@ -93,7 +93,7 @@ feenableexcept(int __mask) > return ((__old_r >> _FPUSW_SHIFT) & FE_ALL_EXCEPT); > } > > -static inline int > +__fenv_static inline int > fedisableexcept(int __mask) > { > fenv_t __old_r, __new_r; > @@ -104,7 +104,7 @@ fedisableexcept(int __mask) > return ((__old_r >> _FPUSW_SHIFT) & FE_ALL_EXCEPT); > } > > -static inline int > +__fenv_static inline int > fegetexcept(void) > { > fenv_t __r; R.