This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: PowerPC: libm ABI update


Adhemerval Zanella <azanella@linux.vnet.ibm.com> writes:

> -#ifndef IS_IN_libm
> +#ifdef IS_IN_libm
> +# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
> +compat_symbol (libm, copysign, copysignl, GLIBC_2_0)
> +compat_symbol (libm, __copysign, __copysignl, GLIBC_2_0)
> +# endif
> +#else
>  # if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
>  compat_symbol (libc, __copysign, __copysignl, GLIBC_2_0);
>  compat_symbol (libc, copysign, copysignl, GLIBC_2_0);

__copysignl isn't an exported symbol.

> diff --git a/sysdeps/powerpc/powerpc32/power7/fpu/s_logb.c b/sysdeps/powerpc/powerpc32/power7/fpu/s_logb.c
> index 71ee148..69cad51 100644
> --- a/sysdeps/powerpc/powerpc32/power7/fpu/s_logb.c
> +++ b/sysdeps/powerpc/powerpc32/power7/fpu/s_logb.c
> @@ -16,7 +16,7 @@
>     License along with the GNU C Library; if not, see
>     <http://www.gnu.org/licenses/>.  */
>  
> -#include "math_private.h"
> +#include <math_ldbl_opt.h>
>  
>  /* This implementation avoids FP to INT conversions by using VSX
>     bitwise instructions over FP values.  */
> @@ -66,10 +66,13 @@ __logb (double x)
>    /* Test to avoid logb_downward (0.0) == -0.0.  */
>    return ret == -0.0 ? 0.0 : ret;
>  }
> -
>  weak_alias (__logb, logb)
> -
>  #ifdef NO_LONG_DOUBLE
>  strong_alias (__logb, __logbl)
>  weak_alias (__logb, logbl)
>  #endif
> +
> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
> +compat_symbol (libm, __logb, __logbl, GLIBC_2_0);
> +compat_symbol (libm, logb, logbl, GLIBC_2_0);
> +#endif

__logbl isn't an exported symbol.

> diff --git a/sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S b/sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S
> index 0765d8a..438e49c 100644
> --- a/sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S
> +++ b/sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S
> @@ -47,7 +47,12 @@ strong_alias (__copysign, __copysignl)
>  weak_alias (__copysign, copysignl)
>  #endif
>  
> -#ifndef IS_IN_libm
> +#ifdef IS_IN_libm
> +# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
> +compat_symbol (libm, copysign, copysignl, GLIBC_2_0)
> +compat_symbol (libm, __copysign, __copysignl, GLIBC_2_0)
> +# endif
> +#else
>  # if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
>  compat_symbol (libc, __copysign, __copysignl, GLIBC_2_0);
>  compat_symbol (libc, copysign, copysignl, GLIBC_2_0);

See above.

> diff --git a/sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S b/sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S
> index 319d07f..7f89439 100644
> --- a/sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S
> +++ b/sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S
> @@ -59,7 +59,12 @@ strong_alias (__finite, __finitef)
>  hidden_def (__finitef)
>  weak_alias (__finitef, finitef)
>  
> -#ifndef IS_IN_libm
> +#ifdef IS_IN_libm
> +# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
> +compat_symbol (libm, __finite, __finitel, GLIBC_2_0)
> +compat_symbol (libm, finite, finitel, GLIBC_2_0)
> +# endif
> +#else
>  # if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
>  compat_symbol (libc, __finite, __finitel, GLIBC_2_0);
>  compat_symbol (libc, finite, finitel, GLIBC_2_0);

Pedantically, __finitel was added to libm in GLIBC_2.1 (though it
doesn't make a difference here, since ppc64 has a GLIBC_2.3 baseline).

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]