Re: [PATCH v2] 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 19:59, Radek Barton wrote:
> Hello.
> 
> Sending the version with the __cygwin_fenv_static suggestion applied.
> 

This looks OK to me. Corinna, is there anything you want to add?

R.

> Radek
> 
> ---
> From 5c708ec741b4c4dd7676b7030451bc08607ce352 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 v2] 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 | 16 ++++++++++++----
>  1 file changed, 12 insertions(+), 4 deletions(-)
> 
> diff --git a/newlib/libc/machine/aarch64/sys/fenv.h b/newlib/libc/machine/aarch64/sys/fenv.h
> index 6b0879269..1f97791a7 100644
> --- a/newlib/libc/machine/aarch64/sys/fenv.h
> +++ b/newlib/libc/machine/aarch64/sys/fenv.h
> @@ -80,9 +80,17 @@ extern const fenv_t	*_fe_dfl_env;
>  
>  #if __BSD_VISIBLE
>  
> -/* We currently provide no external definitions of the functions below. */
> +/* We currently provide no external definitions of the functions below
> +   except of for Cygwin where those functions are exported by
> +   winsup/cygwin/cygwin.din. */
> +
> +#ifdef __CYGWIN__
> +#define __cygwin_fenv_static __fenv_static
> +#else
> +#define __cygwin_fenv_static static
> +#endif
>  
> -static inline int
> +__cygwin_fenv_static inline int
>  feenableexcept(int __mask)
>  {
>  	fenv_t __old_r, __new_r;
> @@ -93,7 +101,7 @@ feenableexcept(int __mask)
>  	return ((__old_r >> _FPUSW_SHIFT) & FE_ALL_EXCEPT);
>  }
>  
> -static inline int
> +__cygwin_fenv_static inline int
>  fedisableexcept(int __mask)
>  {
>  	fenv_t __old_r, __new_r;
> @@ -104,7 +112,7 @@ fedisableexcept(int __mask)
>  	return ((__old_r >> _FPUSW_SHIFT) & FE_ALL_EXCEPT);
>  }
>  
> -static inline int
> +__cygwin_fenv_static inline int
>  fegetexcept(void)
>  {
>  	fenv_t __r;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.