diff options
Diffstat (limited to 'sysdeps/ia64')
371 files changed, 2815 insertions, 749 deletions
diff --git a/sysdeps/ia64/Implies b/sysdeps/ia64/Implies index 8524257020..22e4836e74 100644 --- a/sysdeps/ia64/Implies +++ b/sysdeps/ia64/Implies @@ -1,5 +1,6 @@ wordsize-64 # ia64 uses IEEE 754 floating point. +ieee754/float128 ieee754/ldbl-96 ieee754/dbl-64 ieee754/flt-32 diff --git a/sysdeps/ia64/Makeconfig b/sysdeps/ia64/Makeconfig index d1d3f6c95c..2f1abe868c 100644 --- a/sysdeps/ia64/Makeconfig +++ b/sysdeps/ia64/Makeconfig @@ -1,2 +1,4 @@ # ia64 does not provide crtbeginT.o, so use crtbegin.o. +prectorT = $(+prector) + +float64x-alias-fcts = yes diff --git a/sysdeps/ia64/Makefile b/sysdeps/ia64/Makefile index 5ebca89afa..a4305d524d 100644 --- a/sysdeps/ia64/Makefile +++ b/sysdeps/ia64/Makefile @@ -1,6 +1,11 @@ # The ia64 `long double' is a distinct type we support. long-double-fcts = yes +ifeq ($(subdir),math) +# sqrtf128 requires soft-fp. +CPPFLAGS += -I../soft-fp +endif + ifeq ($(subdir),gmon) sysdep_routines += _mcount endif diff --git a/sysdeps/ia64/_mcount.S b/sysdeps/ia64/_mcount.S index e4f624d4dd..c757ae7d32 100644 --- a/sysdeps/ia64/_mcount.S +++ b/sysdeps/ia64/_mcount.S @@ -1,5 +1,5 @@ /* Machine-specific calling sequence for `mcount' profiling function. ia64 - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by David Mosberger <davidm@hpl.hp.com> This file is part of the GNU C Library. diff --git a/sysdeps/ia64/atomic-machine.h b/sysdeps/ia64/atomic-machine.h index 78f62ab790..8297571345 100644 --- a/sysdeps/ia64/atomic-machine.h +++ b/sysdeps/ia64/atomic-machine.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2016 Free Software Foundation, Inc. +/* Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -46,6 +46,9 @@ typedef uintmax_t uatomic_max_t; #define __HAVE_64B_ATOMICS 1 #define USE_ATOMIC_COMPILER_BUILTINS 0 +/* XXX Is this actually correct? */ +#define ATOMIC_EXCHANGE_USES_CAS 0 + #define __arch_compare_and_exchange_bool_8_acq(mem, newval, oldval) \ (abort (), 0) diff --git a/sysdeps/ia64/backtrace.c b/sysdeps/ia64/backtrace.c deleted file mode 100644 index 27ce597b39..0000000000 --- a/sysdeps/ia64/backtrace.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/x86_64/backtrace.c> diff --git a/sysdeps/ia64/bits/byteswap-16.h b/sysdeps/ia64/bits/byteswap-16.h deleted file mode 100644 index 9a2c46bd59..0000000000 --- a/sysdeps/ia64/bits/byteswap-16.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Macros to swap the order of bytes in 16-bit integer values. - Copyright (C) 1997-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _BITS_BYTESWAP_H -# error "Never use <bits/byteswap-16.h> directly; include <byteswap.h> instead." -#endif - -#if defined __GNUC__ && __GNUC__ >= 2 -# define __bswap_16(x) \ - (__extension__ \ - ({ unsigned short int __v, __x = (unsigned short int) (x); \ - if (__builtin_constant_p (x)) \ - __v = __bswap_constant_16 (__x); \ - else \ - __asm__ __volatile__ ("shl %0 = %1, 48 ;;" \ - "mux1 %0 = %0, @rev ;;" \ - : "=r" (__v) \ - : "r" ((unsigned short int) (__x))); \ - __v; })) -#else -/* This is better than nothing. */ -static __inline unsigned short int -__bswap_16 (unsigned short int __bsx) -{ - return __bswap_constant_16 (__bsx); -} -#endif diff --git a/sysdeps/ia64/bits/byteswap.h b/sysdeps/ia64/bits/byteswap.h deleted file mode 100644 index 1dd488473f..0000000000 --- a/sysdeps/ia64/bits/byteswap.h +++ /dev/null @@ -1,100 +0,0 @@ -/* Macros to swap the order of bytes in integer values. - Copyright (C) 1997-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H -# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead." -#endif - -#ifndef _BITS_BYTESWAP_H -#define _BITS_BYTESWAP_H 1 - -/* Swap bytes in 16 bit value. */ -#define __bswap_constant_16(x) \ - ((unsigned short int)((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))) - -/* Get __bswap_16. */ -#include <bits/byteswap-16.h> - -/* Swap bytes in 32 bit value. */ -#define __bswap_constant_32(x) \ - ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \ - (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24)) - -#if defined __GNUC__ && __GNUC__ >= 2 -# define __bswap_32(x) \ - (__extension__ \ - ({ unsigned int __v, __x = (x); \ - if (__builtin_constant_p (x)) \ - __v = __bswap_constant_32 (__x); \ - else \ - __asm__ __volatile__ ("shl %0 = %1, 32 ;;" \ - "mux1 %0 = %0, @rev ;;" \ - : "=r" (__v) \ - : "r" ((unsigned int) (__x))); \ - __v; })) -#else -static __inline unsigned int -__bswap_32 (unsigned int __bsx) -{ - return __bswap_constant_32 (__bsx); -} -#endif - - -/* Swap bytes in 64 bit value. */ -#if defined __GNUC__ && __GNUC__ >= 2 -# define __bswap_constant_64(x) \ - (__extension__ ((((x) & 0xff00000000000000ul) >> 56) \ - | (((x) & 0x00ff000000000000ul) >> 40) \ - | (((x) & 0x0000ff0000000000ul) >> 24) \ - | (((x) & 0x000000ff00000000ul) >> 8) \ - | (((x) & 0x00000000ff000000ul) << 8) \ - | (((x) & 0x0000000000ff0000ul) << 24) \ - | (((x) & 0x000000000000ff00ul) << 40) \ - | (((x) & 0x00000000000000fful) << 56))) - -# define __bswap_64(x) \ - (__extension__ \ - ({ unsigned long int __v, __x = (x); \ - if (__builtin_constant_p (x)) \ - __v = __bswap_constant_64 (__x); \ - else \ - __asm__ __volatile__ ("mux1 %0 = %1, @rev ;;" \ - : "=r" (__v) \ - : "r" ((unsigned long int) (__x))); \ - __v; })) - -#else -# define __bswap_constant_64(x) \ - ((((x) & 0xff00000000000000ul) >> 56) \ - | (((x) & 0x00ff000000000000ul) >> 40) \ - | (((x) & 0x0000ff0000000000ul) >> 24) \ - | (((x) & 0x000000ff00000000ul) >> 8) \ - | (((x) & 0x00000000ff000000ul) << 8) \ - | (((x) & 0x0000000000ff0000ul) << 24) \ - | (((x) & 0x000000000000ff00ul) << 40) \ - | (((x) & 0x00000000000000fful) << 56)) - -static __inline unsigned long int -__bswap_64 (unsigned long int __bsx) -{ - return __bswap_constant_64 (__bsx); -} -#endif - -#endif /* _BITS_BYTESWAP_H */ diff --git a/sysdeps/ia64/bits/fenv.h b/sysdeps/ia64/bits/fenv.h index 9bb20de27b..6e4f937981 100644 --- a/sysdeps/ia64/bits/fenv.h +++ b/sysdeps/ia64/bits/fenv.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2016 Free Software Foundation, Inc. +/* Copyright (C) 1999-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -94,3 +94,11 @@ typedef unsigned long int fenv_t; s0, s2, and s3. */ # define FE_NONIEEE_ENV ((const fenv_t *) 0xc009a04d0270037fUL) #endif + +#if __GLIBC_USE (IEC_60559_BFP_EXT) +/* Type representing floating-point control modes. */ +typedef unsigned long int femode_t; + +/* Default floating-point control modes. */ +# define FE_DFL_MODE ((const femode_t *) 0xc009804c0270033fUL) +#endif diff --git a/sysdeps/ia64/bits/floatn.h b/sysdeps/ia64/bits/floatn.h new file mode 100644 index 0000000000..633ee10d65 --- /dev/null +++ b/sysdeps/ia64/bits/floatn.h @@ -0,0 +1,119 @@ +/* Macros to control TS 18661-3 glibc features on ia64. + Copyright (C) 2017-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _BITS_FLOATN_H +#define _BITS_FLOATN_H + +#include <features.h> + +/* Defined to 1 if the current compiler invocation provides a + floating-point type with the IEEE 754 binary128 format, and this + glibc includes corresponding *f128 interfaces for it. The required + libgcc support was added some time after the basic compiler + support. */ +#if __GNUC_PREREQ (4, 4) +# define __HAVE_FLOAT128 1 +#else +# define __HAVE_FLOAT128 0 +#endif + +/* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct + from the default float, double and long double types in this glibc. */ +#if __HAVE_FLOAT128 +# define __HAVE_DISTINCT_FLOAT128 1 +#else +# define __HAVE_DISTINCT_FLOAT128 0 +#endif + +/* Defined to 1 if the current compiler invocation provides a + floating-point type with the right format for _Float64x, and this + glibc includes corresponding *f64x interfaces for it. */ +#define __HAVE_FLOAT64X 1 + +/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format + of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has + the format of _Float128, which must be different from that of long + double. */ +#define __HAVE_FLOAT64X_LONG_DOUBLE 1 + +#ifndef __ASSEMBLER__ + +/* Defined to concatenate the literal suffix to be used with _Float128 + types, if __HAVE_FLOAT128 is 1. */ +# if __HAVE_FLOAT128 +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +/* The literal suffix f128 exists only since GCC 7.0. */ +# define __f128(x) x##q +# else +# define __f128(x) x##f128 +# endif +# endif + +/* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ +# if __HAVE_FLOAT128 +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +/* Add a typedef for older GCC compilers which don't natively support + _Complex _Float128. */ +typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); +# define __CFLOAT128 __cfloat128 +# else +# define __CFLOAT128 _Complex _Float128 +# endif +# endif + +/* The remaining of this file provides support for older compilers. */ +# if __HAVE_FLOAT128 + +/* The type _Float128 exists only since GCC 7.0. */ +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +typedef __float128 _Float128; +# endif + +/* __builtin_huge_valf128 doesn't exist before GCC 7.0. */ +# if !__GNUC_PREREQ (7, 0) +# define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ()) +# endif + +/* Older GCC has only a subset of built-in functions for _Float128 on + ia64, and __builtin_infq is not usable in static initializers. + Converting a narrower sNaN to _Float128 produces a quiet NaN, so + attempts to use _Float128 sNaNs will not work properly with older + compilers. */ +# if !__GNUC_PREREQ (7, 0) +# define __builtin_copysignf128 __builtin_copysignq +# define __builtin_fabsf128 __builtin_fabsq +# define __builtin_inff128() ((_Float128) __builtin_inf ()) +# define __builtin_nanf128(x) ((_Float128) __builtin_nan (x)) +# define __builtin_nansf128(x) ((_Float128) __builtin_nans (x)) +# endif + +/* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*, + e.g.: __builtin_signbitf128, before GCC 6. However, there has never + been a __builtin_signbitf128 in GCC and the type-generic builtin is + only available since GCC 6. */ +# if !__GNUC_PREREQ (6, 0) +# define __builtin_signbitf128 __signbitf128 +# endif + +# endif + +#endif /* !__ASSEMBLER__. */ + +#include <bits/floatn-common.h> + +#endif /* _BITS_FLOATN_H */ diff --git a/sysdeps/ia64/bits/mathdef.h b/sysdeps/ia64/bits/fp-logb.h index 5a31bd3db7..e4cda10f44 100644 --- a/sysdeps/ia64/bits/mathdef.h +++ b/sysdeps/ia64/bits/fp-logb.h @@ -1,4 +1,5 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. IA64 version. + Copyright (C) 2016-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,22 +16,9 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#if !defined _MATH_H && !defined _COMPLEX_H -# error "Never use <bits/mathdef.h> directly; include <math.h> instead" +#ifndef _MATH_H +# error "Never use <bits/fp-logb.h> directly; include <math.h> instead." #endif -#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF -# define _MATH_H_MATHDEF 1 - -/* The IA-64 architecture computes values with the precision of the - used type. */ -typedef float float_t; /* `float' expressions are evaluated as - `float'. */ -typedef double double_t; /* `double' expressions are evaluated as - `double'. */ - -/* The values returned by `ilogb' for 0 and NaN respectively. */ -# define FP_ILOGB0 (-2147483647 - 1) -# define FP_ILOGBNAN 2147483647 - -#endif /* ISO C99 */ +#define __FP_LOGB0_IS_MIN 1 +#define __FP_LOGBNAN_IS_MIN 0 diff --git a/sysdeps/ia64/bits/huge_vall.h b/sysdeps/ia64/bits/huge_vall.h deleted file mode 100644 index 24281792f8..0000000000 --- a/sysdeps/ia64/bits/huge_vall.h +++ /dev/null @@ -1,41 +0,0 @@ -/* `HUGE_VALL' constant for ia64 (where it is infinity). - Used by <stdlib.h> and <math.h> functions for overflow. - Copyright (C) 2000-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _MATH_H -# error "Never use <bits/huge_vall.h> directly; include <math.h> instead." -#endif - -#if __GNUC_PREREQ(3,3) -# define HUGE_VALL (__builtin_huge_vall()) -#elif __GNUC_PREREQ(2,96) -# define HUGE_VALL (__extension__ 0x1.0p32767L) -#else - -# define __HUGE_VALL_bytes { 0,0,0,0,0,0,0, 0x80, 0xff, 0x7f, 0,0,0,0,0,0} - -# define __huge_vall_t union { unsigned char __c[16]; long double __ld; } -# ifdef __GNUC__ -# define HUGE_VALL (__extension__ \ - ((__huge_vall_t) { __c: __HUGE_VALL_bytes }).__ld) -# else /* Not GCC. */ -static __huge_vall_t __huge_vall = { __HUGE_VALL_bytes }; -# define HUGE_VALL (__huge_vall.__ld) -# endif /* GCC. */ - -#endif /* GCC 2.95 */ diff --git a/sysdeps/ia64/bits/link.h b/sysdeps/ia64/bits/link.h index b39db79dc2..abe558f350 100644 --- a/sysdeps/ia64/bits/link.h +++ b/sysdeps/ia64/bits/link.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2016 Free Software Foundation, Inc. +/* Copyright (C) 2005-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/bits/xtitypes.h b/sysdeps/ia64/bits/xtitypes.h index 65141bbb82..60ba7aff54 100644 --- a/sysdeps/ia64/bits/xtitypes.h +++ b/sysdeps/ia64/bits/xtitypes.h @@ -1,5 +1,5 @@ /* bits/xtitypes.h -- Define some types used by <bits/stropts.h>. IA64 - Copyright (C) 2002-2016 Free Software Foundation, Inc. + Copyright (C) 2002-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/bzero.S b/sysdeps/ia64/bzero.S index 34fe4438c6..96329eea9e 100644 --- a/sysdeps/ia64/bzero.S +++ b/sysdeps/ia64/bzero.S @@ -1,6 +1,6 @@ /* Optimized version of the standard bzero() function. This file is part of the GNU C Library. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Dan Pop for Itanium <Dan.Pop@cern.ch>. Rewritten for McKinley by Sverre Jarp, HP Labs/CERN <Sverre.Jarp@cern.ch> diff --git a/sysdeps/ia64/crti.S b/sysdeps/ia64/crti.S index 7861d8a36f..c46e297814 100644 --- a/sysdeps/ia64/crti.S +++ b/sysdeps/ia64/crti.S @@ -1,5 +1,5 @@ /* Special .init and .fini section support for IA64. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -129,6 +129,7 @@ gmon_initializer: .section .init,"ax",@progbits .global _init# + .hidden _init# .proc _init# _init: .prologue @@ -145,6 +146,7 @@ _init: .section .fini,"ax",@progbits .global _fini# + .hidden _fini# .proc _fini# _fini: .prologue diff --git a/sysdeps/ia64/crtn.S b/sysdeps/ia64/crtn.S index 22b9015c80..bc41a94583 100644 --- a/sysdeps/ia64/crtn.S +++ b/sysdeps/ia64/crtn.S @@ -1,5 +1,5 @@ /* Special .init and .fini section support for ARM. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/dl-dtprocnum.h b/sysdeps/ia64/dl-dtprocnum.h index a0a4dcfeea..a02a6e134f 100644 --- a/sysdeps/ia64/dl-dtprocnum.h +++ b/sysdeps/ia64/dl-dtprocnum.h @@ -1,5 +1,5 @@ /* Configuration of lookup functions. IA-64 version. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/dl-fptr.h b/sysdeps/ia64/dl-fptr.h index 95a4bb60f0..26617b7a7b 100644 --- a/sysdeps/ia64/dl-fptr.h +++ b/sysdeps/ia64/dl-fptr.h @@ -1,5 +1,5 @@ /* Function descriptors. IA64 version. - Copyright (C) 2003-2016 Free Software Foundation, Inc. + Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/dl-lookupcfg.h b/sysdeps/ia64/dl-lookupcfg.h index c0e6200dd6..48f91202c4 100644 --- a/sysdeps/ia64/dl-lookupcfg.h +++ b/sysdeps/ia64/dl-lookupcfg.h @@ -1,5 +1,5 @@ /* Configuration of lookup functions. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/dl-machine.h b/sysdeps/ia64/dl-machine.h index 3e934fe30e..61d7bb5795 100644 --- a/sysdeps/ia64/dl-machine.h +++ b/sysdeps/ia64/dl-machine.h @@ -1,5 +1,5 @@ /* Machine-dependent ELF dynamic relocation inline functions. IA-64 version. - Copyright (C) 1995-2016 Free Software Foundation, Inc. + Copyright (C) 1995-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -45,7 +45,7 @@ __ia64_init_bootstrap_fdesc_table (struct link_map *map) } #define ELF_MACHINE_BEFORE_RTLD_RELOC(dynamic_info) \ - __ia64_init_bootstrap_fdesc_table (&bootstrap_map); + __ia64_init_bootstrap_fdesc_table (BOOTSTRAP_MAP); /* Return nonzero iff ELF header is compatible with the running host. */ static inline int __attribute__ ((unused)) @@ -333,6 +333,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) /* Fixup a PLT entry to bounce directly to the function at VALUE. */ static inline struct fdesc __attribute__ ((always_inline)) elf_machine_fixup_plt (struct link_map *l, lookup_t t, + const ElfW(Sym) *refsym, const ElfW(Sym) *sym, const Elf64_Rela *reloc, Elf64_Addr *reloc_addr, struct fdesc value) { @@ -418,13 +419,13 @@ elf_machine_rela (struct link_map *map, /* RESOLVE_MAP() will return NULL if it fail to locate the symbol. */ if ((sym_map = RESOLVE_MAP (&sym, version, r_type))) { - value = sym_map->l_addr + sym->st_value + reloc->r_addend; + value = SYMBOL_ADDRESS (sym_map, sym, true) + reloc->r_addend; if (R_IA64_TYPE (r_type) == R_IA64_TYPE (R_IA64_DIR64LSB)) ;/* No adjustment. */ else if (r_type == R_IA64_IPLTLSB) { - elf_machine_fixup_plt (NULL, NULL, reloc, reloc_addr, + elf_machine_fixup_plt (NULL, NULL, NULL, NULL, reloc, reloc_addr, DL_FIXUP_MAKE_VALUE (sym_map, value)); return; } diff --git a/sysdeps/ia64/dl-sysdep.h b/sysdeps/ia64/dl-sysdep.h index 4a45e20630..0b571a5cc7 100644 --- a/sysdeps/ia64/dl-sysdep.h +++ b/sysdeps/ia64/dl-sysdep.h @@ -1,5 +1,5 @@ /* System-specific settings for dynamic linker code. IA-64 version. - Copyright (C) 2002-2016 Free Software Foundation, Inc. + Copyright (C) 2002-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/dl-tls.h b/sysdeps/ia64/dl-tls.h index bc008882bf..d589a5a233 100644 --- a/sysdeps/ia64/dl-tls.h +++ b/sysdeps/ia64/dl-tls.h @@ -1,5 +1,5 @@ /* Thread-local storage handling in the ELF dynamic linker. IA-64 version. - Copyright (C) 2002-2016 Free Software Foundation, Inc. + Copyright (C) 2002-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -28,6 +28,3 @@ #define DONT_USE_TLS_INDEX 1 extern void *__tls_get_addr (size_t m, size_t offset); - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/ia64/dl-trampoline.S b/sysdeps/ia64/dl-trampoline.S index b315e856f0..fc24c425bf 100644 --- a/sysdeps/ia64/dl-trampoline.S +++ b/sysdeps/ia64/dl-trampoline.S @@ -1,5 +1,5 @@ /* PLT trampolines. ia64 version. - Copyright (C) 2005-2016 Free Software Foundation, Inc. + Copyright (C) 2005-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/float128-abi.h b/sysdeps/ia64/float128-abi.h new file mode 100644 index 0000000000..6b954cc673 --- /dev/null +++ b/sysdeps/ia64/float128-abi.h @@ -0,0 +1,2 @@ +/* ABI version for _Float128 ABI introduction. */ +#define FLOAT128_VERSION GLIBC_2.26 diff --git a/sysdeps/ia64/fpu/bits/math-finite.h b/sysdeps/ia64/fpu/bits/math-finite.h index 9fb6d51c11..7f52bc388b 100644 --- a/sysdeps/ia64/fpu/bits/math-finite.h +++ b/sysdeps/ia64/fpu/bits/math-finite.h @@ -1,5 +1,5 @@ /* Entry points to finite-math-only compiler runs. - Copyright (C) 2011-2016 Free Software Foundation, Inc. + Copyright (C) 2011-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/fpu/bits/mathinline.h b/sysdeps/ia64/fpu/bits/mathinline.h deleted file mode 100644 index b9db888ab6..0000000000 --- a/sysdeps/ia64/fpu/bits/mathinline.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Inline math functions for ia64. - Copyright (C) 2004-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _MATH_H -# error "Never use <bits/mathinline.h> directly; include <math.h> instead." -#endif - -#ifndef __extern_inline -# define __MATH_INLINE __inline -#else -# define __MATH_INLINE __extern_inline -#endif - -#if defined __USE_ISOC99 && defined __GNUC__ && __GNUC__ >= 2 -/* The gcc, version 2.7 or below, has problems with all this inlining - code. So disable it for this version of the compiler. */ -# if __GNUC_PREREQ (2, 8) -/* Test for negative number. Used in the signbit() macro. */ -__MATH_INLINE int -__NTH (__signbitf (float __x)) -{ - __extension__ union { float __f; int __i; } __u = { __f: __x }; - return __u.__i < 0; -} -__MATH_INLINE int -__NTH (__signbit (double __x)) -{ - __extension__ union { double __d; int __i[2]; } __u = { __d: __x }; - return __u.__i[1] < 0; -} -__MATH_INLINE int -__NTH (__signbitl (long double __x)) -{ - __extension__ union { long double __l; int __i[3]; } __u = { __l: __x }; - return (__u.__i[2] & 0x8000) != 0; -} -# endif -#endif diff --git a/sysdeps/ia64/fpu/e_acos.S b/sysdeps/ia64/fpu/e_acos.S index c2b31ab85e..ad7901612c 100644 --- a/sysdeps/ia64/fpu/e_acos.S +++ b/sysdeps/ia64/fpu/e_acos.S @@ -822,6 +822,7 @@ acos_abs_gt_1: } ;; GLOBAL_LIBM_END(acos) +libm_alias_double_other (acos, acos) diff --git a/sysdeps/ia64/fpu/e_acosf.S b/sysdeps/ia64/fpu/e_acosf.S index bdcac59d22..c0dac3df10 100644 --- a/sysdeps/ia64/fpu/e_acosf.S +++ b/sysdeps/ia64/fpu/e_acosf.S @@ -600,6 +600,7 @@ ACOSF_ABS_ONE: } GLOBAL_LIBM_END(acosf) +libm_alias_float_other (acos, acos) // Stack operations when calling error support. diff --git a/sysdeps/ia64/fpu/e_acosh.S b/sysdeps/ia64/fpu/e_acosh.S index fb25fa0053..f8c75e427d 100644 --- a/sysdeps/ia64/fpu/e_acosh.S +++ b/sysdeps/ia64/fpu/e_acosh.S @@ -1139,6 +1139,7 @@ ACOSH_LESS_ONE: ;; GLOBAL_LIBM_END(acosh) +libm_alias_double_other (acosh, acosh) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_acoshf.S b/sysdeps/ia64/fpu/e_acoshf.S index 58ef5f2adb..4affbdf5f0 100644 --- a/sysdeps/ia64/fpu/e_acoshf.S +++ b/sysdeps/ia64/fpu/e_acoshf.S @@ -967,6 +967,7 @@ ACOSH_LESS_ONE: ;; GLOBAL_LIBM_END(acoshf) +libm_alias_float_other (acosh, acosh) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_acoshl.S b/sysdeps/ia64/fpu/e_acoshl.S index 9bd556389b..b5c58884f2 100644 --- a/sysdeps/ia64/fpu/e_acoshl.S +++ b/sysdeps/ia64/fpu/e_acoshl.S @@ -1650,6 +1650,7 @@ acoshl_lt_pone: };; GLOBAL_LIBM_END(acoshl) +libm_alias_ldouble_other (acosh, acosh) diff --git a/sysdeps/ia64/fpu/e_acosl.S b/sysdeps/ia64/fpu/e_acosl.S index 8c5155a2ec..107266b6a3 100644 --- a/sysdeps/ia64/fpu/e_acosl.S +++ b/sysdeps/ia64/fpu/e_acosl.S @@ -2481,6 +2481,7 @@ acosl_SPECIAL_CASES: GLOBAL_LIBM_END(acosl) +libm_alias_ldouble_other (acos, acos) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_asin.S b/sysdeps/ia64/fpu/e_asin.S index f995c597f4..4de08e59d5 100644 --- a/sysdeps/ia64/fpu/e_asin.S +++ b/sysdeps/ia64/fpu/e_asin.S @@ -798,6 +798,7 @@ asin_abs_gt_1: } ;; GLOBAL_LIBM_END(asin) +libm_alias_double_other (asin, asin) diff --git a/sysdeps/ia64/fpu/e_asinf.S b/sysdeps/ia64/fpu/e_asinf.S index 74a18dd24a..a4b7fc2f27 100644 --- a/sysdeps/ia64/fpu/e_asinf.S +++ b/sysdeps/ia64/fpu/e_asinf.S @@ -583,6 +583,7 @@ ASINF_ABS_ONE: ;; GLOBAL_LIBM_END(asinf) +libm_alias_float_other (asin, asin) // Stack operations when calling error support. // (1) (2) diff --git a/sysdeps/ia64/fpu/e_asinl.S b/sysdeps/ia64/fpu/e_asinl.S index 792a0c6578..18153d427f 100644 --- a/sysdeps/ia64/fpu/e_asinl.S +++ b/sysdeps/ia64/fpu/e_asinl.S @@ -2457,6 +2457,7 @@ SMALL_S: GLOBAL_LIBM_END(asinl) +libm_alias_ldouble_other (asin, asin) diff --git a/sysdeps/ia64/fpu/e_atan2.S b/sysdeps/ia64/fpu/e_atan2.S index 7a17fbfed4..1786794e7d 100644 --- a/sysdeps/ia64/fpu/e_atan2.S +++ b/sysdeps/ia64/fpu/e_atan2.S @@ -985,6 +985,7 @@ ATAN2_ERROR: ;; } GLOBAL_IEEE754_END(atan2) +libm_alias_double_other (__atan2, atan2) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_atan2f.S b/sysdeps/ia64/fpu/e_atan2f.S index 5ff561d7ca..6b318a5ced 100644 --- a/sysdeps/ia64/fpu/e_atan2f.S +++ b/sysdeps/ia64/fpu/e_atan2f.S @@ -826,6 +826,7 @@ ATAN2F_XY_INF_NAN_ZERO: GLOBAL_IEEE754_END(atan2f) +libm_alias_float_other (__atan2, atan2) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_atanh.S b/sysdeps/ia64/fpu/e_atanh.S index 4ae5ee6926..45760af71d 100644 --- a/sysdeps/ia64/fpu/e_atanh.S +++ b/sysdeps/ia64/fpu/e_atanh.S @@ -1008,6 +1008,7 @@ atanh_ge_one: ;; GLOBAL_LIBM_END(atanh) +libm_alias_double_other (atanh, atanh) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_atanhf.S b/sysdeps/ia64/fpu/e_atanhf.S index 1ec1408e35..3c550f9dc4 100644 --- a/sysdeps/ia64/fpu/e_atanhf.S +++ b/sysdeps/ia64/fpu/e_atanhf.S @@ -781,6 +781,7 @@ atanhf_ge_one: ;; GLOBAL_LIBM_END(atanhf) +libm_alias_float_other (atanh, atanh) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_atanhl.S b/sysdeps/ia64/fpu/e_atanhl.S index 5d828d5ffa..96c6360a2b 100644 --- a/sysdeps/ia64/fpu/e_atanhl.S +++ b/sysdeps/ia64/fpu/e_atanhl.S @@ -1101,6 +1101,7 @@ atanhl_gt_one: };; GLOBAL_LIBM_END(atanhl) +libm_alias_ldouble_other (atanh, atanh) LOCAL_LIBM_ENTRY(__libm_error_region) .prologue diff --git a/sysdeps/ia64/fpu/e_cosh.S b/sysdeps/ia64/fpu/e_cosh.S index 885456b389..dbac1804ff 100644 --- a/sysdeps/ia64/fpu/e_cosh.S +++ b/sysdeps/ia64/fpu/e_cosh.S @@ -811,6 +811,7 @@ COSH_UNORM: ;; GLOBAL_IEEE754_END(cosh) +libm_alias_double_other (__cosh, cosh) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_coshf.S b/sysdeps/ia64/fpu/e_coshf.S index 97cb4e1771..51a87b840e 100644 --- a/sysdeps/ia64/fpu/e_coshf.S +++ b/sysdeps/ia64/fpu/e_coshf.S @@ -652,6 +652,7 @@ COSH_UNORM: ;; GLOBAL_IEEE754_END(coshf) +libm_alias_float_other (__cosh, cosh) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_coshl.S b/sysdeps/ia64/fpu/e_coshl.S index 43da1ab04d..0d18f2d06a 100644 --- a/sysdeps/ia64/fpu/e_coshl.S +++ b/sysdeps/ia64/fpu/e_coshl.S @@ -1032,6 +1032,7 @@ COSH_HUGE: ;; GLOBAL_IEEE754_END(coshl) +libm_alias_ldouble_other (__cosh, cosh) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_exp.S b/sysdeps/ia64/fpu/e_exp.S index f17bc26081..c8cebeb177 100644 --- a/sysdeps/ia64/fpu/e_exp.S +++ b/sysdeps/ia64/fpu/e_exp.S @@ -738,6 +738,7 @@ EXP_UNDERFLOW_ZERO: ;; GLOBAL_IEEE754_END(exp) +libm_alias_double_other (__exp, exp) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_exp10.S b/sysdeps/ia64/fpu/e_exp10.S index eafa59dd7c..f12344bee3 100644 --- a/sysdeps/ia64/fpu/e_exp10.S +++ b/sysdeps/ia64/fpu/e_exp10.S @@ -87,6 +87,8 @@ // p6-p12 // +#include <shlib-compat.h> + GR_TBL_START = r2 GR_LOG_TBL = r3 @@ -534,7 +536,10 @@ OUT_RANGE_exp10: ;; GLOBAL_IEEE754_END(exp10) -weak_alias (exp10, pow10) +libm_alias_double_other (__exp10, exp10) +#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27) +compat_symbol (libm, exp10, pow10, GLIBC_2_2) +#endif LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_exp10f.S b/sysdeps/ia64/fpu/e_exp10f.S index fa54e9039f..67218c737f 100644 --- a/sysdeps/ia64/fpu/e_exp10f.S +++ b/sysdeps/ia64/fpu/e_exp10f.S @@ -86,6 +86,8 @@ // p6-p12 // +#include <shlib-compat.h> + GR_TBL_START = r2 GR_LOG_TBL = r3 @@ -486,7 +488,10 @@ OUT_RANGE_exp10: ;; GLOBAL_IEEE754_END(exp10f) -weak_alias (exp10f, pow10f) +libm_alias_float_other (__exp10, exp10) +#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27) +compat_symbol (libm, exp10f, pow10f, GLIBC_2_2) +#endif LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_exp10l.S b/sysdeps/ia64/fpu/e_exp10l.S index f72d547ebf..0cc54e2b58 100644 --- a/sysdeps/ia64/fpu/e_exp10l.S +++ b/sysdeps/ia64/fpu/e_exp10l.S @@ -85,6 +85,8 @@ // p6-p8, p11-p14 // +#include <shlib-compat.h> + FR_X = f10 FR_Y = f1 @@ -747,7 +749,10 @@ OUT_RANGE_EXP10: ;; GLOBAL_IEEE754_END(exp10l) -weak_alias (exp10l, pow10l) +libm_alias_ldouble_other (__exp10, exp10) +#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27) +compat_symbol (libm, exp10l, pow10l, GLIBC_2_2) +#endif LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_exp2.S b/sysdeps/ia64/fpu/e_exp2.S index 54f652e384..18711866a1 100644 --- a/sysdeps/ia64/fpu/e_exp2.S +++ b/sysdeps/ia64/fpu/e_exp2.S @@ -494,6 +494,7 @@ OUT_RANGE_exp2: ;; GLOBAL_LIBM_END(exp2) +libm_alias_double_other (exp2, exp2) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_exp2f.S b/sysdeps/ia64/fpu/e_exp2f.S index 36354ae3bd..77bc6ea686 100644 --- a/sysdeps/ia64/fpu/e_exp2f.S +++ b/sysdeps/ia64/fpu/e_exp2f.S @@ -221,7 +221,7 @@ LOCAL_OBJECT_END(T_table) .section .text -GLOBAL_LIBM_ENTRY(exp2f) +GLOBAL_LIBM_ENTRY(__exp2f) {.mfi @@ -468,7 +468,14 @@ OUT_RANGE_exp2: } ;; -GLOBAL_LIBM_END(exp2f) +GLOBAL_LIBM_END(__exp2f) +libm_alias_float_other (__exp2, exp2) +#ifdef SHARED +.symver __exp2f,exp2f@@GLIBC_2.27 +.weak __exp2f_compat +.set __exp2f_compat,__exp2f +.symver __exp2f_compat,exp2f@GLIBC_2.2 +#endif LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/halfulp.c b/sysdeps/ia64/fpu/e_exp2f_data.c index 1cc8931700..1cc8931700 100644 --- a/sysdeps/ia64/fpu/halfulp.c +++ b/sysdeps/ia64/fpu/e_exp2f_data.c diff --git a/sysdeps/ia64/fpu/e_exp2l.S b/sysdeps/ia64/fpu/e_exp2l.S index 743ed3558b..c2912ab6de 100644 --- a/sysdeps/ia64/fpu/e_exp2l.S +++ b/sysdeps/ia64/fpu/e_exp2l.S @@ -746,6 +746,7 @@ OUT_RANGE_exp2l: GLOBAL_LIBM_END(exp2l) +libm_alias_ldouble_other (exp2, exp2) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_expf.S b/sysdeps/ia64/fpu/e_expf.S index 75f918f78e..c95ccafee3 100644 --- a/sysdeps/ia64/fpu/e_expf.S +++ b/sysdeps/ia64/fpu/e_expf.S @@ -657,6 +657,13 @@ EXP_UNDERFLOW_ZERO: ;; GLOBAL_IEEE754_END(expf) +libm_alias_float_other (__exp, exp) +#ifdef SHARED +.symver expf,expf@@GLIBC_2.27 +.weak __expf_compat +.set __expf_compat,__expf +.symver __expf_compat,expf@GLIBC_2.2 +#endif LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_fmod.S b/sysdeps/ia64/fpu/e_fmod.S index c29056e34a..3eaaf49fbb 100644 --- a/sysdeps/ia64/fpu/e_fmod.S +++ b/sysdeps/ia64/fpu/e_fmod.S @@ -499,6 +499,7 @@ FMOD_Y_ZERO: } GLOBAL_IEEE754_END(fmod) +libm_alias_double_other (__fmod, fmod) LOCAL_LIBM_ENTRY(__libm_error_region) .prologue diff --git a/sysdeps/ia64/fpu/e_fmodf.S b/sysdeps/ia64/fpu/e_fmodf.S index f5aec469ca..149e27f1a1 100644 --- a/sysdeps/ia64/fpu/e_fmodf.S +++ b/sysdeps/ia64/fpu/e_fmodf.S @@ -514,6 +514,7 @@ EXP_ERROR_RETURN: } GLOBAL_IEEE754_END(fmodf) +libm_alias_float_other (__fmod, fmod) LOCAL_LIBM_ENTRY(__libm_error_region) .prologue diff --git a/sysdeps/ia64/fpu/e_fmodl.S b/sysdeps/ia64/fpu/e_fmodl.S index 258e4ef8a6..3bd9b77812 100644 --- a/sysdeps/ia64/fpu/e_fmodl.S +++ b/sysdeps/ia64/fpu/e_fmodl.S @@ -606,6 +606,7 @@ FMOD_B_ZERO: ;; GLOBAL_IEEE754_END(fmodl) +libm_alias_ldouble_other (__fmod, fmod) LOCAL_LIBM_ENTRY(__libm_error_region) .prologue diff --git a/sysdeps/ia64/fpu/e_hypot.S b/sysdeps/ia64/fpu/e_hypot.S index 146bb2fb1b..34c2761dc3 100644 --- a/sysdeps/ia64/fpu/e_hypot.S +++ b/sysdeps/ia64/fpu/e_hypot.S @@ -385,6 +385,7 @@ GLOBAL_IEEE754_ENTRY(hypot) (p9) br.ret.sptk b0;; } GLOBAL_IEEE754_END(hypot) +libm_alias_double_other (__hypot, hypot) LOCAL_LIBM_ENTRY(__libm_error_region) .prologue diff --git a/sysdeps/ia64/fpu/e_hypotf.S b/sysdeps/ia64/fpu/e_hypotf.S index 43a2fe4a27..6c6f5782ff 100644 --- a/sysdeps/ia64/fpu/e_hypotf.S +++ b/sysdeps/ia64/fpu/e_hypotf.S @@ -338,6 +338,7 @@ GLOBAL_IEEE754_ENTRY(hypotf) (p9) br.ret.sptk b0;; } GLOBAL_IEEE754_END(hypotf) +libm_alias_float_other (__hypot, hypot) LOCAL_LIBM_ENTRY(__libm_error_region) .prologue diff --git a/sysdeps/ia64/fpu/e_hypotl.S b/sysdeps/ia64/fpu/e_hypotl.S index 07bb6860ed..9a3f31485f 100644 --- a/sysdeps/ia64/fpu/e_hypotl.S +++ b/sysdeps/ia64/fpu/e_hypotl.S @@ -422,6 +422,7 @@ GLOBAL_IEEE754_ENTRY(hypotl) (p9) br.ret.sptk b0;; } GLOBAL_IEEE754_END(hypotl) +libm_alias_ldouble_other (__hypot, hypot) LOCAL_LIBM_ENTRY(__libm_error_region) .prologue diff --git a/sysdeps/ia64/fpu/e_lgamma_r.c b/sysdeps/ia64/fpu/e_lgamma_r.c index cb9efbfe02..8ae6df3419 100644 --- a/sysdeps/ia64/fpu/e_lgamma_r.c +++ b/sysdeps/ia64/fpu/e_lgamma_r.c @@ -60,7 +60,7 @@ double __ieee754_lgamma_r(double x, int* signgam) { return __libm_lgamma(x, signgam, sizeof(*signgam)); } -weak_alias (__ieee754_lgamma_r, lgamma_r) +libm_alias_double_r (__ieee754_lgamma, lgamma, _r) #ifndef _LIBC double __ieee754_gamma_r(double x, int* signgam) diff --git a/sysdeps/ia64/fpu/e_lgammaf_r.c b/sysdeps/ia64/fpu/e_lgammaf_r.c index 44911aeabd..9af43702ad 100644 --- a/sysdeps/ia64/fpu/e_lgammaf_r.c +++ b/sysdeps/ia64/fpu/e_lgammaf_r.c @@ -60,7 +60,7 @@ float __ieee754_lgammaf_r(float x, int* signgam) { return __libm_lgammaf(x, signgam, sizeof(*signgam)); } -weak_alias (__ieee754_lgammaf_r, lgammaf_r) +libm_alias_float_r (__ieee754_lgamma, lgamma, _r) #ifndef _LIBC float __ieee754_gammaf_r(float x, int* signgam) diff --git a/sysdeps/ia64/fpu/e_lgammal_r.c b/sysdeps/ia64/fpu/e_lgammal_r.c index 4451201b77..1f227c86db 100644 --- a/sysdeps/ia64/fpu/e_lgammal_r.c +++ b/sysdeps/ia64/fpu/e_lgammal_r.c @@ -59,7 +59,7 @@ long double __ieee754_lgammal_r(long double x, int* signgam) { return __libm_lgammal(x, signgam, sizeof(*signgam)); } -weak_alias (__ieee754_lgammal_r, lgammal_r) +libm_alias_ldouble_r (__ieee754_lgamma, lgamma, _r) #ifndef _LIBC long double __ieee754_gammal_r(long double x, int* signgam) diff --git a/sysdeps/ia64/fpu/e_log.S b/sysdeps/ia64/fpu/e_log.S index 50eed956da..0b63ec43c5 100644 --- a/sysdeps/ia64/fpu/e_log.S +++ b/sysdeps/ia64/fpu/e_log.S @@ -1386,6 +1386,7 @@ GLOBAL_IEEE754_ENTRY(log10) br.cond.sptk log_log10_common };; GLOBAL_IEEE754_END(log10) +libm_alias_double_other (__log10, log10) GLOBAL_IEEE754_ENTRY(log) @@ -1668,6 +1669,7 @@ log_libm_err: nop.i 0 };; GLOBAL_IEEE754_END(log) +libm_alias_double_other (__log, log) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_log2.S b/sysdeps/ia64/fpu/e_log2.S index c2b37a65ce..17893a2ede 100644 --- a/sysdeps/ia64/fpu/e_log2.S +++ b/sysdeps/ia64/fpu/e_log2.S @@ -654,6 +654,7 @@ SPECIAL_LOG2: } GLOBAL_LIBM_END(log2) +libm_alias_double_other (log2, log2) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_log2f.S b/sysdeps/ia64/fpu/e_log2f.S index 2c3f18f360..5ca3bd61ea 100644 --- a/sysdeps/ia64/fpu/e_log2f.S +++ b/sysdeps/ia64/fpu/e_log2f.S @@ -252,7 +252,7 @@ LOCAL_OBJECT_END(T_table) .section .text -GLOBAL_LIBM_ENTRY(log2f) +GLOBAL_LIBM_ENTRY(__log2f) { .mfi alloc r32=ar.pfs,1,4,4,0 @@ -491,7 +491,14 @@ SPECIAL_log2f: br.ret.sptk b0;; } -GLOBAL_LIBM_END(log2f) +GLOBAL_LIBM_END(__log2f) +libm_alias_float_other (__log2, log2) +#ifdef SHARED +.symver __log2f,log2f@@GLIBC_2.27 +.weak __log2f_compat +.set __log2f_compat,__log2f +.symver __log2f_compat,log2f@GLIBC_2.2 +#endif LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/mpexp.c b/sysdeps/ia64/fpu/e_log2f_data.c index 1cc8931700..1cc8931700 100644 --- a/sysdeps/ia64/fpu/mpexp.c +++ b/sysdeps/ia64/fpu/e_log2f_data.c diff --git a/sysdeps/ia64/fpu/e_log2l.S b/sysdeps/ia64/fpu/e_log2l.S index 4d5a828f58..51bfd9a278 100644 --- a/sysdeps/ia64/fpu/e_log2l.S +++ b/sysdeps/ia64/fpu/e_log2l.S @@ -760,6 +760,7 @@ LOG2_PSEUDO_ZERO: GLOBAL_IEEE754_END(log2l) +libm_alias_ldouble_other (__log2, log2) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_logf.S b/sysdeps/ia64/fpu/e_logf.S index 2dda2186d0..d299242198 100644 --- a/sysdeps/ia64/fpu/e_logf.S +++ b/sysdeps/ia64/fpu/e_logf.S @@ -842,6 +842,7 @@ GLOBAL_IEEE754_ENTRY(log10f) br.cond.sptk logf_log10f_common };; GLOBAL_IEEE754_END(log10f) +libm_alias_float_other (__log10, log10) GLOBAL_IEEE754_ENTRY(logf) { .mfi @@ -1088,6 +1089,13 @@ logf_libm_err: nop.i 0 };; GLOBAL_IEEE754_END(logf) +libm_alias_float_other (__log, log) +#ifdef SHARED +.symver logf,logf@@GLIBC_2.27 +.weak __logf_compat +.set __logf_compat,__logf +.symver __logf_compat,logf@GLIBC_2.2 +#endif // Stack operations when calling error support. diff --git a/sysdeps/ia64/fpu/mplog.c b/sysdeps/ia64/fpu/e_logf_data.c index 1cc8931700..1cc8931700 100644 --- a/sysdeps/ia64/fpu/mplog.c +++ b/sysdeps/ia64/fpu/e_logf_data.c diff --git a/sysdeps/ia64/fpu/e_logl.S b/sysdeps/ia64/fpu/e_logl.S index 996f64aaee..2ffe106a26 100644 --- a/sysdeps/ia64/fpu/e_logl.S +++ b/sysdeps/ia64/fpu/e_logl.S @@ -633,6 +633,7 @@ GLOBAL_IEEE754_ENTRY(logl) ;; GLOBAL_IEEE754_END(logl) +libm_alias_ldouble_other (__log, log) GLOBAL_IEEE754_ENTRY(log10l) @@ -1145,6 +1146,7 @@ LOGL_64_negative: GLOBAL_IEEE754_END(log10l) +libm_alias_ldouble_other (__log10, log10) LOCAL_LIBM_ENTRY(__libm_error_region) .prologue diff --git a/sysdeps/ia64/fpu/e_pow.S b/sysdeps/ia64/fpu/e_pow.S index 765f509695..3b402f3f14 100644 --- a/sysdeps/ia64/fpu/e_pow.S +++ b/sysdeps/ia64/fpu/e_pow.S @@ -2234,6 +2234,7 @@ POW_OVER_UNDER_ERROR: ;; GLOBAL_LIBM_END(pow) +libm_alias_double_other (pow, pow) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_powf.S b/sysdeps/ia64/fpu/e_powf.S index d61bc79e5e..7449f8c7d5 100644 --- a/sysdeps/ia64/fpu/e_powf.S +++ b/sysdeps/ia64/fpu/e_powf.S @@ -868,7 +868,7 @@ data8 0xEAC0C6E7DD24392F , 0x00003FFF LOCAL_OBJECT_END(pow_tbl2) .section .text -GLOBAL_LIBM_ENTRY(powf) +GLOBAL_LIBM_ENTRY(__powf) // Get exponent of x. Will be used to calculate K. { .mfi @@ -2002,7 +2002,14 @@ POW_OVER_UNDER_ERROR: } ;; -GLOBAL_LIBM_END(powf) +GLOBAL_LIBM_END(__powf) +libm_alias_float_other (__pow, pow) +#ifdef SHARED +.symver __powf,powf@@GLIBC_2.27 +.weak __powf_compat +.set __powf_compat,__powf +.symver __powf_compat,powf@GLIBC_2.2 +#endif LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/slowexp.c b/sysdeps/ia64/fpu/e_powf_log2_data.c index 1cc8931700..1cc8931700 100644 --- a/sysdeps/ia64/fpu/slowexp.c +++ b/sysdeps/ia64/fpu/e_powf_log2_data.c diff --git a/sysdeps/ia64/fpu/e_powl.S b/sysdeps/ia64/fpu/e_powl.S index 3f93f6090e..4596322f15 100644 --- a/sysdeps/ia64/fpu/e_powl.S +++ b/sysdeps/ia64/fpu/e_powl.S @@ -2755,6 +2755,7 @@ POWL_64_SQRT: ;; GLOBAL_LIBM_END(powl) +libm_alias_ldouble_other (pow, pow) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_remainder.S b/sysdeps/ia64/fpu/e_remainder.S index 3cd5aac578..acefe7b9c9 100644 --- a/sysdeps/ia64/fpu/e_remainder.S +++ b/sysdeps/ia64/fpu/e_remainder.S @@ -529,6 +529,7 @@ EXP_ERROR_RETURN: } GLOBAL_IEEE754_END(remainder) +libm_alias_double_other (__remainder, remainder) weak_alias (__remainder, drem) diff --git a/sysdeps/ia64/fpu/e_remainderf.S b/sysdeps/ia64/fpu/e_remainderf.S index df4cfdddc8..5b8d029d9a 100644 --- a/sysdeps/ia64/fpu/e_remainderf.S +++ b/sysdeps/ia64/fpu/e_remainderf.S @@ -548,6 +548,7 @@ EXP_ERROR_RETURN: } GLOBAL_IEEE754_END(remainderf) +libm_alias_float_other (__remainder, remainder) weak_alias (__remainderf, dremf) diff --git a/sysdeps/ia64/fpu/e_remainderl.S b/sysdeps/ia64/fpu/e_remainderl.S index d9a9ee8d29..bdc2b8fae4 100644 --- a/sysdeps/ia64/fpu/e_remainderl.S +++ b/sysdeps/ia64/fpu/e_remainderl.S @@ -557,6 +557,7 @@ EXP_ERROR_RETURN: } GLOBAL_IEEE754_END(remainderl) +libm_alias_ldouble_other (__remainder, remainder) weak_alias (__remainderl, dreml) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_sinh.S b/sysdeps/ia64/fpu/e_sinh.S index f60907b72b..2167c78edc 100644 --- a/sysdeps/ia64/fpu/e_sinh.S +++ b/sysdeps/ia64/fpu/e_sinh.S @@ -850,6 +850,7 @@ SINH_UNORM: ;; GLOBAL_IEEE754_END(sinh) +libm_alias_double_other (__sinh, sinh) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_sinhf.S b/sysdeps/ia64/fpu/e_sinhf.S index 6d808cb478..08b873ecb7 100644 --- a/sysdeps/ia64/fpu/e_sinhf.S +++ b/sysdeps/ia64/fpu/e_sinhf.S @@ -689,6 +689,7 @@ SINH_UNORM: ;; GLOBAL_IEEE754_END(sinhf) +libm_alias_float_other (__sinh, sinh) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_sinhl.S b/sysdeps/ia64/fpu/e_sinhl.S index b560999514..65cfbf4066 100644 --- a/sysdeps/ia64/fpu/e_sinhl.S +++ b/sysdeps/ia64/fpu/e_sinhl.S @@ -1054,6 +1054,7 @@ SINH_HUGE: ;; GLOBAL_IEEE754_END(sinhl) +libm_alias_ldouble_other (__sinh, sinh) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_sqrt.S b/sysdeps/ia64/fpu/e_sqrt.S index da4e8ccb6d..38d8a505ee 100644 --- a/sysdeps/ia64/fpu/e_sqrt.S +++ b/sysdeps/ia64/fpu/e_sqrt.S @@ -252,6 +252,7 @@ GLOBAL_IEEE754_ENTRY(sqrt) } // END DOUBLE PRECISION MINIMUM LATENCY SQUARE ROOT ALGORITHM GLOBAL_IEEE754_END(sqrt) +libm_alias_double_other (__sqrt, sqrt) // Stack operations when calling error support. // (1) (2) (3) (call) (4) diff --git a/sysdeps/ia64/fpu/e_sqrtf.S b/sysdeps/ia64/fpu/e_sqrtf.S index d50ff012e4..6741bb49ac 100644 --- a/sysdeps/ia64/fpu/e_sqrtf.S +++ b/sysdeps/ia64/fpu/e_sqrtf.S @@ -203,6 +203,7 @@ GLOBAL_IEEE754_ENTRY(sqrtf) // with the result equal to frcpa(x) // GLOBAL_IEEE754_END(sqrtf) +libm_alias_float_other (__sqrt, sqrt) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_sqrtf128.c b/sysdeps/ia64/fpu/e_sqrtf128.c new file mode 100644 index 0000000000..d5bcb79aaa --- /dev/null +++ b/sysdeps/ia64/fpu/e_sqrtf128.c @@ -0,0 +1 @@ +#include <sysdeps/x86/fpu/e_sqrtf128.c> diff --git a/sysdeps/ia64/fpu/e_sqrtl.S b/sysdeps/ia64/fpu/e_sqrtl.S index 6aa402150f..e1c22344d0 100644 --- a/sysdeps/ia64/fpu/e_sqrtl.S +++ b/sysdeps/ia64/fpu/e_sqrtl.S @@ -221,6 +221,7 @@ alloc r32= ar.pfs,0,5,4,0 // END DOUBLE EXTENDED PRECISION MINIMUM LATENCY SQUARE ROOT ALGORITHM GLOBAL_IEEE754_END(sqrtl) +libm_alias_ldouble_other (__sqrt, sqrt) LOCAL_LIBM_ENTRY(__libm_error_region) .prologue diff --git a/sysdeps/ia64/fpu/fclrexcpt.c b/sysdeps/ia64/fpu/fclrexcpt.c index ec3b285f9f..546022f80a 100644 --- a/sysdeps/ia64/fpu/fclrexcpt.c +++ b/sysdeps/ia64/fpu/fclrexcpt.c @@ -1,5 +1,5 @@ /* Clear given exceptions in current floating-point environment. - Copyright (C) 1997-2016 Free Software Foundation, Inc. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 1999 and Jes Sorensen <Jes.Sorensen@cern.ch>, 2000 diff --git a/sysdeps/ia64/fpu/fedisblxcpt.c b/sysdeps/ia64/fpu/fedisblxcpt.c index 488b8e5aa0..441eeb400a 100644 --- a/sysdeps/ia64/fpu/fedisblxcpt.c +++ b/sysdeps/ia64/fpu/fedisblxcpt.c @@ -1,5 +1,5 @@ /* Disable floating-point exceptions. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jes Sorensen <Jes.Sorensen@cern.ch>, 2000. diff --git a/sysdeps/ia64/fpu/feenablxcpt.c b/sysdeps/ia64/fpu/feenablxcpt.c index 4a52f823a5..bb19aef6b7 100644 --- a/sysdeps/ia64/fpu/feenablxcpt.c +++ b/sysdeps/ia64/fpu/feenablxcpt.c @@ -1,5 +1,5 @@ /* Enable floating-point exceptions. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jes Sorensen <Jes.Sorensen@cern.ch>, 2000. diff --git a/sysdeps/ia64/fpu/fegetenv.c b/sysdeps/ia64/fpu/fegetenv.c index e490b2e7d9..9b304e4758 100644 --- a/sysdeps/ia64/fpu/fegetenv.c +++ b/sysdeps/ia64/fpu/fegetenv.c @@ -1,5 +1,5 @@ /* Store current floating-point environment. - Copyright (C) 1997-2016 Free Software Foundation, Inc. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 1999. diff --git a/sysdeps/ia64/fpu/fegetexcept.c b/sysdeps/ia64/fpu/fegetexcept.c index 7c59df7964..797a069b70 100644 --- a/sysdeps/ia64/fpu/fegetexcept.c +++ b/sysdeps/ia64/fpu/fegetexcept.c @@ -1,5 +1,5 @@ /* Get enabled floating-point exceptions. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jes Sorensen <Jes.Sorensen@cern.ch>, 2000. diff --git a/sysdeps/ia64/strcat.c b/sysdeps/ia64/fpu/fegetmode.c index c5f6ae0537..a2ab4feec8 100644 --- a/sysdeps/ia64/strcat.c +++ b/sysdeps/ia64/fpu/fegetmode.c @@ -1,4 +1,5 @@ -/* Copyright (C) 2004-2016 Free Software Foundation, Inc. +/* Store current floating-point control modes. IA64 version. + Copyright (C) 2016-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,12 +16,11 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <string.h> +#include <fenv.h> -char * -strcat (char *dest, const char *src) +int +fegetmode (femode_t *modep) { - strcpy (dest + strlen (dest), src); - return dest; + __asm__ __volatile__ ("mov.m %0=ar.fpsr" : "=r" (*modep)); + return 0; } -libc_hidden_builtin_def (strcat) diff --git a/sysdeps/ia64/fpu/fegetround.c b/sysdeps/ia64/fpu/fegetround.c index 11aa43929a..cd22788ff0 100644 --- a/sysdeps/ia64/fpu/fegetround.c +++ b/sysdeps/ia64/fpu/fegetround.c @@ -1,5 +1,5 @@ /* Return current rounding direction. - Copyright (C) 1999-2016 Free Software Foundation, Inc. + Copyright (C) 1999-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 1999. diff --git a/sysdeps/ia64/fpu/feholdexcpt.c b/sysdeps/ia64/fpu/feholdexcpt.c index 0b135a92cf..ac46449450 100644 --- a/sysdeps/ia64/fpu/feholdexcpt.c +++ b/sysdeps/ia64/fpu/feholdexcpt.c @@ -1,5 +1,5 @@ /* Store current floating-point environment and clear exceptions. - Copyright (C) 1997-2016 Free Software Foundation, Inc. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 1999 diff --git a/sysdeps/ia64/fpu/fesetenv.c b/sysdeps/ia64/fpu/fesetenv.c index 8e206ab8ce..8097c9fd16 100644 --- a/sysdeps/ia64/fpu/fesetenv.c +++ b/sysdeps/ia64/fpu/fesetenv.c @@ -1,5 +1,5 @@ /* Install given floating-point environment. - Copyright (C) 1997-2016 Free Software Foundation, Inc. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jes Sorensen <Jes.Sorensen@cern.ch>, 2000 diff --git a/sysdeps/ia64/fpu/fesetexcept.c b/sysdeps/ia64/fpu/fesetexcept.c new file mode 100644 index 0000000000..c3c868dcfc --- /dev/null +++ b/sysdeps/ia64/fpu/fesetexcept.c @@ -0,0 +1,31 @@ +/* Set given exception flags. IA64 version. + Copyright (C) 2016-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <fenv.h> + +int +fesetexcept (int excepts) +{ + fenv_t fpsr; + + __asm__ __volatile__ ("mov.m %0=ar.fpsr" : "=r" (fpsr)); + fpsr |= ((excepts & FE_ALL_EXCEPT) << 13); + __asm__ __volatile__ ("mov.m ar.fpsr=%0" :: "r" (fpsr) : "memory"); + + return 0; +} diff --git a/sysdeps/ia64/fpu/fesetmode.c b/sysdeps/ia64/fpu/fesetmode.c new file mode 100644 index 0000000000..7eda1d6469 --- /dev/null +++ b/sysdeps/ia64/fpu/fesetmode.c @@ -0,0 +1,42 @@ +/* Install given floating-point control modes. IA64 version. + Copyright (C) 2016-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <fenv.h> + +#define FPSR_STATUS 0x1f80UL +#define FPSR_STATUS_ALL ((FPSR_STATUS << 6) | (FPSR_STATUS << 19) \ + | (FPSR_STATUS << 32) | (FPSR_STATUS << 45)) + +int +fesetmode (const femode_t *modep) +{ + femode_t mode; + + /* As in fesetenv. */ + if (((fenv_t) modep >> 62) == 0x03) + mode = (femode_t) modep & 0x3fffffffffffffffUL; + else + mode = *modep; + + femode_t fpsr; + __asm__ __volatile__ ("mov.m %0=ar.fpsr" : "=r" (fpsr)); + fpsr = (fpsr & FPSR_STATUS_ALL) | (mode & ~FPSR_STATUS_ALL); + __asm__ __volatile__ ("mov.m ar.fpsr=%0;;" :: "r" (fpsr)); + + return 0; +} diff --git a/sysdeps/ia64/fpu/fesetround.c b/sysdeps/ia64/fpu/fesetround.c index 418e1530ee..9c3ddf487d 100644 --- a/sysdeps/ia64/fpu/fesetround.c +++ b/sysdeps/ia64/fpu/fesetround.c @@ -1,5 +1,5 @@ /* Set current rounding direction. - Copyright (C) 1999-2016 Free Software Foundation, Inc. + Copyright (C) 1999-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 1999. diff --git a/sysdeps/ia64/fpu/feupdateenv.c b/sysdeps/ia64/fpu/feupdateenv.c index 36370c80e7..379027b8c4 100644 --- a/sysdeps/ia64/fpu/feupdateenv.c +++ b/sysdeps/ia64/fpu/feupdateenv.c @@ -1,5 +1,5 @@ /* Install given floating-point environment and raise exceptions. - Copyright (C) 1997-2016 Free Software Foundation, Inc. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 1999. diff --git a/sysdeps/ia64/fpu/fgetexcptflg.c b/sysdeps/ia64/fpu/fgetexcptflg.c index dd3422b3de..1a4f03eeb7 100644 --- a/sysdeps/ia64/fpu/fgetexcptflg.c +++ b/sysdeps/ia64/fpu/fgetexcptflg.c @@ -1,5 +1,5 @@ /* Store current representation for exceptions. - Copyright (C) 1997-2016 Free Software Foundation, Inc. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 1999. diff --git a/sysdeps/ia64/fpu/fraiseexcpt.c b/sysdeps/ia64/fpu/fraiseexcpt.c index d9cdca4985..455fdd0705 100644 --- a/sysdeps/ia64/fpu/fraiseexcpt.c +++ b/sysdeps/ia64/fpu/fraiseexcpt.c @@ -1,5 +1,5 @@ /* Raise given exceptions. - Copyright (C) 1997-2016 Free Software Foundation, Inc. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jes Sorensen <Jes.Sorensen@cern.ch>, 2000. diff --git a/sysdeps/ia64/fpu/fsetexcptflg.c b/sysdeps/ia64/fpu/fsetexcptflg.c index 58f8c1608b..d3022eb1bb 100644 --- a/sysdeps/ia64/fpu/fsetexcptflg.c +++ b/sysdeps/ia64/fpu/fsetexcptflg.c @@ -1,5 +1,5 @@ /* Set floating-point environment exception handling. - Copyright (C) 1997-2016 Free Software Foundation, Inc. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 1999. diff --git a/sysdeps/ia64/fpu/ftestexcept.c b/sysdeps/ia64/fpu/ftestexcept.c index c1bf50ee70..cedf2c001d 100644 --- a/sysdeps/ia64/fpu/ftestexcept.c +++ b/sysdeps/ia64/fpu/ftestexcept.c @@ -1,5 +1,5 @@ /* Test exception in current environment. - Copyright (C) 1997-2016 Free Software Foundation, Inc. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 1999. diff --git a/sysdeps/ia64/fpu/get-rounding-mode.h b/sysdeps/ia64/fpu/get-rounding-mode.h index 023d35b92c..8fdf9c084b 100644 --- a/sysdeps/ia64/fpu/get-rounding-mode.h +++ b/sysdeps/ia64/fpu/get-rounding-mode.h @@ -1,5 +1,5 @@ /* Return current rounding direction within libc. IA64 version. - Copyright (C) 1999-2016 Free Software Foundation, Inc. + Copyright (C) 1999-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 1999. diff --git a/sysdeps/ia64/fpu/lgamma-compat.h b/sysdeps/ia64/fpu/lgamma-compat.h index c9580b36c6..784567edb2 100644 --- a/sysdeps/ia64/fpu/lgamma-compat.h +++ b/sysdeps/ia64/fpu/lgamma-compat.h @@ -1,5 +1,5 @@ /* ABI compatibility for lgamma functions. ia64 version. - Copyright (C) 2015-2016 Free Software Foundation, Inc. + Copyright (C) 2015-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/fpu/libm-symbols.h b/sysdeps/ia64/fpu/libm-symbols.h index 3cbc6c41b0..4a551c9f17 100644 --- a/sysdeps/ia64/fpu/libm-symbols.h +++ b/sysdeps/ia64/fpu/libm-symbols.h @@ -1,58 +1,64 @@ -#include <sysdep.h> -#undef ret /* get rid of the stupid "ret" macro; it breaks br.ret */ +#ifndef _ISOMAC +# include <sysdep.h> +# undef ret /* get rid of the stupid "ret" macro; it breaks br.ret */ + +# include <libm-alias-float.h> +# include <libm-alias-double.h> +# include <libm-alias-ldouble.h> /* Support for compatible assembler handling. */ -#define ASM_SIZE_DIRECTIVE(name) .size name,.-name +# define ASM_SIZE_DIRECTIVE(name) .size name,.-name -#define LOCAL_LIBM_ENTRY(name) \ +# define LOCAL_LIBM_ENTRY(name) \ .proc name; \ name: -#define LOCAL_LIBM_END(name) \ +# define LOCAL_LIBM_END(name) \ .endp name; \ ASM_SIZE_DIRECTIVE(name) -#define RODATA .rodata -#define LOCAL_OBJECT_START(name) \ +# define RODATA .rodata +# define LOCAL_OBJECT_START(name) \ name:; \ .type name, @object -#define LOCAL_OBJECT_END(name) \ +# define LOCAL_OBJECT_END(name) \ ASM_SIZE_DIRECTIVE(name) -#define GLOBAL_LIBM_ENTRY(name) \ +# define GLOBAL_LIBM_ENTRY(name) \ LOCAL_LIBM_ENTRY(name); \ .global name -#define GLOBAL_LIBM_END(name) LOCAL_LIBM_END(name) +# define GLOBAL_LIBM_END(name) LOCAL_LIBM_END(name) -#define INTERNAL_LIBM_ENTRY(name) \ +# define INTERNAL_LIBM_ENTRY(name) \ GLOBAL_LIBM_ENTRY(__libm_##name); \ .global __libm_##name -#define INTERNAL_LIBM_END(name) GLOBAL_LIBM_END(__libm_##name) +# define INTERNAL_LIBM_END(name) GLOBAL_LIBM_END(__libm_##name) -#define WEAK_LIBM_ENTRY(name) \ +# define WEAK_LIBM_ENTRY(name) \ .align 32; \ LOCAL_LIBM_ENTRY(__##name); \ .global __##name; \ __##name: -#define WEAK_LIBM_END(name) \ +# define WEAK_LIBM_END(name) \ weak_alias (__##name, name); \ .hidden __##name; \ LOCAL_LIBM_END(__##name); \ ASM_SIZE_DIRECTIVE(__##name); \ .type __##name, @function -#define GLOBAL_IEEE754_ENTRY(name) \ +# define GLOBAL_IEEE754_ENTRY(name) \ WEAK_LIBM_ENTRY(name); \ .global __ieee754_##name; \ .hidden __ieee754_##name; \ __ieee754_##name: -#define GLOBAL_IEEE754_END(name) \ +# define GLOBAL_IEEE754_END(name) \ WEAK_LIBM_END(name); \ ASM_SIZE_DIRECTIVE(__ieee754_##name); \ .type __ieee754_##name, @function -#if defined ASSEMBLER && IS_IN (libc) -# define __libm_error_support HIDDEN_JUMPTARGET(__libm_error_support) +# if defined ASSEMBLER && IS_IN (libc) +# define __libm_error_support HIDDEN_JUMPTARGET(__libm_error_support) +# endif #endif diff --git a/sysdeps/ia64/fpu/libm-test-ulps b/sysdeps/ia64/fpu/libm-test-ulps index 44230afd78..543cebcb63 100644 --- a/sysdeps/ia64/fpu/libm-test-ulps +++ b/sysdeps/ia64/fpu/libm-test-ulps @@ -1,552 +1,2396 @@ # Begin of automatic generation # Maximal error of functions: +Function: "acos": +double: 1 +float128: 1 +idouble: 1 +ifloat128: 1 + +Function: "acos_downward": +double: 1 +float: 1 +float128: 1 +idouble: 1 +ifloat: 1 +ifloat128: 1 + +Function: "acos_towardzero": +double: 1 +float: 1 +float128: 1 +idouble: 1 +ifloat: 1 +ifloat128: 1 + +Function: "acos_upward": +double: 1 +float: 1 +float128: 1 +idouble: 1 +ifloat: 1 +ifloat128: 1 + +Function: "acosh": +double: 1 +float128: 2 +idouble: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: "acosh_downward": +float128: 3 +ifloat128: 3 + +Function: "acosh_towardzero": +float128: 2 +ifloat128: 2 + +Function: "acosh_upward": +float128: 2 +ifloat128: 2 + +Function: "asin": +float128: 1 +ifloat128: 1 + Function: "asin_downward": double: 1 float: 1 +float128: 2 idouble: 1 ifloat: 1 +ifloat128: 2 ildouble: 1 ldouble: 1 Function: "asin_towardzero": double: 1 float: 1 +float128: 1 idouble: 1 ifloat: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 Function: "asin_upward": double: 1 float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: "asinh": +double: 1 +float128: 3 +idouble: 1 +ifloat128: 3 + +Function: "asinh_downward": +float128: 4 +ifloat128: 4 + +Function: "asinh_towardzero": +float128: 2 +ifloat128: 2 + +Function: "asinh_upward": +float128: 4 +ifloat128: 4 + +Function: "atan": +float128: 1 +ifloat128: 1 + +Function: "atan2": +float128: 1 +ifloat128: 1 + +Function: "atan2_downward": +double: 1 +float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: "atan2_towardzero": +float: 1 +float128: 3 +ifloat: 1 +ifloat128: 3 +ildouble: 1 +ldouble: 1 + +Function: "atan2_upward": +double: 1 +float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: "atan_downward": +double: 1 +float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: "atan_towardzero": +float: 1 +float128: 1 +ifloat: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: "atan_upward": +double: 1 +float: 1 +float128: 2 idouble: 1 ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: "atanh": +float128: 3 +ifloat128: 3 + +Function: "atanh_downward": +float: 1 +float128: 4 +ifloat: 1 +ifloat128: 4 + +Function: "atanh_towardzero": +float: 1 +float128: 2 +ifloat: 1 +ifloat128: 2 + +Function: "atanh_upward": +float: 1 +float128: 4 +ifloat: 1 +ifloat128: 4 + +Function: "cabs": +float128: 1 +ifloat128: 1 + +Function: "cabs_downward": +double: 1 +float: 1 +float128: 1 +idouble: 1 +ifloat: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: "cabs_towardzero": +double: 1 +float: 1 +float128: 1 +idouble: 1 +ifloat: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: "cabs_upward": +double: 1 +float: 1 +float128: 1 +idouble: 1 +ifloat: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 Function: Real part of "cacos": double: 1 float: 2 +float128: 2 idouble: 1 ifloat: 2 +ifloat128: 2 ildouble: 1 ldouble: 1 Function: Imaginary part of "cacos": -double: 1 +double: 2 float: 2 +float128: 2 +idouble: 2 +ifloat: 2 +ifloat128: 2 +ildouble: 2 +ldouble: 2 + +Function: Real part of "cacos_downward": +double: 1 +float: 1 +float128: 3 +idouble: 1 +ifloat: 1 +ifloat128: 3 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "cacos_downward": +double: 5 +float: 6 +float128: 6 +idouble: 5 +ifloat: 6 +ifloat128: 6 +ildouble: 5 +ldouble: 5 + +Function: Real part of "cacos_towardzero": +double: 1 +float: 1 +float128: 3 idouble: 1 +ifloat: 1 +ifloat128: 3 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "cacos_towardzero": +double: 4 +float: 5 +float128: 5 +idouble: 4 +ifloat: 5 +ifloat128: 5 +ildouble: 4 +ldouble: 4 + +Function: Real part of "cacos_upward": +double: 2 +float: 2 +float128: 3 +idouble: 2 ifloat: 2 +ifloat128: 3 ildouble: 2 ldouble: 2 +Function: Imaginary part of "cacos_upward": +double: 5 +float: 5 +float128: 7 +idouble: 5 +ifloat: 5 +ifloat128: 7 +ildouble: 5 +ldouble: 5 + Function: Real part of "cacosh": -double: 1 +double: 2 float: 2 -idouble: 1 +float128: 2 +idouble: 2 ifloat: 2 +ifloat128: 2 ildouble: 2 ldouble: 2 Function: Imaginary part of "cacosh": double: 1 float: 2 +float128: 2 idouble: 1 ifloat: 2 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: Real part of "cacosh_downward": +double: 4 +float: 5 +float128: 5 +idouble: 4 +ifloat: 5 +ifloat128: 5 +ildouble: 4 +ldouble: 4 + +Function: Imaginary part of "cacosh_downward": +double: 2 +float: 2 +float128: 4 +idouble: 2 +ifloat: 2 +ifloat128: 4 +ildouble: 3 +ldouble: 3 + +Function: Real part of "cacosh_towardzero": +double: 4 +float: 5 +float128: 5 +idouble: 4 +ifloat: 5 +ifloat128: 5 +ildouble: 4 +ldouble: 4 + +Function: Imaginary part of "cacosh_towardzero": +double: 1 +float: 1 +float128: 3 +idouble: 1 +ifloat: 1 +ifloat128: 3 +ildouble: 2 +ldouble: 2 + +Function: Real part of "cacosh_upward": +double: 4 +float: 3 +float128: 6 +idouble: 4 +ifloat: 3 +ifloat128: 6 +ildouble: 4 +ldouble: 4 + +Function: Imaginary part of "cacosh_upward": +double: 3 +float: 2 +float128: 4 +idouble: 3 +ifloat: 2 +ifloat128: 4 +ildouble: 3 +ldouble: 3 + +Function: "carg": +float128: 2 +ifloat128: 2 + +Function: "carg_downward": +double: 1 +float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: "carg_towardzero": +float: 1 +float128: 3 +ifloat: 1 +ifloat128: 3 +ildouble: 1 +ldouble: 1 + +Function: "carg_upward": +double: 1 +float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 ildouble: 1 ldouble: 1 Function: Real part of "casin": double: 1 float: 1 +float128: 2 idouble: 1 ifloat: 1 +ifloat128: 2 ildouble: 1 ldouble: 1 Function: Imaginary part of "casin": -double: 1 +double: 2 float: 2 -idouble: 1 +float128: 2 +idouble: 2 ifloat: 2 +ifloat128: 2 ildouble: 2 ldouble: 2 +Function: Real part of "casin_downward": +double: 3 +float: 2 +float128: 3 +idouble: 3 +ifloat: 2 +ifloat128: 3 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "casin_downward": +double: 5 +float: 6 +float128: 6 +idouble: 5 +ifloat: 6 +ifloat128: 6 +ildouble: 5 +ldouble: 5 + +Function: Real part of "casin_towardzero": +double: 3 +float: 2 +float128: 3 +idouble: 3 +ifloat: 2 +ifloat128: 3 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "casin_towardzero": +double: 4 +float: 5 +float128: 5 +idouble: 4 +ifloat: 5 +ifloat128: 5 +ildouble: 4 +ldouble: 4 + +Function: Real part of "casin_upward": +double: 2 +float: 1 +float128: 3 +idouble: 2 +ifloat: 1 +ifloat128: 3 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "casin_upward": +double: 5 +float: 5 +float128: 7 +idouble: 5 +ifloat: 5 +ifloat128: 7 +ildouble: 5 +ldouble: 5 + Function: Real part of "casinh": -double: 1 +double: 2 float: 2 -idouble: 1 +float128: 2 +idouble: 2 ifloat: 2 +ifloat128: 2 ildouble: 2 ldouble: 2 Function: Imaginary part of "casinh": double: 1 float: 1 +float128: 2 idouble: 1 ifloat: 1 +ifloat128: 2 ildouble: 1 ldouble: 1 +Function: Real part of "casinh_downward": +double: 5 +float: 6 +float128: 6 +idouble: 5 +ifloat: 6 +ifloat128: 6 +ildouble: 5 +ldouble: 5 + +Function: Imaginary part of "casinh_downward": +double: 3 +float: 2 +float128: 3 +idouble: 3 +ifloat: 2 +ifloat128: 3 +ildouble: 3 +ldouble: 3 + +Function: Real part of "casinh_towardzero": +double: 4 +float: 5 +float128: 5 +idouble: 4 +ifloat: 5 +ifloat128: 5 +ildouble: 4 +ldouble: 4 + +Function: Imaginary part of "casinh_towardzero": +double: 3 +float: 2 +float128: 3 +idouble: 3 +ifloat: 2 +ifloat128: 3 +ildouble: 3 +ldouble: 3 + +Function: Real part of "casinh_upward": +double: 5 +float: 5 +float128: 7 +idouble: 5 +ifloat: 5 +ifloat128: 7 +ildouble: 5 +ldouble: 5 + +Function: Imaginary part of "casinh_upward": +double: 2 +float: 1 +float128: 3 +idouble: 2 +ifloat: 1 +ifloat128: 3 +ildouble: 2 +ldouble: 2 + +Function: Real part of "catan": +double: 1 +float128: 1 +idouble: 1 +ifloat128: 1 + Function: Imaginary part of "catan": double: 1 float: 1 +float128: 1 +idouble: 1 +ifloat: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: Real part of "catan_downward": +double: 1 +float: 1 +float128: 2 idouble: 1 ifloat: 1 +ifloat128: 2 ildouble: 1 ldouble: 1 +Function: Imaginary part of "catan_downward": +double: 2 +float: 1 +float128: 2 +idouble: 2 +ifloat: 1 +ifloat128: 2 +ildouble: 2 +ldouble: 2 + +Function: Real part of "catan_towardzero": +double: 1 +float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: Imaginary part of "catan_towardzero": +double: 1 +float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 +ildouble: 2 +ldouble: 2 + +Function: Real part of "catan_upward": +double: 1 +float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: Imaginary part of "catan_upward": +double: 2 +float: 2 +float128: 3 +idouble: 2 +ifloat: 2 +ifloat128: 3 +ildouble: 3 +ldouble: 3 + Function: Real part of "catanh": double: 1 float: 1 +float128: 1 +idouble: 1 +ifloat: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: Imaginary part of "catanh": +double: 1 +float128: 1 +idouble: 1 +ifloat128: 1 + +Function: Real part of "catanh_downward": +double: 2 +float: 1 +float128: 2 +idouble: 2 +ifloat: 1 +ifloat128: 2 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "catanh_downward": +double: 1 +float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: Real part of "catanh_towardzero": +double: 1 +float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "catanh_towardzero": +double: 1 +float: 1 +float128: 2 idouble: 1 ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: Real part of "catanh_upward": +double: 4 +float: 4 +float128: 4 +idouble: 4 +ifloat: 4 +ifloat128: 4 +ildouble: 4 +ldouble: 4 + +Function: Imaginary part of "catanh_upward": +double: 1 +float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: "cbrt": +float128: 1 +ifloat128: 1 + +Function: "cbrt_downward": +double: 1 +float128: 1 +idouble: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: "cbrt_towardzero": +float: 1 +float128: 1 +ifloat: 1 +ifloat128: 1 + +Function: "cbrt_upward": +float: 1 +float128: 1 +ifloat: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 Function: Real part of "ccos": double: 1 +float128: 1 idouble: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 Function: Imaginary part of "ccos": double: 1 float: 1 +float128: 1 idouble: 1 ifloat: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 +Function: Real part of "ccos_downward": +double: 3 +float: 1 +float128: 2 +idouble: 3 +ifloat: 1 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "ccos_downward": +double: 3 +float: 3 +float128: 2 +idouble: 3 +ifloat: 3 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Real part of "ccos_towardzero": +double: 3 +float: 1 +float128: 2 +idouble: 3 +ifloat: 1 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "ccos_towardzero": +double: 3 +float: 3 +float128: 2 +idouble: 3 +ifloat: 3 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Real part of "ccos_upward": +double: 1 +float: 2 +float128: 3 +idouble: 1 +ifloat: 2 +ifloat128: 3 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "ccos_upward": +double: 2 +float: 2 +float128: 2 +idouble: 2 +ifloat: 2 +ifloat128: 2 +ildouble: 2 +ldouble: 2 + Function: Real part of "ccosh": double: 1 float: 1 +float128: 1 idouble: 1 ifloat: 1 +ifloat128: 1 Function: Imaginary part of "ccosh": double: 1 float: 1 +float128: 1 idouble: 1 ifloat: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 +Function: Real part of "ccosh_downward": +double: 3 +float: 2 +float128: 2 +idouble: 3 +ifloat: 2 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "ccosh_downward": +double: 3 +float: 3 +float128: 2 +idouble: 3 +ifloat: 3 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Real part of "ccosh_towardzero": +double: 3 +float: 2 +float128: 2 +idouble: 3 +ifloat: 2 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "ccosh_towardzero": +double: 3 +float: 3 +float128: 2 +idouble: 3 +ifloat: 3 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Real part of "ccosh_upward": +double: 1 +float: 2 +float128: 3 +idouble: 1 +ifloat: 2 +ifloat128: 3 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "ccosh_upward": +double: 2 +float: 2 +float128: 2 +idouble: 2 +ifloat: 2 +ifloat128: 2 +ildouble: 2 +ldouble: 2 + Function: Real part of "cexp": double: 2 float: 1 +float128: 1 idouble: 2 ifloat: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 Function: Imaginary part of "cexp": double: 1 float: 2 +float128: 1 idouble: 1 ifloat: 2 +ifloat128: 1 ildouble: 1 ldouble: 1 +Function: Real part of "cexp_downward": +double: 4 +float: 2 +float128: 2 +idouble: 4 +ifloat: 2 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "cexp_downward": +double: 3 +float: 3 +float128: 2 +idouble: 3 +ifloat: 3 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Real part of "cexp_towardzero": +double: 4 +float: 2 +float128: 2 +idouble: 4 +ifloat: 2 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "cexp_towardzero": +double: 3 +float: 3 +float128: 2 +idouble: 3 +ifloat: 3 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Real part of "cexp_upward": +double: 2 +float: 2 +float128: 3 +idouble: 2 +ifloat: 2 +ifloat128: 3 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "cexp_upward": +double: 3 +float: 2 +float128: 3 +idouble: 3 +ifloat: 2 +ifloat128: 3 +ildouble: 2 +ldouble: 2 + Function: Real part of "clog": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 +double: 2 +float: 3 +float128: 2 +idouble: 2 +ifloat: 3 +ifloat128: 2 +ildouble: 2 +ldouble: 2 Function: Imaginary part of "clog": double: 1 +float128: 1 idouble: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 Function: Real part of "clog10": +double: 3 +float: 4 +float128: 2 +idouble: 3 +ifloat: 4 +ifloat128: 2 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "clog10": +double: 2 +float: 1 +float128: 2 +idouble: 2 +ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: Real part of "clog10_downward": +double: 4 +float: 4 +float128: 3 +idouble: 4 +ifloat: 4 +ifloat128: 3 +ildouble: 4 +ldouble: 4 + +Function: Imaginary part of "clog10_downward": +double: 2 +float: 2 +float128: 3 +idouble: 2 +ifloat: 2 +ifloat128: 3 +ildouble: 2 +ldouble: 2 + +Function: Real part of "clog10_towardzero": +double: 5 +float: 5 +float128: 4 +idouble: 5 +ifloat: 5 +ifloat128: 4 +ildouble: 4 +ldouble: 4 + +Function: Imaginary part of "clog10_towardzero": +double: 2 +float: 2 +float128: 3 +idouble: 2 +ifloat: 2 +ifloat128: 3 +ildouble: 2 +ldouble: 2 + +Function: Real part of "clog10_upward": +double: 4 +float: 5 +float128: 4 +idouble: 4 +ifloat: 5 +ifloat128: 4 +ildouble: 4 +ldouble: 4 + +Function: Imaginary part of "clog10_upward": double: 2 float: 2 +float128: 3 idouble: 2 ifloat: 2 +ifloat128: 3 +ildouble: 2 +ldouble: 2 + +Function: Real part of "clog_downward": +double: 3 +float: 3 +float128: 3 +idouble: 3 +ifloat: 3 +ifloat128: 3 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "clog_downward": +double: 1 +float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 ildouble: 1 ldouble: 1 -Function: Imaginary part of "clog10": +Function: Real part of "clog_towardzero": +double: 3 +float: 4 +float128: 3 +idouble: 3 +ifloat: 4 +ifloat128: 3 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "clog_towardzero": double: 1 float: 1 +float128: 2 idouble: 1 ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: Real part of "clog_upward": +double: 2 +float: 3 +float128: 4 +idouble: 2 +ifloat: 3 +ifloat128: 4 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "clog_upward": +double: 1 +float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 ildouble: 1 ldouble: 1 Function: "cos": double: 1 +float128: 1 idouble: 1 +ifloat128: 1 Function: "cos_downward": double: 1 float: 1 +float128: 3 idouble: 1 ifloat: 1 +ifloat128: 3 ildouble: 1 ldouble: 1 -Function: "cos_tonearest": -double: 1 -idouble: 1 - Function: "cos_towardzero": double: 1 float: 1 +float128: 1 idouble: 1 ifloat: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 Function: "cos_upward": +double: 1 +float128: 2 +idouble: 1 +ifloat128: 2 ildouble: 1 ldouble: 1 +Function: "cosh": +float128: 1 +ifloat128: 1 + +Function: "cosh_downward": +float128: 2 +ifloat128: 1 + +Function: "cosh_towardzero": +float128: 2 +ifloat128: 1 + +Function: "cosh_upward": +float128: 3 +ifloat128: 1 + Function: Real part of "cpow": double: 2 float: 5 +float128: 4 idouble: 2 ifloat: 5 +ifloat128: 4 ildouble: 3 ldouble: 3 Function: Imaginary part of "cpow": float: 2 +float128: 1 ifloat: 2 +ifloat128: 1 ildouble: 4 ldouble: 4 +Function: Real part of "cpow_downward": +double: 5 +float: 8 +float128: 6 +idouble: 5 +ifloat: 8 +ifloat128: 6 +ildouble: 7 +ldouble: 7 + +Function: Imaginary part of "cpow_downward": +double: 2 +float: 2 +float128: 2 +idouble: 2 +ifloat: 2 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: Real part of "cpow_towardzero": +double: 5 +float: 8 +float128: 6 +idouble: 5 +ifloat: 8 +ifloat128: 6 +ildouble: 7 +ldouble: 7 + +Function: Imaginary part of "cpow_towardzero": +double: 2 +float: 2 +float128: 2 +idouble: 2 +ifloat: 2 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + +Function: Real part of "cpow_upward": +double: 4 +float: 1 +float128: 3 +idouble: 4 +ifloat: 1 +ifloat128: 3 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "cpow_upward": +double: 2 +float: 2 +float128: 2 +idouble: 2 +ifloat: 2 +ifloat128: 2 +ildouble: 2 +ldouble: 2 + Function: Real part of "csin": double: 1 float: 1 +float128: 1 idouble: 1 ifloat: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 Function: Imaginary part of "csin": float: 1 +float128: 1 ifloat: 1 +ifloat128: 1 -Function: Real part of "csinh": -double: 1 +Function: Real part of "csin_downward": +double: 3 +float: 3 +float128: 2 +idouble: 3 +ifloat: 3 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "csin_downward": +double: 3 float: 1 -idouble: 1 +float128: 2 +idouble: 3 ifloat: 1 -ildouble: 1 -ldouble: 1 +ifloat128: 2 +ildouble: 3 +ldouble: 3 -Function: Imaginary part of "csinh": -double: 1 +Function: Real part of "csin_towardzero": +double: 3 +float: 3 +float128: 2 +idouble: 3 +ifloat: 3 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "csin_towardzero": +double: 3 float: 1 -idouble: 1 +float128: 2 +idouble: 3 ifloat: 1 +ifloat128: 2 +ildouble: 3 +ldouble: 3 -Function: Real part of "csqrt": +Function: Real part of "csin_upward": +double: 2 +float: 2 +float128: 2 +idouble: 2 +ifloat: 2 +ifloat128: 2 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "csin_upward": double: 1 -float: 1 +float: 2 +float128: 3 idouble: 1 -ifloat: 1 +ifloat: 2 +ifloat128: 3 ildouble: 1 ldouble: 1 -Function: Imaginary part of "csqrt": +Function: Real part of "csinh": double: 1 float: 1 +float128: 1 idouble: 1 ifloat: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 -Function: Real part of "ctan": +Function: Imaginary part of "csinh": double: 1 float: 1 +float128: 1 idouble: 1 ifloat: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: Real part of "csinh_downward": +double: 3 +float: 1 +float128: 2 +idouble: 3 +ifloat: 1 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "csinh_downward": +double: 3 +float: 3 +float128: 2 +idouble: 3 +ifloat: 3 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Real part of "csinh_towardzero": +double: 3 +float: 1 +float128: 2 +idouble: 3 +ifloat: 1 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "csinh_towardzero": +double: 3 +float: 3 +float128: 2 +idouble: 3 +ifloat: 3 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: Real part of "csinh_upward": +double: 1 +float: 2 +float128: 3 +idouble: 1 +ifloat: 2 +ifloat128: 3 +ildouble: 1 +ldouble: 1 + +Function: Imaginary part of "csinh_upward": +double: 2 +float: 2 +float128: 2 +idouble: 2 +ifloat: 2 +ifloat128: 2 ildouble: 2 ldouble: 2 -Function: Imaginary part of "ctan": +Function: Real part of "csqrt": double: 2 -float: 1 +float: 2 +float128: 2 idouble: 2 -ifloat: 1 +ifloat: 2 +ifloat128: 2 ildouble: 2 ldouble: 2 -Function: Real part of "ctan_downward": +Function: Imaginary part of "csqrt": +double: 2 +float: 2 +float128: 2 +idouble: 2 +ifloat: 2 +ifloat128: 2 +ildouble: 2 +ldouble: 2 + +Function: Real part of "csqrt_downward": double: 4 float: 4 +float128: 4 idouble: 4 ifloat: 4 -ildouble: 2 -ldouble: 2 +ifloat128: 4 +ildouble: 4 +ldouble: 4 -Function: Imaginary part of "ctan_downward": +Function: Imaginary part of "csqrt_downward": +double: 3 +float: 3 +float128: 3 +idouble: 3 +ifloat: 3 +ifloat128: 3 +ildouble: 3 +ldouble: 3 + +Function: Real part of "csqrt_towardzero": +double: 3 +float: 3 +float128: 3 +idouble: 3 +ifloat: 3 +ifloat128: 3 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "csqrt_towardzero": +double: 3 +float: 3 +float128: 3 +idouble: 3 +ifloat: 3 +ifloat128: 3 +ildouble: 3 +ldouble: 3 + +Function: Real part of "csqrt_upward": +double: 4 +float: 4 +float128: 4 +idouble: 4 +ifloat: 4 +ifloat128: 4 +ildouble: 4 +ldouble: 4 + +Function: Imaginary part of "csqrt_upward": double: 3 float: 2 +float128: 3 idouble: 3 ifloat: 2 -ildouble: 2 -ldouble: 2 +ifloat128: 3 +ildouble: 3 +ldouble: 3 -Function: Real part of "ctan_tonearest": +Function: Real part of "ctan": double: 1 float: 1 +float128: 3 idouble: 1 ifloat: 1 +ifloat128: 3 ildouble: 2 ldouble: 2 -Function: Imaginary part of "ctan_tonearest": +Function: Imaginary part of "ctan": double: 2 float: 1 +float128: 3 idouble: 2 ifloat: 1 +ifloat128: 3 +ildouble: 2 +ldouble: 2 + +Function: Real part of "ctan_downward": +double: 4 +float: 4 +float128: 4 +idouble: 4 +ifloat: 4 +ifloat128: 4 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "ctan_downward": +double: 3 +float: 2 +float128: 5 +idouble: 3 +ifloat: 2 +ifloat128: 5 ildouble: 2 ldouble: 2 Function: Real part of "ctan_towardzero": double: 2 -float: 1 +float: 2 +float128: 4 idouble: 2 -ifloat: 1 +ifloat: 2 +ifloat128: 4 ildouble: 2 ldouble: 2 Function: Imaginary part of "ctan_towardzero": double: 3 float: 2 +float128: 5 idouble: 3 ifloat: 2 +ifloat128: 5 ildouble: 4 ldouble: 4 Function: Real part of "ctan_upward": double: 2 float: 3 +float128: 5 idouble: 2 ifloat: 3 +ifloat128: 5 ildouble: 5 ldouble: 5 Function: Imaginary part of "ctan_upward": double: 6 float: 2 +float128: 5 idouble: 6 ifloat: 2 +ifloat128: 5 ildouble: 7 ldouble: 7 Function: Real part of "ctanh": double: 2 float: 1 +float128: 3 idouble: 2 ifloat: 1 +ifloat128: 3 ildouble: 1 ldouble: 1 Function: Imaginary part of "ctanh": double: 2 float: 1 +float128: 3 idouble: 2 ifloat: 1 +ifloat128: 3 ildouble: 2 ldouble: 2 Function: Real part of "ctanh_downward": double: 3 float: 2 +float128: 5 idouble: 3 ifloat: 2 +ifloat128: 5 ildouble: 1 ldouble: 1 Function: Imaginary part of "ctanh_downward": double: 4 float: 4 +float128: 4 idouble: 4 ifloat: 4 -ildouble: 2 -ldouble: 2 - -Function: Real part of "ctanh_tonearest": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "ctanh_tonearest": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 +ifloat128: 4 ildouble: 2 ldouble: 2 Function: Real part of "ctanh_towardzero": double: 3 float: 2 +float128: 5 idouble: 3 ifloat: 2 +ifloat128: 5 ildouble: 4 ldouble: 4 Function: Imaginary part of "ctanh_towardzero": double: 2 float: 1 +float128: 3 idouble: 2 ifloat: 1 +ifloat128: 3 ildouble: 1 ldouble: 1 Function: Real part of "ctanh_upward": double: 6 float: 2 +float128: 5 idouble: 6 ifloat: 2 +ifloat128: 5 ildouble: 7 ldouble: 7 Function: Imaginary part of "ctanh_upward": double: 2 float: 3 +float128: 5 idouble: 2 ifloat: 3 +ifloat128: 5 ildouble: 5 ldouble: 5 +Function: "erf": +float128: 1 +ifloat128: 1 + +Function: "erf_downward": +float128: 2 +ifloat128: 2 + +Function: "erf_towardzero": +float128: 1 +ifloat128: 1 + +Function: "erf_upward": +float128: 2 +ifloat128: 2 + +Function: "erfc": +float128: 2 +ifloat128: 2 + +Function: "erfc_downward": +double: 1 +float128: 5 +idouble: 1 +ifloat128: 5 + +Function: "erfc_towardzero": +double: 1 +float128: 4 +idouble: 1 +ifloat128: 4 + +Function: "erfc_upward": +double: 1 +float128: 5 +idouble: 1 +ifloat128: 5 + +Function: "exp": +float: 1 +float128: 1 +ifloat: 1 +ifloat128: 1 + +Function: "exp10": +float128: 2 +ifloat128: 2 + +Function: "exp10_downward": +float128: 3 +ifloat128: 3 + +Function: "exp10_towardzero": +float128: 3 +ifloat128: 3 + +Function: "exp10_upward": +float128: 3 +ifloat128: 3 + +Function: "exp2": +double: 1 +float128: 1 +idouble: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: "exp2_downward": +double: 1 +float128: 1 +idouble: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: "exp2_towardzero": +double: 1 +float128: 1 +idouble: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: "exp2_upward": +double: 1 +float128: 2 +idouble: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 + Function: "expm1": +double: 1 +float128: 1 +idouble: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 Function: "expm1_downward": +float128: 2 +ifloat128: 2 ildouble: 1 ldouble: 1 -Function: "expm1_tonearest": +Function: "expm1_towardzero": +float128: 4 +ifloat128: 4 + +Function: "expm1_upward": +float128: 3 +ifloat128: 3 + +Function: "gamma": +float: 1 +ifloat: 1 + +Function: "gamma_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + +Function: "gamma_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + +Function: "gamma_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + +Function: "hypot": +float128: 1 +ifloat128: 1 + +Function: "hypot_downward": +double: 1 +float: 1 +float128: 1 +idouble: 1 +ifloat: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: "hypot_towardzero": +double: 1 +float: 1 +float128: 1 +idouble: 1 +ifloat: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: "hypot_upward": +double: 1 +float: 1 +float128: 1 +idouble: 1 +ifloat: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 Function: "j0": double: 2 float: 2 +float128: 2 idouble: 2 ifloat: 2 +ifloat128: 2 ildouble: 2 ldouble: 2 +Function: "j0_downward": +double: 6 +float: 4 +float128: 4 +idouble: 6 +ifloat: 4 +ifloat128: 4 +ildouble: 3 +ldouble: 3 + +Function: "j0_towardzero": +double: 2 +float: 1 +float128: 2 +idouble: 2 +ifloat: 1 +ifloat128: 2 +ildouble: 5 +ldouble: 5 + +Function: "j0_upward": +double: 3 +float: 2 +float128: 5 +idouble: 3 +ifloat: 2 +ifloat128: 5 +ildouble: 5 +ldouble: 5 + Function: "j1": double: 1 float: 2 +float128: 4 idouble: 1 ifloat: 2 +ifloat128: 4 ildouble: 1 ldouble: 1 +Function: "j1_downward": +double: 3 +float: 2 +float128: 4 +idouble: 3 +ifloat: 2 +ifloat128: 4 +ildouble: 4 +ldouble: 4 + +Function: "j1_towardzero": +double: 3 +float: 2 +float128: 4 +idouble: 3 +ifloat: 2 +ifloat128: 4 +ildouble: 4 +ldouble: 4 + +Function: "j1_upward": +double: 3 +float: 4 +float128: 3 +idouble: 3 +ifloat: 4 +ifloat128: 3 +ildouble: 3 +ldouble: 3 + Function: "jn": double: 4 float: 4 +float128: 7 idouble: 4 ifloat: 4 +ifloat128: 7 +ildouble: 4 +ldouble: 4 + +Function: "jn_downward": +double: 4 +float: 5 +float128: 8 +idouble: 4 +ifloat: 5 +ifloat128: 8 ildouble: 4 ldouble: 4 +Function: "jn_towardzero": +double: 4 +float: 5 +float128: 8 +idouble: 4 +ifloat: 5 +ifloat128: 8 +ildouble: 5 +ldouble: 5 + +Function: "jn_upward": +double: 5 +float: 4 +float128: 7 +idouble: 5 +ifloat: 4 +ifloat128: 7 +ildouble: 5 +ldouble: 5 + +Function: "lgamma": +float: 1 +float128: 5 +ifloat: 1 +ifloat128: 5 + +Function: "lgamma_downward": +double: 1 +float: 1 +float128: 8 +idouble: 1 +ifloat: 1 +ifloat128: 8 + +Function: "lgamma_towardzero": +double: 1 +float: 1 +float128: 5 +idouble: 1 +ifloat: 1 +ifloat128: 5 + +Function: "lgamma_upward": +double: 1 +float: 1 +float128: 8 +idouble: 1 +ifloat: 1 +ifloat128: 8 + +Function: "log": +float128: 1 +ifloat128: 1 + +Function: "log10": +float128: 1 +ifloat128: 1 + +Function: "log10_downward": +double: 1 +float128: 1 +idouble: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: "log10_towardzero": +double: 1 +float128: 1 +idouble: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: "log10_upward": +double: 1 +float: 1 +float128: 1 +idouble: 1 +ifloat: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 + +Function: "log1p": +float128: 2 +ifloat128: 2 + +Function: "log1p_downward": +double: 1 +float128: 3 +idouble: 1 +ifloat128: 3 + +Function: "log1p_towardzero": +double: 1 +float128: 3 +idouble: 1 +ifloat128: 3 + +Function: "log1p_upward": +double: 1 +float128: 2 +idouble: 1 +ifloat128: 2 + +Function: "log2": +float128: 2 +ifloat128: 2 + +Function: "log2_downward": +float128: 3 +ifloat128: 3 + +Function: "log2_towardzero": +float128: 1 +ifloat128: 1 + +Function: "log2_upward": +float128: 1 +ifloat128: 1 + +Function: "log_downward": +double: 1 +float128: 1 +idouble: 1 +ifloat128: 1 + +Function: "log_towardzero": +double: 1 +float128: 2 +idouble: 1 +ifloat128: 2 + +Function: "log_upward": +double: 1 +float128: 1 +idouble: 1 +ifloat128: 1 + +Function: "pow": +float128: 2 +ifloat128: 2 + Function: "pow_downward": double: 1 float: 1 +float128: 2 idouble: 1 ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 Function: "pow_towardzero": double: 1 float: 1 +float128: 2 idouble: 1 ifloat: 1 +ifloat128: 2 +ildouble: 1 +ldouble: 1 Function: "pow_upward": double: 1 float: 1 +float128: 2 idouble: 1 ifloat: 1 +ifloat128: 2 ildouble: 1 ldouble: 1 Function: "sin": double: 1 +float128: 1 idouble: 1 +ifloat128: 1 Function: "sin_downward": double: 1 +float: 1 +float128: 3 idouble: 1 +ifloat: 1 +ifloat128: 3 ildouble: 1 ldouble: 1 -Function: "sin_tonearest": -double: 1 -idouble: 1 - Function: "sin_towardzero": double: 1 +float: 1 +float128: 2 idouble: 1 +ifloat: 1 +ifloat128: 2 ildouble: 1 ldouble: 1 Function: "sin_upward": double: 1 +float: 1 +float128: 3 idouble: 1 +ifloat: 1 +ifloat128: 3 ildouble: 1 ldouble: 1 Function: "sincos": double: 1 +float128: 1 idouble: 1 +ifloat128: 1 + +Function: "sincos_downward": +double: 1 +float: 1 +float128: 3 +idouble: 1 +ifloat: 1 +ifloat128: 3 + +Function: "sincos_towardzero": +double: 1 +float: 1 +float128: 2 +idouble: 1 +ifloat: 1 +ifloat128: 2 + +Function: "sincos_upward": +double: 1 +float: 1 +float128: 3 +idouble: 1 +ifloat: 1 +ifloat128: 3 + +Function: "sinh": +float128: 2 +ifloat128: 2 + +Function: "sinh_downward": +float128: 3 +ifloat128: 3 + +Function: "sinh_towardzero": +float128: 3 +ifloat128: 3 + +Function: "sinh_upward": +float128: 4 +ifloat128: 4 + +Function: "tan": +float128: 1 +ifloat128: 1 +ildouble: 1 +ldouble: 1 Function: "tan_downward": +float128: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 Function: "tan_towardzero": +float128: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 Function: "tan_upward": +float128: 1 +ifloat128: 1 ildouble: 1 ldouble: 1 +Function: "tanh": +float128: 2 +ifloat128: 2 + +Function: "tanh_downward": +float128: 4 +ifloat128: 4 + +Function: "tanh_towardzero": +float128: 3 +ifloat128: 3 + +Function: "tanh_upward": +float128: 3 +ifloat128: 3 + Function: "tgamma": +float128: 4 +ifloat128: 4 +ildouble: 1 +ldouble: 1 + +Function: "tgamma_downward": +double: 1 +float: 1 +float128: 5 +idouble: 1 +ifloat: 1 +ifloat128: 5 +ildouble: 1 +ldouble: 1 + +Function: "tgamma_towardzero": +double: 1 +float: 1 +float128: 5 +idouble: 1 +ifloat: 1 +ifloat128: 5 +ildouble: 1 +ldouble: 1 + +Function: "tgamma_upward": +double: 1 +float: 1 +float128: 4 +idouble: 1 +ifloat: 1 +ifloat128: 4 ildouble: 1 ldouble: 1 Function: "y0": double: 2 float: 1 +float128: 3 idouble: 2 ifloat: 1 +ifloat128: 3 ildouble: 1 ldouble: 1 +Function: "y0_downward": +double: 4 +float: 4 +float128: 4 +idouble: 4 +ifloat: 4 +ifloat128: 4 +ildouble: 4 +ldouble: 4 + +Function: "y0_towardzero": +double: 3 +float: 3 +float128: 3 +idouble: 3 +ifloat: 3 +ifloat128: 3 +ildouble: 5 +ldouble: 5 + +Function: "y0_upward": +double: 4 +float: 5 +float128: 3 +idouble: 4 +ifloat: 5 +ifloat128: 3 +ildouble: 3 +ldouble: 3 + Function: "y1": double: 3 float: 2 +float128: 2 idouble: 3 ifloat: 2 +ifloat128: 2 ildouble: 2 ldouble: 2 +Function: "y1_downward": +double: 9 +float: 2 +float128: 4 +idouble: 9 +ifloat: 2 +ifloat128: 4 +ildouble: 3 +ldouble: 3 + +Function: "y1_towardzero": +double: 3 +float: 2 +float128: 2 +idouble: 3 +ifloat: 2 +ifloat128: 2 +ildouble: 3 +ldouble: 3 + +Function: "y1_upward": +double: 4 +float: 2 +float128: 5 +idouble: 4 +ifloat: 2 +ifloat128: 5 +ildouble: 7 +ldouble: 7 + Function: "yn": double: 3 float: 3 +float128: 5 idouble: 3 ifloat: 3 -ildouble: 2 -ldouble: 2 +ifloat128: 5 +ildouble: 3 +ldouble: 3 + +Function: "yn_downward": +double: 4 +float: 4 +float128: 5 +idouble: 4 +ifloat: 4 +ifloat128: 5 +ildouble: 4 +ldouble: 4 + +Function: "yn_towardzero": +double: 3 +float: 3 +float128: 5 +idouble: 3 +ifloat: 3 +ifloat128: 5 +ildouble: 5 +ldouble: 5 + +Function: "yn_upward": +double: 4 +float: 5 +float128: 5 +idouble: 4 +ifloat: 5 +ifloat128: 5 +ildouble: 3 +ldouble: 3 # end of automatic generation diff --git a/sysdeps/ia64/fpu/libm-test-ulps-name b/sysdeps/ia64/fpu/libm-test-ulps-name new file mode 100644 index 0000000000..54a0dfffea --- /dev/null +++ b/sysdeps/ia64/fpu/libm-test-ulps-name @@ -0,0 +1 @@ +IA64 diff --git a/sysdeps/ia64/fpu/libm_error.c b/sysdeps/ia64/fpu/libm_error.c index a9307dd4b5..34d1466e09 100644 --- a/sysdeps/ia64/fpu/libm_error.c +++ b/sysdeps/ia64/fpu/libm_error.c @@ -91,11 +91,19 @@ #include <stdio.h> #include <stdlib.h> #include "libm_support.h" +#include <math-svid-compat.h> #ifdef _LIBC # define pmatherr matherr # define pmatherrf matherrf # define pmatherrl matherrl +# if LIBM_SVID_COMPAT +compat_symbol_reference (libm, matherrf, matherrf, GLIBC_2_2_3); +compat_symbol_reference (libm, matherrl, matherrl, GLIBC_2_2_3); +# else +# define matherrf(EXC) ((void) (EXC), 0) +# define matherrl(EXC) ((void) (EXC), 0) +# endif #else _LIB_VERSION_TYPE #if defined( __POSIX__ ) diff --git a/sysdeps/ia64/fpu/libm_sincos.S b/sysdeps/ia64/fpu/libm_sincos.S index c2a9f7262e..85ccd5f56a 100644 --- a/sysdeps/ia64/fpu/libm_sincos.S +++ b/sysdeps/ia64/fpu/libm_sincos.S @@ -425,6 +425,7 @@ GLOBAL_IEEE754_ENTRY(sincos) br.cond.sptk _CIS_COMMON };; GLOBAL_IEEE754_END(sincos) +libm_alias_double_other (__sincos, sincos) GLOBAL_LIBM_ENTRY(__libm_sincos) // cis_GR_sig_inv_pi_by_16 = significand of 16/pi diff --git a/sysdeps/ia64/fpu/libm_sincosf.S b/sysdeps/ia64/fpu/libm_sincosf.S index 26e66fad6e..f38c247b4b 100644 --- a/sysdeps/ia64/fpu/libm_sincosf.S +++ b/sysdeps/ia64/fpu/libm_sincosf.S @@ -421,6 +421,7 @@ GLOBAL_IEEE754_ENTRY(sincosf) br.cond.sptk _CISF_COMMON };; GLOBAL_IEEE754_END(sincosf) +libm_alias_float_other (__sincos, sincos) GLOBAL_LIBM_ENTRY(__libm_sincosf) { .mlx diff --git a/sysdeps/ia64/fpu/libm_sincosl.S b/sysdeps/ia64/fpu/libm_sincosl.S index 7fe92c549c..f76b54d3de 100644 --- a/sysdeps/ia64/fpu/libm_sincosl.S +++ b/sysdeps/ia64/fpu/libm_sincosl.S @@ -835,6 +835,7 @@ GLOBAL_IEEE754_ENTRY(sincosl) br.cond.sptk _COMMON_SINCOSL };; GLOBAL_IEEE754_END(sincosl) +libm_alias_ldouble_other (__sincos, sincos) GLOBAL_LIBM_ENTRY(__libm_sincosl) { .mlx ///////////////////////////// 1 ///////////////// diff --git a/sysdeps/ia64/fpu/libm_support.h b/sysdeps/ia64/fpu/libm_support.h index dc9c0a2648..4e7a66799d 100644 --- a/sysdeps/ia64/fpu/libm_support.h +++ b/sysdeps/ia64/fpu/libm_support.h @@ -83,6 +83,8 @@ #ifndef __LIBM_SUPPORT_H_INCLUDED__ #define __LIBM_SUPPORT_H_INCLUDED__ +#include <math-svid-compat.h> + #ifndef _LIBC #if !(defined(_WIN32) || defined(_WIN64)) # pragma const_seg(".rodata") /* place constant data in text (code) section */ @@ -156,36 +158,8 @@ struct exceptionl #endif extern int MATHERR_F(struct exceptionf*); -extern int MATHERR_D(struct EXC_DECL_D*); extern int matherrl(struct exceptionl*); -#ifndef _LIBC -// Add code to support _LIB_VERSIONIMF -typedef enum -{ - _IEEE_ = -1, // IEEE-like behavior - _SVID_, // SysV, Rel. 4 behavior - _XOPEN_, // Unix98 - _POSIX_, // Posix - _ISOC_ // ISO C9X -} _LIB_VERSION_TYPE; -#endif - -// This is a run-time variable and may affect -// floating point behavior of the libm functions - -#if !defined( LIBM_BUILD ) -#if defined( _DLL ) -extern _LIB_VERSION_TYPE __declspec(dllimport) _LIB_VERSIONIMF; -#else -extern _LIB_VERSION_TYPE _LIB_VERSIONIMF; -#endif /* _DLL */ -#else -extern int (*pmatherrf)(struct exceptionf*); -extern int (*pmatherr)(struct EXC_DECL_D*); -extern int (*pmatherrl)(struct exceptionl*); -#endif /* LIBM_BUILD */ - /* memory format definitions (LITTLE_ENDIAN only) */ #if !(defined(SIZE_INT_32) || defined(SIZE_INT_64)) @@ -1031,15 +1005,6 @@ struct ker80 { #endif -/* error codes */ - -#define DOMAIN 1 /* argument domain error */ -#define SING 2 /* argument singularity */ -#define OVERFLOW 3 /* overflow range error */ -#define UNDERFLOW 4 /* underflow range error */ -#define TLOSS 5 /* total loss of precision */ -#define PLOSS 6 /* partial loss of precision */ - /* */ #define VOLATILE_32 /*volatile*/ diff --git a/sysdeps/ia64/fpu/slowpow.c b/sysdeps/ia64/fpu/math_errf.c index 1cc8931700..1cc8931700 100644 --- a/sysdeps/ia64/fpu/slowpow.c +++ b/sysdeps/ia64/fpu/math_errf.c diff --git a/sysdeps/ia64/fpu/math_ldbl.h b/sysdeps/ia64/fpu/math_ldbl.h index 475ca795fa..6178169f95 100644 --- a/sysdeps/ia64/fpu/math_ldbl.h +++ b/sysdeps/ia64/fpu/math_ldbl.h @@ -1,11 +1,31 @@ -#ifndef _MATH_PRIVATE_H_ -#error "Never use <math_ldbl.h> directly; include <math_private.h> instead." -#endif +/* Manipulation of the bit representation of 'long double' quantities. + Copyright (C) 2000-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _MATH_LDBL_H_ +#define _MATH_LDBL_H_ 1 + +#include <stdint.h> +#include <endian.h> /* A union which permits us to convert between a long double and three 32 bit ints. */ -#if __FLOAT_WORD_ORDER == BIG_ENDIAN +#if __FLOAT_WORD_ORDER == __BIG_ENDIAN typedef union { @@ -15,22 +35,22 @@ typedef union unsigned int empty0:32; int sign_exponent:16; unsigned int empty1:16; - u_int32_t msw; - u_int32_t lsw; + uint32_t msw; + uint32_t lsw; } parts; } ieee_long_double_shape_type; #endif -#if __FLOAT_WORD_ORDER == LITTLE_ENDIAN +#if __FLOAT_WORD_ORDER == __LITTLE_ENDIAN typedef union { long double value; struct { - u_int32_t lsw; - u_int32_t msw; + uint32_t lsw; + uint32_t msw; int sign_exponent:16; unsigned int empty1:16; unsigned int empty0:32; @@ -98,3 +118,5 @@ do { \ se_u.parts.sign_exponent = (exp); \ (d) = se_u.value; \ } while (0) + +#endif /* math_ldbl.h */ diff --git a/sysdeps/ia64/fpu/printf_fphex.c b/sysdeps/ia64/fpu/printf_fphex.c index 294aef84ba..ef35e78364 100644 --- a/sysdeps/ia64/fpu/printf_fphex.c +++ b/sysdeps/ia64/fpu/printf_fphex.c @@ -1,5 +1,5 @@ /* Print floating point number in hexadecimal notation according to ISO C99. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/fpu/s_asinh.S b/sysdeps/ia64/fpu/s_asinh.S index c5aaee7072..b57c015b0b 100644 --- a/sysdeps/ia64/fpu/s_asinh.S +++ b/sysdeps/ia64/fpu/s_asinh.S @@ -1135,3 +1135,4 @@ ASINH_UNORM: ;; GLOBAL_LIBM_END(asinh) +libm_alias_double_other (asinh, asinh) diff --git a/sysdeps/ia64/fpu/s_asinhf.S b/sysdeps/ia64/fpu/s_asinhf.S index df616deae0..16c0fc4af1 100644 --- a/sysdeps/ia64/fpu/s_asinhf.S +++ b/sysdeps/ia64/fpu/s_asinhf.S @@ -935,3 +935,4 @@ ASINH_UNORM: ;; GLOBAL_LIBM_END(asinhf) +libm_alias_float_other (asinh, asinh) diff --git a/sysdeps/ia64/fpu/s_asinhl.S b/sysdeps/ia64/fpu/s_asinhl.S index 5b8e73b4dc..baace924f2 100644 --- a/sysdeps/ia64/fpu/s_asinhl.S +++ b/sysdeps/ia64/fpu/s_asinhl.S @@ -1342,3 +1342,4 @@ near_0: };; GLOBAL_LIBM_END(asinhl) +libm_alias_ldouble_other (asinh, asinh) diff --git a/sysdeps/ia64/fpu/s_atan.S b/sysdeps/ia64/fpu/s_atan.S index 720ecad28a..598b42a687 100644 --- a/sysdeps/ia64/fpu/s_atan.S +++ b/sysdeps/ia64/fpu/s_atan.S @@ -751,3 +751,4 @@ GLOBAL_LIBM_ENTRY(atan) } GLOBAL_LIBM_END(atan) +libm_alias_double_other (atan, atan) diff --git a/sysdeps/ia64/fpu/s_atanf.S b/sysdeps/ia64/fpu/s_atanf.S index 8d9e440ba2..cb3ca78220 100644 --- a/sysdeps/ia64/fpu/s_atanf.S +++ b/sysdeps/ia64/fpu/s_atanf.S @@ -553,3 +553,4 @@ ATANF_X_INF_NAN_ZERO: ;; GLOBAL_LIBM_END(atanf) +libm_alias_float_other (atan, atan) diff --git a/sysdeps/ia64/fpu/s_atanl.S b/sysdeps/ia64/fpu/s_atanl.S index fea68abfde..8d4951acf0 100644 --- a/sysdeps/ia64/fpu/s_atanl.S +++ b/sysdeps/ia64/fpu/s_atanl.S @@ -813,6 +813,7 @@ GLOBAL_IEEE754_ENTRY(atanl) ;; GLOBAL_IEEE754_END(atanl) +libm_alias_ldouble_other (__atan, atan) GLOBAL_IEEE754_ENTRY(atan2l) @@ -1953,6 +1954,7 @@ ATANL_ArgY_Not_INF: ;; GLOBAL_IEEE754_END(atan2l) +libm_alias_ldouble_other (__atan2, atan2) LOCAL_LIBM_ENTRY(__libm_error_region) .prologue diff --git a/sysdeps/ia64/fpu/s_cbrt.S b/sysdeps/ia64/fpu/s_cbrt.S index 7a74ac19be..783212383b 100644 --- a/sysdeps/ia64/fpu/s_cbrt.S +++ b/sysdeps/ia64/fpu/s_cbrt.S @@ -765,3 +765,4 @@ GLOBAL_LIBM_ENTRY(cbrt) GLOBAL_LIBM_END(cbrt) +libm_alias_double_other (cbrt, cbrt) diff --git a/sysdeps/ia64/fpu/s_cbrtf.S b/sysdeps/ia64/fpu/s_cbrtf.S index 5d51963f87..c0d102291c 100644 --- a/sysdeps/ia64/fpu/s_cbrtf.S +++ b/sysdeps/ia64/fpu/s_cbrtf.S @@ -759,3 +759,4 @@ GLOBAL_LIBM_ENTRY(cbrtf) GLOBAL_LIBM_END(cbrtf) +libm_alias_float_other (cbrt, cbrt) diff --git a/sysdeps/ia64/fpu/s_cbrtl.S b/sysdeps/ia64/fpu/s_cbrtl.S index 301c333ff7..bfd2d5a5a0 100644 --- a/sysdeps/ia64/fpu/s_cbrtl.S +++ b/sysdeps/ia64/fpu/s_cbrtl.S @@ -982,3 +982,4 @@ GLOBAL_LIBM_ENTRY(cbrtl) ;; GLOBAL_LIBM_END(cbrtl) +libm_alias_ldouble_other (cbrt, cbrt) diff --git a/sysdeps/ia64/fpu/s_ceil.S b/sysdeps/ia64/fpu/s_ceil.S index d1d2980618..9380608694 100644 --- a/sysdeps/ia64/fpu/s_ceil.S +++ b/sysdeps/ia64/fpu/s_ceil.S @@ -222,3 +222,4 @@ CEIL_UNORM: ;; GLOBAL_LIBM_END(ceil) +libm_alias_double_other (ceil, ceil) diff --git a/sysdeps/ia64/fpu/s_ceilf.S b/sysdeps/ia64/fpu/s_ceilf.S index 051534a202..b1789d0089 100644 --- a/sysdeps/ia64/fpu/s_ceilf.S +++ b/sysdeps/ia64/fpu/s_ceilf.S @@ -222,3 +222,4 @@ CEIL_UNORM: ;; GLOBAL_LIBM_END(ceilf) +libm_alias_float_other (ceil, ceil) diff --git a/sysdeps/ia64/fpu/s_ceill.S b/sysdeps/ia64/fpu/s_ceill.S index 71cb01d3fa..eb913d25e3 100644 --- a/sysdeps/ia64/fpu/s_ceill.S +++ b/sysdeps/ia64/fpu/s_ceill.S @@ -222,3 +222,4 @@ CEIL_UNORM: ;; GLOBAL_LIBM_END(ceill) +libm_alias_ldouble_other (ceil, ceil) diff --git a/sysdeps/ia64/fpu/s_copysign.S b/sysdeps/ia64/fpu/s_copysign.S index 592ffcf6e1..f6ec3dabeb 100644 --- a/sysdeps/ia64/fpu/s_copysign.S +++ b/sysdeps/ia64/fpu/s_copysign.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -32,6 +32,6 @@ strong_alias (__copysign, __libm_copysign) strong_alias (__copysign, __libm_copysignf) strong_alias (__copysign, __libm_copysignl) -weak_alias (__copysign, copysign) -weak_alias (__copysignf, copysignf) -weak_alias (__copysignl, copysignl) +libm_alias_double (__copysign, copysign) +libm_alias_float (__copysign, copysign) +libm_alias_ldouble (__copysign, copysign) diff --git a/sysdeps/ia64/fpu/s_cos.S b/sysdeps/ia64/fpu/s_cos.S index 5f5cdc1d36..1c54b7e1b0 100644 --- a/sysdeps/ia64/fpu/s_cos.S +++ b/sysdeps/ia64/fpu/s_cos.S @@ -420,6 +420,7 @@ GLOBAL_IEEE754_ENTRY(sin) ;; GLOBAL_IEEE754_END(sin) +libm_alias_double_other (__sin, sin) GLOBAL_IEEE754_ENTRY(cos) @@ -707,6 +708,7 @@ _SINCOS_UNORM: };; GLOBAL_IEEE754_END(cos) +libm_alias_double_other (__cos, cos) //////////// x >= 2^27 - large arguments routine call //////////// LOCAL_LIBM_ENTRY(__libm_callout_sincos) diff --git a/sysdeps/ia64/fpu/s_cosf.S b/sysdeps/ia64/fpu/s_cosf.S index 2dcdaa8879..42de260cd7 100644 --- a/sysdeps/ia64/fpu/s_cosf.S +++ b/sysdeps/ia64/fpu/s_cosf.S @@ -409,6 +409,7 @@ GLOBAL_IEEE754_ENTRY(sinf) };; GLOBAL_IEEE754_END(sinf) +libm_alias_float_other (__sin, sin) GLOBAL_IEEE754_ENTRY(cosf) @@ -659,6 +660,7 @@ _SINCOSF_SPECIAL_ARGS: };; GLOBAL_IEEE754_END(cosf) +libm_alias_float_other (__cos, cos) //////////// x >= 2^24 - large arguments routine call //////////// LOCAL_LIBM_ENTRY(__libm_callout_sincosf) diff --git a/sysdeps/ia64/fpu/s_cosl.S b/sysdeps/ia64/fpu/s_cosl.S index 8d71e50c1a..ed4b571fab 100644 --- a/sysdeps/ia64/fpu/s_cosl.S +++ b/sysdeps/ia64/fpu/s_cosl.S @@ -774,6 +774,7 @@ GLOBAL_IEEE754_ENTRY(sinl) ;; GLOBAL_IEEE754_END(sinl) +libm_alias_ldouble_other (__sin, sin) GLOBAL_IEEE754_ENTRY(cosl) { .mlx @@ -2288,6 +2289,7 @@ SINCOSL_SPECIAL: } GLOBAL_IEEE754_END(cosl) +libm_alias_ldouble_other (__cos, cos) // ******************************************************************* // ******************************************************************* diff --git a/sysdeps/ia64/fpu/s_erf.S b/sysdeps/ia64/fpu/s_erf.S index 2ae2874cab..8e2355dfff 100644 --- a/sysdeps/ia64/fpu/s_erf.S +++ b/sysdeps/ia64/fpu/s_erf.S @@ -922,3 +922,4 @@ erf_denormal: ;; GLOBAL_LIBM_END(erf) +libm_alias_double_other (erf, erf) diff --git a/sysdeps/ia64/fpu/s_erfc.S b/sysdeps/ia64/fpu/s_erfc.S index cd26545264..95fa0ab534 100644 --- a/sysdeps/ia64/fpu/s_erfc.S +++ b/sysdeps/ia64/fpu/s_erfc.S @@ -1136,6 +1136,7 @@ GLOBAL_LIBM_ENTRY(erfc) };; GLOBAL_LIBM_END(erfc) +libm_alias_double_other (erfc, erfc) // call via (p15) br.cond.spnt __libm_error_region // for x > ARG_ASYMP = 28.0 diff --git a/sysdeps/ia64/fpu/s_erfcf.S b/sysdeps/ia64/fpu/s_erfcf.S index f9502d7e4a..88da077a3b 100644 --- a/sysdeps/ia64/fpu/s_erfcf.S +++ b/sysdeps/ia64/fpu/s_erfcf.S @@ -918,6 +918,7 @@ SPECIAL: ;; GLOBAL_LIBM_END(erfcf) +libm_alias_float_other (erfc, erfc) // Call via (p10) br.cond.spnt __libm_error_region diff --git a/sysdeps/ia64/fpu/s_erfcl.S b/sysdeps/ia64/fpu/s_erfcl.S index aaa0bb0240..ff39c7ee3f 100644 --- a/sysdeps/ia64/fpu/s_erfcl.S +++ b/sysdeps/ia64/fpu/s_erfcl.S @@ -2003,6 +2003,7 @@ ERFC_RESULT: };; GLOBAL_LIBM_END(erfcl) +libm_alias_ldouble_other (erfc, erfc) // call via (p15) br.cond.spnt __libm_error_region // for x > POS_ARG_ASYMP diff --git a/sysdeps/ia64/fpu/s_erff.S b/sysdeps/ia64/fpu/s_erff.S index a5cde66d5d..e20183664a 100644 --- a/sysdeps/ia64/fpu/s_erff.S +++ b/sysdeps/ia64/fpu/s_erff.S @@ -556,3 +556,4 @@ erff_denormal: ;; GLOBAL_LIBM_END(erff) +libm_alias_float_other (erf, erf) diff --git a/sysdeps/ia64/fpu/s_erfl.S b/sysdeps/ia64/fpu/s_erfl.S index 1fcb2127ea..8d58905c1c 100644 --- a/sysdeps/ia64/fpu/s_erfl.S +++ b/sysdeps/ia64/fpu/s_erfl.S @@ -1235,3 +1235,4 @@ _0_to_1o8: GLOBAL_LIBM_END(erfl) +libm_alias_ldouble_other (erf, erf) diff --git a/sysdeps/ia64/fpu/s_expm1.S b/sysdeps/ia64/fpu/s_expm1.S index f0b911e295..18d07e5bf9 100644 --- a/sysdeps/ia64/fpu/s_expm1.S +++ b/sysdeps/ia64/fpu/s_expm1.S @@ -831,6 +831,7 @@ EXPM1_CERTAIN_MINUS_ONE: ;; GLOBAL_IEEE754_END(expm1) +libm_alias_double_other (__expm1, expm1) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/s_expm1f.S b/sysdeps/ia64/fpu/s_expm1f.S index 55264a9875..c324139ccc 100644 --- a/sysdeps/ia64/fpu/s_expm1f.S +++ b/sysdeps/ia64/fpu/s_expm1f.S @@ -612,6 +612,7 @@ EXPM1_CERTAIN_OVERFLOW: ;; GLOBAL_IEEE754_END(expm1f) +libm_alias_float_other (__expm1, expm1) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/s_expm1l.S b/sysdeps/ia64/fpu/s_expm1l.S index 63bf39a3c1..4c9dcebeb3 100644 --- a/sysdeps/ia64/fpu/s_expm1l.S +++ b/sysdeps/ia64/fpu/s_expm1l.S @@ -677,6 +677,7 @@ GLOBAL_IEEE754_ENTRY(expm1l) ;; GLOBAL_IEEE754_END(expm1l) +libm_alias_ldouble_other (__expm1, expm1) GLOBAL_IEEE754_ENTRY(expl) @@ -1377,6 +1378,7 @@ EXP_64_UNSUPPORTED: ;; GLOBAL_IEEE754_END(expl) +libm_alias_ldouble_other (__exp, exp) LOCAL_LIBM_ENTRY(__libm_error_region) .prologue diff --git a/sysdeps/ia64/fpu/s_fabs.S b/sysdeps/ia64/fpu/s_fabs.S index 8bbdf9b084..f168a04c0e 100644 --- a/sysdeps/ia64/fpu/s_fabs.S +++ b/sysdeps/ia64/fpu/s_fabs.S @@ -80,3 +80,4 @@ GLOBAL_IEEE754_ENTRY(fabs) } GLOBAL_IEEE754_END(fabs) +libm_alias_double_other (__fabs, fabs) diff --git a/sysdeps/ia64/fpu/s_fabsf.S b/sysdeps/ia64/fpu/s_fabsf.S index 546865fadc..b851ad0c8e 100644 --- a/sysdeps/ia64/fpu/s_fabsf.S +++ b/sysdeps/ia64/fpu/s_fabsf.S @@ -80,3 +80,4 @@ GLOBAL_IEEE754_ENTRY(fabsf) } GLOBAL_IEEE754_END(fabsf) +libm_alias_float_other (__fabs, fabs) diff --git a/sysdeps/ia64/fpu/s_fabsl.S b/sysdeps/ia64/fpu/s_fabsl.S index 3794d19a8a..ca7812c4dc 100644 --- a/sysdeps/ia64/fpu/s_fabsl.S +++ b/sysdeps/ia64/fpu/s_fabsl.S @@ -80,3 +80,4 @@ GLOBAL_IEEE754_ENTRY(fabsl) } GLOBAL_IEEE754_END(fabsl) +libm_alias_ldouble_other (__fabs, fabs) diff --git a/sysdeps/ia64/fpu/s_fdim.S b/sysdeps/ia64/fpu/s_fdim.S index a6bdf1f5f8..d962a7f9cc 100644 --- a/sysdeps/ia64/fpu/s_fdim.S +++ b/sysdeps/ia64/fpu/s_fdim.S @@ -163,6 +163,7 @@ FDIM_OVERFLOW: ;; GLOBAL_LIBM_END(fdim) +libm_alias_double_other (fdim, fdim) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/s_fdimf.S b/sysdeps/ia64/fpu/s_fdimf.S index 10bc5a619a..88f67a53f7 100644 --- a/sysdeps/ia64/fpu/s_fdimf.S +++ b/sysdeps/ia64/fpu/s_fdimf.S @@ -163,6 +163,7 @@ FDIM_OVERFLOW: ;; GLOBAL_LIBM_END(fdimf) +libm_alias_float_other (fdim, fdim) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/s_fdiml.S b/sysdeps/ia64/fpu/s_fdiml.S index a5c7396bbd..c23da7ebb0 100644 --- a/sysdeps/ia64/fpu/s_fdiml.S +++ b/sysdeps/ia64/fpu/s_fdiml.S @@ -163,6 +163,7 @@ FDIM_OVERFLOW: ;; GLOBAL_LIBM_END(fdiml) +libm_alias_ldouble_other (fdim, fdim) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/s_finite.S b/sysdeps/ia64/fpu/s_finite.S index 595509f5d9..8784880097 100644 --- a/sysdeps/ia64/fpu/s_finite.S +++ b/sysdeps/ia64/fpu/s_finite.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/fpu/s_floor.S b/sysdeps/ia64/fpu/s_floor.S index 9ed9d6dcdb..35fa41be7e 100644 --- a/sysdeps/ia64/fpu/s_floor.S +++ b/sysdeps/ia64/fpu/s_floor.S @@ -214,3 +214,4 @@ FLOOR_UNORM: ;; GLOBAL_IEEE754_END(floor) +libm_alias_double_other (__floor, floor) diff --git a/sysdeps/ia64/fpu/s_floorf.S b/sysdeps/ia64/fpu/s_floorf.S index a3f2095931..8cd1ca6a1a 100644 --- a/sysdeps/ia64/fpu/s_floorf.S +++ b/sysdeps/ia64/fpu/s_floorf.S @@ -213,3 +213,4 @@ FLOOR_UNORM: ;; GLOBAL_IEEE754_END(floorf) +libm_alias_float_other (__floor, floor) diff --git a/sysdeps/ia64/fpu/s_floorl.S b/sysdeps/ia64/fpu/s_floorl.S index 345c4f30dd..8d495c0149 100644 --- a/sysdeps/ia64/fpu/s_floorl.S +++ b/sysdeps/ia64/fpu/s_floorl.S @@ -213,3 +213,4 @@ FLOOR_UNORM: ;; GLOBAL_IEEE754_END(floorl) +libm_alias_ldouble_other (__floor, floor) diff --git a/sysdeps/ia64/fpu/s_fma.S b/sysdeps/ia64/fpu/s_fma.S index 556f82a0d0..49e8059da2 100644 --- a/sysdeps/ia64/fpu/s_fma.S +++ b/sysdeps/ia64/fpu/s_fma.S @@ -69,3 +69,4 @@ GLOBAL_LIBM_ENTRY(fma) ;; GLOBAL_LIBM_END(fma) +libm_alias_double_other (fma, fma) diff --git a/sysdeps/ia64/fpu/s_fmaf.S b/sysdeps/ia64/fpu/s_fmaf.S index 132467593a..e59b634561 100644 --- a/sysdeps/ia64/fpu/s_fmaf.S +++ b/sysdeps/ia64/fpu/s_fmaf.S @@ -69,3 +69,4 @@ GLOBAL_LIBM_ENTRY(fmaf) ;; GLOBAL_LIBM_END(fmaf) +libm_alias_float_other (fma, fma) diff --git a/sysdeps/ia64/fpu/s_fmal.S b/sysdeps/ia64/fpu/s_fmal.S index 979fa9fb16..3547991955 100644 --- a/sysdeps/ia64/fpu/s_fmal.S +++ b/sysdeps/ia64/fpu/s_fmal.S @@ -69,3 +69,4 @@ GLOBAL_LIBM_ENTRY(fmal) ;; GLOBAL_LIBM_END(fmal) +libm_alias_ldouble_other (fma, fma) diff --git a/sysdeps/ia64/fpu/s_fmax.S b/sysdeps/ia64/fpu/s_fmax.S index bf0897457b..a5724514e8 100644 --- a/sysdeps/ia64/fpu/s_fmax.S +++ b/sysdeps/ia64/fpu/s_fmax.S @@ -112,3 +112,4 @@ GLOBAL_LIBM_ENTRY(fmax) ;; GLOBAL_LIBM_END(fmax) +libm_alias_double_other (fmax, fmax) diff --git a/sysdeps/ia64/fpu/s_fmaxf.S b/sysdeps/ia64/fpu/s_fmaxf.S index 30a78c708b..04f3f8847d 100644 --- a/sysdeps/ia64/fpu/s_fmaxf.S +++ b/sysdeps/ia64/fpu/s_fmaxf.S @@ -112,3 +112,4 @@ GLOBAL_LIBM_ENTRY(fmaxf) ;; GLOBAL_LIBM_END(fmaxf) +libm_alias_float_other (fmax, fmax) diff --git a/sysdeps/ia64/fpu/s_fmaxl.S b/sysdeps/ia64/fpu/s_fmaxl.S index a575cf00eb..9d5a1a76a4 100644 --- a/sysdeps/ia64/fpu/s_fmaxl.S +++ b/sysdeps/ia64/fpu/s_fmaxl.S @@ -112,3 +112,4 @@ GLOBAL_LIBM_ENTRY(fmaxl) ;; GLOBAL_LIBM_END(fmaxl) +libm_alias_ldouble_other (fmax, fmax) diff --git a/sysdeps/ia64/fpu/s_fpclassify.S b/sysdeps/ia64/fpu/s_fpclassify.S index 6d8a9bd216..edb4ae281e 100644 --- a/sysdeps/ia64/fpu/s_fpclassify.S +++ b/sysdeps/ia64/fpu/s_fpclassify.S @@ -1,5 +1,5 @@ /* Return classification value corresponding to argument. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/fpu/s_frexp.c b/sysdeps/ia64/fpu/s_frexp.c index 95421eafdd..43794ea308 100644 --- a/sysdeps/ia64/fpu/s_frexp.c +++ b/sysdeps/ia64/fpu/s_frexp.c @@ -65,3 +65,4 @@ double frexp(double x, int *y) #endif } +libm_alias_double_other (frexp, frexp) diff --git a/sysdeps/ia64/fpu/s_frexpf.c b/sysdeps/ia64/fpu/s_frexpf.c index 03290b2846..fbdee846d9 100644 --- a/sysdeps/ia64/fpu/s_frexpf.c +++ b/sysdeps/ia64/fpu/s_frexpf.c @@ -65,3 +65,4 @@ float frexpf(float x, int *y) #endif } +libm_alias_float_other (frexp, frexp) diff --git a/sysdeps/ia64/fpu/s_frexpl.c b/sysdeps/ia64/fpu/s_frexpl.c index f999e20361..7da92550b1 100644 --- a/sysdeps/ia64/fpu/s_frexpl.c +++ b/sysdeps/ia64/fpu/s_frexpl.c @@ -65,3 +65,4 @@ long double frexpl(long double x, int *y) #endif } +libm_alias_ldouble_other (frexp, frexp) diff --git a/sysdeps/ia64/fpu/s_isinf.S b/sysdeps/ia64/fpu/s_isinf.S index 8c6d425f62..bf68b6910e 100644 --- a/sysdeps/ia64/fpu/s_isinf.S +++ b/sysdeps/ia64/fpu/s_isinf.S @@ -1,5 +1,5 @@ /* Test for inf/-inf - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jes Sorensen <jes@linuxcare.com>, October 2000. diff --git a/sysdeps/ia64/fpu/s_isnan.S b/sysdeps/ia64/fpu/s_isnan.S index df5aadec05..db992b7184 100644 --- a/sysdeps/ia64/fpu/s_isnan.S +++ b/sysdeps/ia64/fpu/s_isnan.S @@ -1,5 +1,5 @@ /* Test for NaN - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jes Sorensen <jes@linuxcare.com>, October 2000. diff --git a/sysdeps/ia64/fpu/s_ldexp.c b/sysdeps/ia64/fpu/s_ldexp.c index 6cf0ffc083..36e3a2d067 100644 --- a/sysdeps/ia64/fpu/s_ldexp.c +++ b/sysdeps/ia64/fpu/s_ldexp.c @@ -59,3 +59,4 @@ double ldexp(double x, int n) #endif } +libm_alias_double_other (ldexp, ldexp) diff --git a/sysdeps/ia64/fpu/s_ldexpf.c b/sysdeps/ia64/fpu/s_ldexpf.c index 64e335b0ec..c56db0e0b3 100644 --- a/sysdeps/ia64/fpu/s_ldexpf.c +++ b/sysdeps/ia64/fpu/s_ldexpf.c @@ -59,3 +59,4 @@ float ldexpf(float x, int n) #endif } +libm_alias_float_other (ldexp, ldexp) diff --git a/sysdeps/ia64/fpu/s_ldexpl.c b/sysdeps/ia64/fpu/s_ldexpl.c index aa6f2d7642..594e112562 100644 --- a/sysdeps/ia64/fpu/s_ldexpl.c +++ b/sysdeps/ia64/fpu/s_ldexpl.c @@ -59,3 +59,4 @@ long double ldexpl(long double x, int n) #endif } +libm_alias_ldouble_other (ldexp, ldexp) diff --git a/sysdeps/ia64/fpu/s_log1p.S b/sysdeps/ia64/fpu/s_log1p.S index 94f9f872e9..02fa3ef49e 100644 --- a/sysdeps/ia64/fpu/s_log1p.S +++ b/sysdeps/ia64/fpu/s_log1p.S @@ -1047,6 +1047,7 @@ log_libm_err: ;; GLOBAL_IEEE754_END(log1p) +libm_alias_double_other (__log1p, log1p) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/s_log1pf.S b/sysdeps/ia64/fpu/s_log1pf.S index b04b18ed74..45638b5b6f 100644 --- a/sysdeps/ia64/fpu/s_log1pf.S +++ b/sysdeps/ia64/fpu/s_log1pf.S @@ -733,6 +733,7 @@ log_libm_err: ;; GLOBAL_IEEE754_END(log1pf) +libm_alias_float_other (__log1p, log1p) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/s_log1pl.S b/sysdeps/ia64/fpu/s_log1pl.S index 3c8be02826..e96782bbac 100644 --- a/sysdeps/ia64/fpu/s_log1pl.S +++ b/sysdeps/ia64/fpu/s_log1pl.S @@ -1145,6 +1145,7 @@ LOG1P_LT_Minus_1: GLOBAL_IEEE754_END(log1pl) +libm_alias_ldouble_other (__log1p, log1p) LOCAL_LIBM_ENTRY(__libm_error_region) .prologue diff --git a/sysdeps/ia64/fpu/s_logb.S b/sysdeps/ia64/fpu/s_logb.S index 7ee898712b..c73db8791e 100644 --- a/sysdeps/ia64/fpu/s_logb.S +++ b/sysdeps/ia64/fpu/s_logb.S @@ -218,6 +218,7 @@ LOGB_ZERO: ;; GLOBAL_LIBM_END(logb) +libm_alias_double_other (logb, logb) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/s_logbf.S b/sysdeps/ia64/fpu/s_logbf.S index eefa270db9..72ecb390e5 100644 --- a/sysdeps/ia64/fpu/s_logbf.S +++ b/sysdeps/ia64/fpu/s_logbf.S @@ -218,6 +218,7 @@ LOGB_ZERO: ;; GLOBAL_LIBM_END(logbf) +libm_alias_float_other (logb, logb) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/s_logbl.S b/sysdeps/ia64/fpu/s_logbl.S index e312c1b438..0100a3e9d7 100644 --- a/sysdeps/ia64/fpu/s_logbl.S +++ b/sysdeps/ia64/fpu/s_logbl.S @@ -218,6 +218,7 @@ LOGB_ZERO: ;; GLOBAL_LIBM_END(logbl) +libm_alias_ldouble_other (logb, logb) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/s_matherrf.c b/sysdeps/ia64/fpu/s_matherrf.c index a47d4b89a2..5808c04573 100644 --- a/sysdeps/ia64/fpu/s_matherrf.c +++ b/sysdeps/ia64/fpu/s_matherrf.c @@ -13,8 +13,10 @@ #include <math.h> #include <math_private.h> +#include <math-svid-compat.h> #include "libm_support.h" +#if LIBM_SVID_COMPAT int weak_function __matherrf(struct exceptionf *x) @@ -23,4 +25,5 @@ __matherrf(struct exceptionf *x) if(x->arg1!=x->arg1) return 0; return n; } -weak_alias (__matherrf, matherrf) +compat_symbol (libm, __matherrf, matherrf, GLIBC_2_2_3); +#endif diff --git a/sysdeps/ia64/fpu/s_matherrl.c b/sysdeps/ia64/fpu/s_matherrl.c index 6fe92d7739..dc64b31e50 100644 --- a/sysdeps/ia64/fpu/s_matherrl.c +++ b/sysdeps/ia64/fpu/s_matherrl.c @@ -13,8 +13,10 @@ #include <math.h> #include <math_private.h> +#include <math-svid-compat.h> #include "libm_support.h" +#if LIBM_SVID_COMPAT int weak_function __matherrl(struct exceptionl *x) @@ -23,4 +25,5 @@ __matherrl(struct exceptionl *x) if(x->arg1!=x->arg1) return 0; return n; } -weak_alias (__matherrl, matherrl) +compat_symbol (libm, __matherrl, matherrl, GLIBC_2_2_3); +#endif diff --git a/sysdeps/ia64/fpu/s_modf.S b/sysdeps/ia64/fpu/s_modf.S index 4634acfb0d..2b6ca8eda7 100644 --- a/sysdeps/ia64/fpu/s_modf.S +++ b/sysdeps/ia64/fpu/s_modf.S @@ -276,3 +276,4 @@ MODF_DENORM: } GLOBAL_LIBM_END(modf) +libm_alias_double_other (modf, modf) diff --git a/sysdeps/ia64/fpu/s_modff.S b/sysdeps/ia64/fpu/s_modff.S index 36e02be81b..31f43c60d9 100644 --- a/sysdeps/ia64/fpu/s_modff.S +++ b/sysdeps/ia64/fpu/s_modff.S @@ -276,3 +276,4 @@ MODF_DENORM: } GLOBAL_LIBM_END(modff) +libm_alias_float_other (modf, modf) diff --git a/sysdeps/ia64/fpu/s_modfl.S b/sysdeps/ia64/fpu/s_modfl.S index e95d520b4b..3139999536 100644 --- a/sysdeps/ia64/fpu/s_modfl.S +++ b/sysdeps/ia64/fpu/s_modfl.S @@ -271,3 +271,4 @@ MODF_DENORM: } GLOBAL_LIBM_END(modfl) +libm_alias_ldouble_other (modf, modf) diff --git a/sysdeps/ia64/fpu/s_nearbyint.S b/sysdeps/ia64/fpu/s_nearbyint.S index ec1ff22dbc..91508e8cc4 100644 --- a/sysdeps/ia64/fpu/s_nearbyint.S +++ b/sysdeps/ia64/fpu/s_nearbyint.S @@ -215,3 +215,4 @@ RINT_NOT_ROUND_NEAREST: ;; GLOBAL_LIBM_END(nearbyint) +libm_alias_double_other (nearbyint, nearbyint) diff --git a/sysdeps/ia64/fpu/s_nearbyintf.S b/sysdeps/ia64/fpu/s_nearbyintf.S index aac7b5c126..8a80fb0829 100644 --- a/sysdeps/ia64/fpu/s_nearbyintf.S +++ b/sysdeps/ia64/fpu/s_nearbyintf.S @@ -215,3 +215,4 @@ RINT_NOT_ROUND_NEAREST: ;; GLOBAL_LIBM_END(nearbyintf) +libm_alias_float_other (nearbyint, nearbyint) diff --git a/sysdeps/ia64/fpu/s_nearbyintl.S b/sysdeps/ia64/fpu/s_nearbyintl.S index 83adc07896..bf4e8a9afd 100644 --- a/sysdeps/ia64/fpu/s_nearbyintl.S +++ b/sysdeps/ia64/fpu/s_nearbyintl.S @@ -215,4 +215,4 @@ RINT_NOT_ROUND_NEAREST: ;; GLOBAL_LIBM_END(__nearbyintl) -weak_alias (__nearbyintl, nearbyintl) +libm_alias_ldouble (__nearbyint, nearbyint) diff --git a/sysdeps/ia64/fpu/s_nextafter.S b/sysdeps/ia64/fpu/s_nextafter.S index 44a43c50b9..fa1d3f1633 100644 --- a/sysdeps/ia64/fpu/s_nextafter.S +++ b/sysdeps/ia64/fpu/s_nextafter.S @@ -431,6 +431,7 @@ NEXT_OVERFLOW: ;; GLOBAL_LIBM_END(nextafter) +libm_alias_double_other (nextafter, nextafter) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/s_nextafterf.S b/sysdeps/ia64/fpu/s_nextafterf.S index 5769ce8f9b..ca8d6ab608 100644 --- a/sysdeps/ia64/fpu/s_nextafterf.S +++ b/sysdeps/ia64/fpu/s_nextafterf.S @@ -437,6 +437,7 @@ NEXT_OVERFLOW: ;; GLOBAL_LIBM_END(nextafterf) +libm_alias_float_other (nextafter, nextafter) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/s_nextafterl.S b/sysdeps/ia64/fpu/s_nextafterl.S index d771a97389..cf2feba043 100644 --- a/sysdeps/ia64/fpu/s_nextafterl.S +++ b/sysdeps/ia64/fpu/s_nextafterl.S @@ -436,6 +436,7 @@ NEXT_OVERFLOW: ;; GLOBAL_LIBM_END(nextafterl) +libm_alias_ldouble_other (nextafter, nextafter) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/s_rint.S b/sysdeps/ia64/fpu/s_rint.S index 1735d9b498..3a546d963f 100644 --- a/sysdeps/ia64/fpu/s_rint.S +++ b/sysdeps/ia64/fpu/s_rint.S @@ -227,3 +227,4 @@ RINT_NOT_ROUND_NEAREST: ;; GLOBAL_IEEE754_END(rint) +libm_alias_double_other (__rint, rint) diff --git a/sysdeps/ia64/fpu/s_rintf.S b/sysdeps/ia64/fpu/s_rintf.S index 05d6b411f2..1d9a538538 100644 --- a/sysdeps/ia64/fpu/s_rintf.S +++ b/sysdeps/ia64/fpu/s_rintf.S @@ -227,3 +227,4 @@ RINT_NOT_ROUND_NEAREST: ;; GLOBAL_IEEE754_END(rintf) +libm_alias_float_other (__rint, rint) diff --git a/sysdeps/ia64/fpu/s_rintl.S b/sysdeps/ia64/fpu/s_rintl.S index b5402149ec..8b6c87162b 100644 --- a/sysdeps/ia64/fpu/s_rintl.S +++ b/sysdeps/ia64/fpu/s_rintl.S @@ -227,3 +227,4 @@ RINT_NOT_ROUND_NEAREST: ;; GLOBAL_IEEE754_END(rintl) +libm_alias_ldouble_other (__rint, rint) diff --git a/sysdeps/ia64/fpu/s_round.S b/sysdeps/ia64/fpu/s_round.S index 821187522b..03afb1bf73 100644 --- a/sysdeps/ia64/fpu/s_round.S +++ b/sysdeps/ia64/fpu/s_round.S @@ -231,3 +231,4 @@ ROUND_UNORM: ;; GLOBAL_LIBM_END(round) +libm_alias_double_other (round, round) diff --git a/sysdeps/ia64/fpu/s_roundf.S b/sysdeps/ia64/fpu/s_roundf.S index c0351b4a4d..8de595472d 100644 --- a/sysdeps/ia64/fpu/s_roundf.S +++ b/sysdeps/ia64/fpu/s_roundf.S @@ -231,3 +231,4 @@ ROUND_UNORM: ;; GLOBAL_LIBM_END(roundf) +libm_alias_float_other (round, round) diff --git a/sysdeps/ia64/fpu/s_roundl.S b/sysdeps/ia64/fpu/s_roundl.S index 355eaf5057..8ec511f69f 100644 --- a/sysdeps/ia64/fpu/s_roundl.S +++ b/sysdeps/ia64/fpu/s_roundl.S @@ -231,3 +231,4 @@ ROUND_UNORM: ;; GLOBAL_LIBM_END(roundl) +libm_alias_ldouble_other (round, round) diff --git a/sysdeps/ia64/fpu/s_scalblnf.c b/sysdeps/ia64/fpu/s_scalblnf.c index ed92bfd989..d07069dccf 100644 --- a/sysdeps/ia64/fpu/s_scalblnf.c +++ b/sysdeps/ia64/fpu/s_scalblnf.c @@ -59,3 +59,4 @@ float scalblnf(float x, long int n) #endif } +libm_alias_float_other (scalbln, scalbln) diff --git a/sysdeps/ia64/fpu/s_scalbn.c b/sysdeps/ia64/fpu/s_scalbn.c index 23e8d818b2..8bb7b2aa5e 100644 --- a/sysdeps/ia64/fpu/s_scalbn.c +++ b/sysdeps/ia64/fpu/s_scalbn.c @@ -60,4 +60,4 @@ double __scalbn(double x, int n) } -weak_alias (__scalbn, scalbn) +libm_alias_double (__scalbn, scalbn) diff --git a/sysdeps/ia64/fpu/s_scalbnf.c b/sysdeps/ia64/fpu/s_scalbnf.c index ec2582cddc..ee2296064f 100644 --- a/sysdeps/ia64/fpu/s_scalbnf.c +++ b/sysdeps/ia64/fpu/s_scalbnf.c @@ -60,4 +60,4 @@ float __scalbnf(float x, int n) } -weak_alias (__scalbnf, scalbnf) +libm_alias_float (__scalbn, scalbn) diff --git a/sysdeps/ia64/fpu/s_scalbnl.c b/sysdeps/ia64/fpu/s_scalbnl.c index 73ffb904b7..dca01cfb5f 100644 --- a/sysdeps/ia64/fpu/s_scalbnl.c +++ b/sysdeps/ia64/fpu/s_scalbnl.c @@ -60,4 +60,4 @@ long double __scalbnl(long double x, int n) } -weak_alias (__scalbnl, scalbnl) +libm_alias_ldouble (__scalbn, scalbn) diff --git a/sysdeps/ia64/fpu/s_signbit.S b/sysdeps/ia64/fpu/s_signbit.S index 76193de326..015db97464 100644 --- a/sysdeps/ia64/fpu/s_signbit.S +++ b/sysdeps/ia64/fpu/s_signbit.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/fpu/s_tan.S b/sysdeps/ia64/fpu/s_tan.S index 050b4434e1..8305b8e91b 100644 --- a/sysdeps/ia64/fpu/s_tan.S +++ b/sysdeps/ia64/fpu/s_tan.S @@ -737,6 +737,7 @@ COMMON_PATH: br.ret.sptk b0 ;; } GLOBAL_IEEE754_END(tan) +libm_alias_double_other (__tan, tan) LOCAL_LIBM_ENTRY(__libm_callout) diff --git a/sysdeps/ia64/fpu/s_tanf.S b/sysdeps/ia64/fpu/s_tanf.S index 7df762f621..a25bb943fe 100644 --- a/sysdeps/ia64/fpu/s_tanf.S +++ b/sysdeps/ia64/fpu/s_tanf.S @@ -550,6 +550,7 @@ Return_From_Huges: ;; GLOBAL_IEEE754_END(tanf) +libm_alias_float_other (__tan, tan) LOCAL_LIBM_ENTRY(__libm_callout) diff --git a/sysdeps/ia64/fpu/s_tanh.S b/sysdeps/ia64/fpu/s_tanh.S index 393af1f8c2..56cc43dfea 100644 --- a/sysdeps/ia64/fpu/s_tanh.S +++ b/sysdeps/ia64/fpu/s_tanh.S @@ -982,3 +982,4 @@ _tanh_spec: };; GLOBAL_LIBM_END(tanh) +libm_alias_double_other (tanh, tanh) diff --git a/sysdeps/ia64/fpu/s_tanhf.S b/sysdeps/ia64/fpu/s_tanhf.S index 4749477b40..ffbc9ea175 100644 --- a/sysdeps/ia64/fpu/s_tanhf.S +++ b/sysdeps/ia64/fpu/s_tanhf.S @@ -579,3 +579,4 @@ tanhf_denormal: ;; GLOBAL_LIBM_END(tanhf) +libm_alias_float_other (tanh, tanh) diff --git a/sysdeps/ia64/fpu/s_tanhl.S b/sysdeps/ia64/fpu/s_tanhl.S index 2ebd1e780e..1810e4daea 100644 --- a/sysdeps/ia64/fpu/s_tanhl.S +++ b/sysdeps/ia64/fpu/s_tanhl.S @@ -1342,3 +1342,4 @@ _0_to_1o8: };; GLOBAL_LIBM_END(tanhl) +libm_alias_ldouble_other (tanh, tanh) diff --git a/sysdeps/ia64/fpu/s_tanl.S b/sysdeps/ia64/fpu/s_tanl.S index b59936c4a1..ab893fc2b4 100644 --- a/sysdeps/ia64/fpu/s_tanl.S +++ b/sysdeps/ia64/fpu/s_tanl.S @@ -3091,6 +3091,7 @@ TANL_UNSUPPORTED: ;; GLOBAL_IEEE754_END(tanl) +libm_alias_ldouble_other (__tan, tan) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/s_trunc.S b/sysdeps/ia64/fpu/s_trunc.S index b9ad03b5a8..e0aa3d33c5 100644 --- a/sysdeps/ia64/fpu/s_trunc.S +++ b/sysdeps/ia64/fpu/s_trunc.S @@ -164,3 +164,4 @@ TRUNC_UNORM: ;; GLOBAL_LIBM_END(trunc) +libm_alias_double_other (trunc, trunc) diff --git a/sysdeps/ia64/fpu/s_truncf.S b/sysdeps/ia64/fpu/s_truncf.S index ff40bc7101..b9a055b393 100644 --- a/sysdeps/ia64/fpu/s_truncf.S +++ b/sysdeps/ia64/fpu/s_truncf.S @@ -164,3 +164,4 @@ TRUNC_UNORM: ;; GLOBAL_LIBM_END(truncf) +libm_alias_float_other (trunc, trunc) diff --git a/sysdeps/ia64/fpu/s_truncl.S b/sysdeps/ia64/fpu/s_truncl.S index 1afa19ba2b..f73e7b46b9 100644 --- a/sysdeps/ia64/fpu/s_truncl.S +++ b/sysdeps/ia64/fpu/s_truncl.S @@ -164,3 +164,4 @@ TRUNC_UNORM: ;; GLOBAL_LIBM_END(truncl) +libm_alias_ldouble_other (trunc, trunc) diff --git a/sysdeps/ia64/fpu/sfp-machine.h b/sysdeps/ia64/fpu/sfp-machine.h new file mode 100644 index 0000000000..45e844d3da --- /dev/null +++ b/sysdeps/ia64/fpu/sfp-machine.h @@ -0,0 +1,100 @@ +#define _FP_W_TYPE_SIZE 64 +#define _FP_W_TYPE unsigned long +#define _FP_WS_TYPE signed long +#define _FP_I_TYPE long + +typedef int TItype __attribute__ ((mode (TI))); +typedef unsigned int UTItype __attribute__ ((mode (TI))); + +#define TI_BITS (__CHAR_BIT__ * (int)sizeof(TItype)) + +/* The type of the result of a floating point comparison. This must + match `__libgcc_cmp_return__' in GCC for the target. */ +typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__))); +#define CMPtype __gcc_CMPtype + +#define _FP_MUL_MEAT_Q(R,X,Y) \ + _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm) + +#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_2_udiv(Q,R,X,Y) + +#define _FP_NANFRAC_S _FP_QNANBIT_S +#define _FP_NANFRAC_D _FP_QNANBIT_D +#define _FP_NANFRAC_E _FP_QNANBIT_E, 0 +#define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0 + +#define _FP_KEEPNANFRACP 1 +#define _FP_QNANNEGATEDP 0 + +#define _FP_NANSIGN_S 1 +#define _FP_NANSIGN_D 1 +#define _FP_NANSIGN_E 1 +#define _FP_NANSIGN_Q 1 + +/* Here is something Intel misdesigned: the specs don't define + the case where we have two NaNs with same mantissas, but + different sign. Different operations pick up different NaNs. */ +#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ + do { \ + if (_FP_FRAC_GT_##wc(X, Y) \ + || (_FP_FRAC_EQ_##wc(X,Y) && (OP == '+' || OP == '*'))) \ + { \ + R##_s = X##_s; \ + _FP_FRAC_COPY_##wc(R,X); \ + } \ + else \ + { \ + R##_s = Y##_s; \ + _FP_FRAC_COPY_##wc(R,Y); \ + } \ + R##_c = FP_CLS_NAN; \ + } while (0) + +#define FP_EX_INVALID 0x01 +#define FP_EX_DENORM 0x02 +#define FP_EX_DIVZERO 0x04 +#define FP_EX_OVERFLOW 0x08 +#define FP_EX_UNDERFLOW 0x10 +#define FP_EX_INEXACT 0x20 +#define FP_EX_ALL \ + (FP_EX_INVALID | FP_EX_DENORM | FP_EX_DIVZERO | FP_EX_OVERFLOW \ + | FP_EX_UNDERFLOW | FP_EX_INEXACT) + +#define _FP_TININESS_AFTER_ROUNDING 1 + +void __sfp_handle_exceptions (int); + +#define FP_HANDLE_EXCEPTIONS \ + do { \ + if (__builtin_expect (_fex, 0)) \ + __sfp_handle_exceptions (_fex); \ + } while (0); + +#define FP_TRAPPING_EXCEPTIONS (~_fcw & FP_EX_ALL) + +#define FP_RND_NEAREST 0 +#define FP_RND_ZERO 0xc00L +#define FP_RND_PINF 0x800L +#define FP_RND_MINF 0x400L + +#define FP_RND_MASK 0xc00L + +#define _FP_DECL_EX \ + unsigned long int _fcw __attribute__ ((unused)) = FP_RND_NEAREST + +#define FP_INIT_ROUNDMODE \ + do { \ + __asm__ __volatile__ ("mov.m %0 = ar.fpsr" : "=r" (_fcw)); \ + } while (0) + +#define FP_ROUNDMODE (_fcw & FP_RND_MASK) + +#define __LITTLE_ENDIAN 1234 +#define __BIG_ENDIAN 4321 + +#define __BYTE_ORDER __LITTLE_ENDIAN + +/* Define ALIASNAME as a strong alias for NAME. */ +#define strong_alias(name, aliasname) _strong_alias(name, aliasname) +#define _strong_alias(name, aliasname) \ + extern __typeof (name) aliasname __attribute__ ((alias (#name))); diff --git a/sysdeps/ia64/fpu/w_acos.c b/sysdeps/ia64/fpu/w_acos.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_acos.c +++ b/sysdeps/ia64/fpu/w_acos.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/k_rem_pio2.c b/sysdeps/ia64/fpu/w_acos_compat.c index 41254ae60a..41254ae60a 100644 --- a/sysdeps/ia64/fpu/k_rem_pio2.c +++ b/sysdeps/ia64/fpu/w_acos_compat.c diff --git a/sysdeps/ia64/fpu/w_acosf_compat.c b/sysdeps/ia64/fpu/w_acosf_compat.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ia64/fpu/w_acosf_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_acosh.c b/sysdeps/ia64/fpu/w_acosh.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_acosh.c +++ b/sysdeps/ia64/fpu/w_acosh.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/k_rem_pio2l.c b/sysdeps/ia64/fpu/w_acosh_compat.c index 41254ae60a..41254ae60a 100644 --- a/sysdeps/ia64/fpu/k_rem_pio2l.c +++ b/sysdeps/ia64/fpu/w_acosh_compat.c diff --git a/sysdeps/ia64/fpu/w_acoshf.c b/sysdeps/ia64/fpu/w_acoshf.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_acoshf.c +++ b/sysdeps/ia64/fpu/w_acoshf.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_scalb.c b/sysdeps/ia64/fpu/w_acoshf_compat.c index 41254ae60a..41254ae60a 100644 --- a/sysdeps/ia64/fpu/w_scalb.c +++ b/sysdeps/ia64/fpu/w_acoshf_compat.c diff --git a/sysdeps/ia64/fpu/w_acoshl.c b/sysdeps/ia64/fpu/w_acoshl.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_acoshl.c +++ b/sysdeps/ia64/fpu/w_acoshl.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_scalbf.c b/sysdeps/ia64/fpu/w_acoshl_compat.c index 41254ae60a..41254ae60a 100644 --- a/sysdeps/ia64/fpu/w_scalbf.c +++ b/sysdeps/ia64/fpu/w_acoshl_compat.c diff --git a/sysdeps/ia64/fpu/w_acosl_compat.c b/sysdeps/ia64/fpu/w_acosl_compat.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ia64/fpu/w_acosl_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_asin.c b/sysdeps/ia64/fpu/w_asin.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_asin.c +++ b/sysdeps/ia64/fpu/w_asin.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_scalbl.c b/sysdeps/ia64/fpu/w_asin_compat.c index 41254ae60a..41254ae60a 100644 --- a/sysdeps/ia64/fpu/w_scalbl.c +++ b/sysdeps/ia64/fpu/w_asin_compat.c diff --git a/sysdeps/ia64/fpu/w_asinf.c b/sysdeps/ia64/fpu/w_asinf.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_asinf.c +++ b/sysdeps/ia64/fpu/w_asinf.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_asinf_compat.c b/sysdeps/ia64/fpu/w_asinf_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_asinf_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_asinl.c b/sysdeps/ia64/fpu/w_asinl.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_asinl.c +++ b/sysdeps/ia64/fpu/w_asinl.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_asinl_compat.c b/sysdeps/ia64/fpu/w_asinl_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_asinl_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atan2.c b/sysdeps/ia64/fpu/w_atan2.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_atan2.c +++ b/sysdeps/ia64/fpu/w_atan2.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atan2_compat.c b/sysdeps/ia64/fpu/w_atan2_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_atan2_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atan2f.c b/sysdeps/ia64/fpu/w_atan2f.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_atan2f.c +++ b/sysdeps/ia64/fpu/w_atan2f.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atan2f_compat.c b/sysdeps/ia64/fpu/w_atan2f_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_atan2f_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atan2l.c b/sysdeps/ia64/fpu/w_atan2l.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_atan2l.c +++ b/sysdeps/ia64/fpu/w_atan2l.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atan2l_compat.c b/sysdeps/ia64/fpu/w_atan2l_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_atan2l_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atanh.c b/sysdeps/ia64/fpu/w_atanh.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_atanh.c +++ b/sysdeps/ia64/fpu/w_atanh.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atanh_compat.c b/sysdeps/ia64/fpu/w_atanh_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_atanh_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atanhf.c b/sysdeps/ia64/fpu/w_atanhf.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_atanhf.c +++ b/sysdeps/ia64/fpu/w_atanhf.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atanhf_compat.c b/sysdeps/ia64/fpu/w_atanhf_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_atanhf_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atanhl.c b/sysdeps/ia64/fpu/w_atanhl.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_atanhl.c +++ b/sysdeps/ia64/fpu/w_atanhl.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atanhl_compat.c b/sysdeps/ia64/fpu/w_atanhl_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_atanhl_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_cosh.c b/sysdeps/ia64/fpu/w_cosh.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_cosh.c +++ b/sysdeps/ia64/fpu/w_cosh.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_cosh_compat.c b/sysdeps/ia64/fpu/w_cosh_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_cosh_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_coshf.c b/sysdeps/ia64/fpu/w_coshf.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_coshf.c +++ b/sysdeps/ia64/fpu/w_coshf.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_coshf_compat.c b/sysdeps/ia64/fpu/w_coshf_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_coshf_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_coshl.c b/sysdeps/ia64/fpu/w_coshl.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_coshl.c +++ b/sysdeps/ia64/fpu/w_coshl.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_coshl_compat.c b/sysdeps/ia64/fpu/w_coshl_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_coshl_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp.c b/sysdeps/ia64/fpu/w_exp.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_exp.c +++ b/sysdeps/ia64/fpu/w_exp.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp10.c b/sysdeps/ia64/fpu/w_exp10.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_exp10.c +++ b/sysdeps/ia64/fpu/w_exp10.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp10_compat.c b/sysdeps/ia64/fpu/w_exp10_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_exp10_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp10f.c b/sysdeps/ia64/fpu/w_exp10f.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_exp10f.c +++ b/sysdeps/ia64/fpu/w_exp10f.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp10f_compat.c b/sysdeps/ia64/fpu/w_exp10f_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_exp10f_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp10l.c b/sysdeps/ia64/fpu/w_exp10l.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_exp10l.c +++ b/sysdeps/ia64/fpu/w_exp10l.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp10l_compat.c b/sysdeps/ia64/fpu/w_exp10l_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_exp10l_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp2.c b/sysdeps/ia64/fpu/w_exp2.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_exp2.c +++ b/sysdeps/ia64/fpu/w_exp2.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp2_compat.c b/sysdeps/ia64/fpu/w_exp2_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_exp2_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp2f.c b/sysdeps/ia64/fpu/w_exp2f.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_exp2f.c +++ b/sysdeps/ia64/fpu/w_exp2f.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp2f_compat.c b/sysdeps/ia64/fpu/w_exp2f_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_exp2f_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp2l.c b/sysdeps/ia64/fpu/w_exp2l.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_exp2l.c +++ b/sysdeps/ia64/fpu/w_exp2l.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp2l_compat.c b/sysdeps/ia64/fpu/w_exp2l_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_exp2l_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp_compat.c b/sysdeps/ia64/fpu/w_exp_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_exp_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_expf.c b/sysdeps/ia64/fpu/w_expf.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_expf.c +++ b/sysdeps/ia64/fpu/w_expf.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_expf_compat.c b/sysdeps/ia64/fpu/w_expf_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_expf_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_expl.c b/sysdeps/ia64/fpu/w_expl.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_expl.c +++ b/sysdeps/ia64/fpu/w_expl.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_expl_compat.c b/sysdeps/ia64/fpu/w_expl_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_expl_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_fmod.c b/sysdeps/ia64/fpu/w_fmod.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_fmod.c +++ b/sysdeps/ia64/fpu/w_fmod.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_fmod_compat.c b/sysdeps/ia64/fpu/w_fmod_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_fmod_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_fmodf.c b/sysdeps/ia64/fpu/w_fmodf.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_fmodf.c +++ b/sysdeps/ia64/fpu/w_fmodf.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_fmodf_compat.c b/sysdeps/ia64/fpu/w_fmodf_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_fmodf_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_fmodl.c b/sysdeps/ia64/fpu/w_fmodl.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_fmodl.c +++ b/sysdeps/ia64/fpu/w_fmodl.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_fmodl_compat.c b/sysdeps/ia64/fpu/w_fmodl_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_fmodl_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_hypot.c b/sysdeps/ia64/fpu/w_hypot.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_hypot.c +++ b/sysdeps/ia64/fpu/w_hypot.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_hypot_compat.c b/sysdeps/ia64/fpu/w_hypot_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_hypot_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_hypotf.c b/sysdeps/ia64/fpu/w_hypotf.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_hypotf.c +++ b/sysdeps/ia64/fpu/w_hypotf.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_hypotf_compat.c b/sysdeps/ia64/fpu/w_hypotf_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_hypotf_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_hypotl.c b/sysdeps/ia64/fpu/w_hypotl.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_hypotl.c +++ b/sysdeps/ia64/fpu/w_hypotl.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_hypotl_compat.c b/sysdeps/ia64/fpu/w_hypotl_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_hypotl_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_lgamma_main.c b/sysdeps/ia64/fpu/w_lgamma_main.c index 3ad73b6756..2fd6dd1b04 100644 --- a/sysdeps/ia64/fpu/w_lgamma_main.c +++ b/sysdeps/ia64/fpu/w_lgamma_main.c @@ -69,6 +69,7 @@ double LGFUNC (lgamma) (double x) compat_symbol (libm, __lgamma_compat, lgamma, LGAMMA_OLD_VER); # else versioned_symbol (libm, __ieee754_lgamma, lgamma, LGAMMA_NEW_VER); +libm_alias_double_other (__ieee754_lgamma, lgamma) # endif # if GAMMA_ALIAS strong_alias (LGFUNC (lgamma), __ieee754_gamma) diff --git a/sysdeps/ia64/fpu/w_lgamma_r.c b/sysdeps/ia64/fpu/w_lgamma_r.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_lgamma_r.c +++ b/sysdeps/ia64/fpu/w_lgamma_r.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_lgamma_r_compat.c b/sysdeps/ia64/fpu/w_lgamma_r_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_lgamma_r_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_lgammaf_main.c b/sysdeps/ia64/fpu/w_lgammaf_main.c index 2f3dd41088..dc781aacab 100644 --- a/sysdeps/ia64/fpu/w_lgammaf_main.c +++ b/sysdeps/ia64/fpu/w_lgammaf_main.c @@ -69,6 +69,7 @@ float LGFUNC (lgammaf) (float x) compat_symbol (libm, __lgammaf_compat, lgammaf, LGAMMA_OLD_VER); # else versioned_symbol (libm, __ieee754_lgammaf, lgammaf, LGAMMA_NEW_VER); +libm_alias_float_other (__ieee754_lgamma, lgamma) # endif # if GAMMA_ALIAS strong_alias (LGFUNC (lgammaf), __ieee754_gammaf) diff --git a/sysdeps/ia64/fpu/w_lgammaf_r.c b/sysdeps/ia64/fpu/w_lgammaf_r.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_lgammaf_r.c +++ b/sysdeps/ia64/fpu/w_lgammaf_r.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_lgammaf_r_compat.c b/sysdeps/ia64/fpu/w_lgammaf_r_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_lgammaf_r_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_lgammal_main.c b/sysdeps/ia64/fpu/w_lgammal_main.c index 7879611d54..46e4d7f629 100644 --- a/sysdeps/ia64/fpu/w_lgammal_main.c +++ b/sysdeps/ia64/fpu/w_lgammal_main.c @@ -68,6 +68,7 @@ long double LGFUNC (lgammal) (long double x) compat_symbol (libm, __lgammal_compat, lgammal, LGAMMA_OLD_VER); # else versioned_symbol (libm, __ieee754_lgammal, lgammal, LGAMMA_NEW_VER); +libm_alias_ldouble_other (__ieee754_lgamma, lgamma) # endif # if GAMMA_ALIAS strong_alias (LGFUNC (lgammal), __ieee754_gammal) diff --git a/sysdeps/ia64/fpu/w_lgammal_r.c b/sysdeps/ia64/fpu/w_lgammal_r.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_lgammal_r.c +++ b/sysdeps/ia64/fpu/w_lgammal_r.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_lgammal_r_compat.c b/sysdeps/ia64/fpu/w_lgammal_r_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_lgammal_r_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log.c b/sysdeps/ia64/fpu/w_log.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_log.c +++ b/sysdeps/ia64/fpu/w_log.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log10.c b/sysdeps/ia64/fpu/w_log10.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_log10.c +++ b/sysdeps/ia64/fpu/w_log10.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log10_compat.c b/sysdeps/ia64/fpu/w_log10_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_log10_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log10f.c b/sysdeps/ia64/fpu/w_log10f.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_log10f.c +++ b/sysdeps/ia64/fpu/w_log10f.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log10f_compat.c b/sysdeps/ia64/fpu/w_log10f_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_log10f_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log10l.c b/sysdeps/ia64/fpu/w_log10l.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_log10l.c +++ b/sysdeps/ia64/fpu/w_log10l.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log10l_compat.c b/sysdeps/ia64/fpu/w_log10l_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_log10l_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log1p.c b/sysdeps/ia64/fpu/w_log1p.c index 82f2667b8d..0c15b166f8 100644 --- a/sysdeps/ia64/fpu/w_log1p.c +++ b/sysdeps/ia64/fpu/w_log1p.c @@ -1,5 +1,5 @@ /* Wrapper for __log1p that handles setting errno. - Copyright (C) 2015-2016 Free Software Foundation, Inc. + Copyright (C) 2015-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/fpu/w_log1pf.c b/sysdeps/ia64/fpu/w_log1pf.c index 4ef6b36ac4..0840e72f4e 100644 --- a/sysdeps/ia64/fpu/w_log1pf.c +++ b/sysdeps/ia64/fpu/w_log1pf.c @@ -1,5 +1,5 @@ /* Wrapper for __log1pf that handles setting errno. - Copyright (C) 2015-2016 Free Software Foundation, Inc. + Copyright (C) 2015-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/fpu/w_log1pl.c b/sysdeps/ia64/fpu/w_log1pl.c index 392ad6b323..d76b8f709c 100644 --- a/sysdeps/ia64/fpu/w_log1pl.c +++ b/sysdeps/ia64/fpu/w_log1pl.c @@ -1,5 +1,5 @@ /* Wrapper for __log1pl that handles setting errno. - Copyright (C) 2015-2016 Free Software Foundation, Inc. + Copyright (C) 2015-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/fpu/w_log2.c b/sysdeps/ia64/fpu/w_log2.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_log2.c +++ b/sysdeps/ia64/fpu/w_log2.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log2_compat.c b/sysdeps/ia64/fpu/w_log2_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_log2_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log2f.c b/sysdeps/ia64/fpu/w_log2f.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_log2f.c +++ b/sysdeps/ia64/fpu/w_log2f.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log2f_compat.c b/sysdeps/ia64/fpu/w_log2f_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_log2f_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log2l.c b/sysdeps/ia64/fpu/w_log2l.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_log2l.c +++ b/sysdeps/ia64/fpu/w_log2l.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log2l_compat.c b/sysdeps/ia64/fpu/w_log2l_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_log2l_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log_compat.c b/sysdeps/ia64/fpu/w_log_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_log_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_logf.c b/sysdeps/ia64/fpu/w_logf.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_logf.c +++ b/sysdeps/ia64/fpu/w_logf.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_logf_compat.c b/sysdeps/ia64/fpu/w_logf_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_logf_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_logl.c b/sysdeps/ia64/fpu/w_logl.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_logl.c +++ b/sysdeps/ia64/fpu/w_logl.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_logl_compat.c b/sysdeps/ia64/fpu/w_logl_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_logl_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_pow.c b/sysdeps/ia64/fpu/w_pow.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_pow.c +++ b/sysdeps/ia64/fpu/w_pow.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_pow_compat.c b/sysdeps/ia64/fpu/w_pow_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_pow_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_powf.c b/sysdeps/ia64/fpu/w_powf.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_powf.c +++ b/sysdeps/ia64/fpu/w_powf.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_powf_compat.c b/sysdeps/ia64/fpu/w_powf_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_powf_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_powl.c b/sysdeps/ia64/fpu/w_powl.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_powl.c +++ b/sysdeps/ia64/fpu/w_powl.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_powl_compat.c b/sysdeps/ia64/fpu/w_powl_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_powl_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_remainder.c b/sysdeps/ia64/fpu/w_remainder.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_remainder.c +++ b/sysdeps/ia64/fpu/w_remainder.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_remainder_compat.c b/sysdeps/ia64/fpu/w_remainder_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_remainder_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_remainderf.c b/sysdeps/ia64/fpu/w_remainderf.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_remainderf.c +++ b/sysdeps/ia64/fpu/w_remainderf.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_remainderf_compat.c b/sysdeps/ia64/fpu/w_remainderf_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_remainderf_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_remainderl.c b/sysdeps/ia64/fpu/w_remainderl.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_remainderl.c +++ b/sysdeps/ia64/fpu/w_remainderl.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_remainderl_compat.c b/sysdeps/ia64/fpu/w_remainderl_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_remainderl_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_scalb_compat.c b/sysdeps/ia64/fpu/w_scalb_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_scalb_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_scalbf_compat.c b/sysdeps/ia64/fpu/w_scalbf_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_scalbf_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_scalbl_compat.c b/sysdeps/ia64/fpu/w_scalbl_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_scalbl_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_scalblnf.c b/sysdeps/ia64/fpu/w_scalblnf.c index 39f55f85b8..631fc9997b 100644 --- a/sysdeps/ia64/fpu/w_scalblnf.c +++ b/sysdeps/ia64/fpu/w_scalblnf.c @@ -1,5 +1,5 @@ /* Wrapper for __scalblnf handles setting errno. - Copyright (C) 2014-2016 Free Software Foundation, Inc. + Copyright (C) 2014-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/fpu/w_sinh.c b/sysdeps/ia64/fpu/w_sinh.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_sinh.c +++ b/sysdeps/ia64/fpu/w_sinh.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sinh_compat.c b/sysdeps/ia64/fpu/w_sinh_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_sinh_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sinhf.c b/sysdeps/ia64/fpu/w_sinhf.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_sinhf.c +++ b/sysdeps/ia64/fpu/w_sinhf.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sinhf_compat.c b/sysdeps/ia64/fpu/w_sinhf_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_sinhf_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sinhl.c b/sysdeps/ia64/fpu/w_sinhl.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_sinhl.c +++ b/sysdeps/ia64/fpu/w_sinhl.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sinhl_compat.c b/sysdeps/ia64/fpu/w_sinhl_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_sinhl_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sqrt.c b/sysdeps/ia64/fpu/w_sqrt.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_sqrt.c +++ b/sysdeps/ia64/fpu/w_sqrt.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sqrt_compat.c b/sysdeps/ia64/fpu/w_sqrt_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_sqrt_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sqrtf.c b/sysdeps/ia64/fpu/w_sqrtf.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_sqrtf.c +++ b/sysdeps/ia64/fpu/w_sqrtf.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sqrtf_compat.c b/sysdeps/ia64/fpu/w_sqrtf_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_sqrtf_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sqrtl.c b/sysdeps/ia64/fpu/w_sqrtl.c index 41254ae60a..1cc8931700 100644 --- a/sysdeps/ia64/fpu/w_sqrtl.c +++ b/sysdeps/ia64/fpu/w_sqrtl.c @@ -1 +1 @@ -/* Not needed. */ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sqrtl_compat.c b/sysdeps/ia64/fpu/w_sqrtl_compat.c new file mode 100644 index 0000000000..41254ae60a --- /dev/null +++ b/sysdeps/ia64/fpu/w_sqrtl_compat.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_tgamma.c b/sysdeps/ia64/fpu/w_tgamma.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ia64/fpu/w_tgamma.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_tgamma.S b/sysdeps/ia64/fpu/w_tgamma_compat.S index 867815cf46..364c70f4a9 100644 --- a/sysdeps/ia64/fpu/w_tgamma.S +++ b/sysdeps/ia64/fpu/w_tgamma_compat.S @@ -1781,6 +1781,7 @@ tgamma_libm_err: };; GLOBAL_LIBM_END(tgamma) +libm_alias_double_other (tgamma, tgamma) LOCAL_LIBM_ENTRY(__libm_error_region) .prologue diff --git a/sysdeps/ia64/fpu/w_tgammaf.c b/sysdeps/ia64/fpu/w_tgammaf.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ia64/fpu/w_tgammaf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_tgammaf.S b/sysdeps/ia64/fpu/w_tgammaf_compat.S index 0fbd840adb..7ffc761d42 100644 --- a/sysdeps/ia64/fpu/w_tgammaf.S +++ b/sysdeps/ia64/fpu/w_tgammaf_compat.S @@ -1276,6 +1276,7 @@ tgammaf_libm_err: };; GLOBAL_LIBM_END(tgammaf) +libm_alias_float_other (tgamma, tgamma) LOCAL_LIBM_ENTRY(__libm_error_region) .prologue diff --git a/sysdeps/ia64/fpu/w_tgammal.c b/sysdeps/ia64/fpu/w_tgammal.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ia64/fpu/w_tgammal.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_tgammal.S b/sysdeps/ia64/fpu/w_tgammal_compat.S index b10c5dc276..e71466d1d4 100644 --- a/sysdeps/ia64/fpu/w_tgammal.S +++ b/sysdeps/ia64/fpu/w_tgammal_compat.S @@ -4426,6 +4426,7 @@ tgammal_underflow: GLOBAL_LIBM_END(tgammal) +libm_alias_ldouble_other (tgamma, tgamma) diff --git a/sysdeps/ia64/gccframe.h b/sysdeps/ia64/gccframe.h index 26121db8bb..d458c3b051 100644 --- a/sysdeps/ia64/gccframe.h +++ b/sysdeps/ia64/gccframe.h @@ -1,5 +1,5 @@ /* Definition of object in frame unwind info. ia64 version. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/hp-timing.h b/sysdeps/ia64/hp-timing.h index f97cf53648..d8d1d7bf2c 100644 --- a/sysdeps/ia64/hp-timing.h +++ b/sysdeps/ia64/hp-timing.h @@ -1,5 +1,5 @@ /* High precision, low overhead timing functions. IA-64 version. - Copyright (C) 2001-2016 Free Software Foundation, Inc. + Copyright (C) 2001-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001. diff --git a/sysdeps/ia64/htonl.S b/sysdeps/ia64/htonl.S index 53780763a2..3cc127546f 100644 --- a/sysdeps/ia64/htonl.S +++ b/sysdeps/ia64/htonl.S @@ -1,5 +1,5 @@ /* Change byte order in 32-bit value. ia64 version. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Dan Pop <Dan.Pop@cern.ch> diff --git a/sysdeps/ia64/htons.S b/sysdeps/ia64/htons.S index eb825ed47b..3baa6a0bd5 100644 --- a/sysdeps/ia64/htons.S +++ b/sysdeps/ia64/htons.S @@ -1,5 +1,5 @@ /* Change byte order in 16-bit value. ia64 version. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Dan Pop <Dan.Pop@cern.ch> diff --git a/sysdeps/ia64/ieee754.h b/sysdeps/ia64/ieee754.h index d4ae04ee5d..89312d01a8 100644 --- a/sysdeps/ia64/ieee754.h +++ b/sysdeps/ia64/ieee754.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/jmpbuf-unwind.h b/sysdeps/ia64/jmpbuf-unwind.h index 2b0499f73f..8f814d7d60 100644 --- a/sysdeps/ia64/jmpbuf-unwind.h +++ b/sysdeps/ia64/jmpbuf-unwind.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2016 Free Software Foundation, Inc. +/* Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. diff --git a/sysdeps/ia64/ldsodefs.h b/sysdeps/ia64/ldsodefs.h index f79392fe6b..4d1ce234ca 100644 --- a/sysdeps/ia64/ldsodefs.h +++ b/sysdeps/ia64/ldsodefs.h @@ -1,5 +1,5 @@ /* Run-time dynamic linker data structures for loaded ELF shared objects. - Copyright (C) 2012-2016 Free Software Foundation, Inc. + Copyright (C) 2012-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/libc-tls.c b/sysdeps/ia64/libc-tls.c index 5361a2ec54..ca117b9eea 100644 --- a/sysdeps/ia64/libc-tls.c +++ b/sysdeps/ia64/libc-tls.c @@ -1,5 +1,5 @@ /* Thread-local storage handling in the ELF dynamic linker. IA-64 version. - Copyright (C) 2003-2016 Free Software Foundation, Inc. + Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/machine-gmon.h b/sysdeps/ia64/machine-gmon.h index 5f17c1eabc..c76c567d28 100644 --- a/sysdeps/ia64/machine-gmon.h +++ b/sysdeps/ia64/machine-gmon.h @@ -1,5 +1,5 @@ /* Machine-specific calling sequence for `mcount' profiling function. IA-64. - Copyright (C) 1995-2016 Free Software Foundation, Inc. + Copyright (C) 1995-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/math-tests.h b/sysdeps/ia64/math-tests.h new file mode 100644 index 0000000000..81e29f5c03 --- /dev/null +++ b/sysdeps/ia64/math-tests.h @@ -0,0 +1,25 @@ +/* Configuration for math tests. ia64 version. + Copyright (C) 2017-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* Before GCC 7, there is no built-in function to provide a __float128 + sNaN, so most sNaN tests for this type cannot work. */ +#if !__GNUC_PREREQ (7, 0) +# define SNAN_TESTS_float128 0 +#endif + +#include_next <math-tests.h> diff --git a/sysdeps/ia64/memccpy.S b/sysdeps/ia64/memccpy.S index a0a462a78e..c97d1de33c 100644 --- a/sysdeps/ia64/memccpy.S +++ b/sysdeps/ia64/memccpy.S @@ -1,6 +1,6 @@ /* Optimized version of the memccpy() function. This file is part of the GNU C Library. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Dan Pop <Dan.Pop@cern.ch>. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S index 909e86b907..c52fca6109 100644 --- a/sysdeps/ia64/memchr.S +++ b/sysdeps/ia64/memchr.S @@ -1,6 +1,6 @@ /* Optimized version of the standard memchr() function. This file is part of the GNU C Library. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Dan Pop <Dan.Pop@cern.ch>. The GNU C Library is free software; you can redistribute it and/or @@ -67,6 +67,10 @@ ENTRY(__memchr) .body mov ret0 = str add last = str, in2 // last byte + ;; + cmp.ltu p6, p0 = last, str + ;; +(p6) mov last = -1 and tmp = 7, str // tmp = str % 8 cmp.ne p7, p0 = r0, r0 // clear p7 extr.u chr = in1, 0, 8 // chr = (unsigned char) in1 diff --git a/sysdeps/ia64/memcmp.S b/sysdeps/ia64/memcmp.S index ffae63fcdb..bf475b38e9 100644 --- a/sysdeps/ia64/memcmp.S +++ b/sysdeps/ia64/memcmp.S @@ -1,6 +1,6 @@ /* Optimized version of the standard memcmp() function. This file is part of the GNU C Library. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Dan Pop <Dan.Pop@cern.ch>. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/memcpy.S b/sysdeps/ia64/memcpy.S index f355ce48f3..3abfee91ce 100644 --- a/sysdeps/ia64/memcpy.S +++ b/sysdeps/ia64/memcpy.S @@ -1,6 +1,6 @@ /* Optimized version of the standard memcpy() function. This file is part of the GNU C Library. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Dan Pop for Itanium <Dan.Pop@cern.ch>. Rewritten for McKinley by Sverre Jarp, HP Labs/CERN <Sverre.Jarp@cern.ch> diff --git a/sysdeps/ia64/memmove.S b/sysdeps/ia64/memmove.S index 598dcd450e..37d7466d14 100644 --- a/sysdeps/ia64/memmove.S +++ b/sysdeps/ia64/memmove.S @@ -1,6 +1,6 @@ /* Optimized version of the standard memmove() function. This file is part of the GNU C Library. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Dan Pop <Dan.Pop@cern.ch>. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/memset.S b/sysdeps/ia64/memset.S index f3ac0361cf..11cc1d2fea 100644 --- a/sysdeps/ia64/memset.S +++ b/sysdeps/ia64/memset.S @@ -1,6 +1,6 @@ /* Optimized version of the standard memset() function. This file is part of the GNU C Library. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Dan Pop for Itanium <Dan.Pop@cern.ch>. Rewritten for McKinley by Sverre Jarp, HP Labs/CERN <Sverre.Jarp@cern.ch> diff --git a/sysdeps/ia64/memusage.h b/sysdeps/ia64/memusage.h index 33005fb3a4..f231ffd3d5 100644 --- a/sysdeps/ia64/memusage.h +++ b/sysdeps/ia64/memusage.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/nptl/Makefile b/sysdeps/ia64/nptl/Makefile index 48f1327446..080663185d 100644 --- a/sysdeps/ia64/nptl/Makefile +++ b/sysdeps/ia64/nptl/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2016 Free Software Foundation, Inc. +# Copyright (C) 2003-2018 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -20,5 +20,6 @@ gen-as-const-headers += tcb-offsets.sym endif ifeq ($(subdir),nptl) -libpthread-routines += ptw-sysdep ptw-sigblock ptw-sigprocmask +libpthread-routines += sysdep sigblock sigprocmask +libpthread-shared-only-routines += sysdep sigblock sigprocmask endif diff --git a/sysdeps/ia64/nptl/bits/pthreadtypes-arch.h b/sysdeps/ia64/nptl/bits/pthreadtypes-arch.h new file mode 100644 index 0000000000..57be66cb99 --- /dev/null +++ b/sysdeps/ia64/nptl/bits/pthreadtypes-arch.h @@ -0,0 +1,63 @@ +/* Copyright (C) 2003-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _BITS_PTHREADTYPES_ARCH_H +#define _BITS_PTHREADTYPES_ARCH_H 1 + +#define __SIZEOF_PTHREAD_ATTR_T 56 +#define __SIZEOF_PTHREAD_MUTEX_T 40 +#define __SIZEOF_PTHREAD_MUTEXATTR_T 4 +#define __SIZEOF_PTHREAD_COND_T 48 +#define __SIZEOF_PTHREAD_CONDATTR_T 4 +#define __SIZEOF_PTHREAD_RWLOCK_T 56 +#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 +#define __SIZEOF_PTHREAD_BARRIER_T 32 +#define __SIZEOF_PTHREAD_BARRIERATTR_T 4 + +/* Definitions for internal mutex struct. */ +#define __PTHREAD_COMPAT_PADDING_MID +#define __PTHREAD_COMPAT_PADDING_END +#define __PTHREAD_MUTEX_LOCK_ELISION 0 +#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0 +#define __PTHREAD_MUTEX_USE_UNION 0 + +#define __LOCK_ALIGNMENT +#define __ONCE_ALIGNMENT + +/* Data structure for reader-write lock variable handling. The + structure of the attribute type is not exposed on purpose. */ +struct __pthread_rwlock_arch_t +{ + unsigned int __readers; + unsigned int __writers; + unsigned int __wrphase_futex; + unsigned int __writers_futex; + unsigned int __pad3; + unsigned int __pad4; + int __cur_writer; + int __shared; + unsigned long int __pad1; + unsigned long int __pad2; + /* FLAGS must stay at this position in the structure to maintain + binary compatibility. */ + unsigned int __flags; +}; + +#define __PTHREAD_RWLOCK_ELISION_EXTRA 0 + +#endif /* bits/pthreadtypes.h */ diff --git a/sysdeps/ia64/nptl/bits/pthreadtypes.h b/sysdeps/ia64/nptl/bits/pthreadtypes.h deleted file mode 100644 index f2e6dacf98..0000000000 --- a/sysdeps/ia64/nptl/bits/pthreadtypes.h +++ /dev/null @@ -1,177 +0,0 @@ -/* Copyright (C) 2003-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _BITS_PTHREADTYPES_H -#define _BITS_PTHREADTYPES_H 1 - -#define __SIZEOF_PTHREAD_ATTR_T 56 -#define __SIZEOF_PTHREAD_MUTEX_T 40 -#define __SIZEOF_PTHREAD_MUTEXATTR_T 4 -#define __SIZEOF_PTHREAD_COND_T 48 -#define __SIZEOF_PTHREAD_CONDATTR_T 4 -#define __SIZEOF_PTHREAD_RWLOCK_T 56 -#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 -#define __SIZEOF_PTHREAD_BARRIER_T 32 -#define __SIZEOF_PTHREAD_BARRIERATTR_T 4 - - -/* Thread identifiers. The structure of the attribute type is not - exposed on purpose. */ -typedef unsigned long int pthread_t; - - -union pthread_attr_t -{ - char __size[__SIZEOF_PTHREAD_ATTR_T]; - long int __align; -}; -#ifndef __have_pthread_attr_t -typedef union pthread_attr_t pthread_attr_t; -# define __have_pthread_attr_t 1 -#endif - - -typedef struct __pthread_internal_list -{ - struct __pthread_internal_list *__prev; - struct __pthread_internal_list *__next; -} __pthread_list_t; - - -/* Data structures for mutex handling. The structure of the attribute - type is not exposed on purpose. */ -typedef union -{ - struct __pthread_mutex_s - { - int __lock; - unsigned int __count; - int __owner; - unsigned int __nusers; - /* KIND must stay at this position in the structure to maintain - binary compatibility. */ - int __kind; - int __spins; - __pthread_list_t __list; -#define __PTHREAD_MUTEX_HAVE_PREV 1 - } __data; - char __size[__SIZEOF_PTHREAD_MUTEX_T]; - long int __align; -} pthread_mutex_t; - -/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER. */ -#define __PTHREAD_SPINS 0 - -typedef union -{ - char __size[__SIZEOF_PTHREAD_MUTEXATTR_T]; - int __align; -} pthread_mutexattr_t; - - -/* Data structure for conditional variable handling. The structure of - the attribute type is not exposed on purpose. */ -typedef union -{ - struct - { - int __lock; - unsigned int __futex; - __extension__ unsigned long long int __total_seq; - __extension__ unsigned long long int __wakeup_seq; - __extension__ unsigned long long int __woken_seq; - void *__mutex; - unsigned int __nwaiters; - unsigned int __broadcast_seq; - } __data; - char __size[__SIZEOF_PTHREAD_COND_T]; - long int __align; -} pthread_cond_t; - -typedef union -{ - char __size[__SIZEOF_PTHREAD_CONDATTR_T]; - int __align; -} pthread_condattr_t; - - -/* Keys for thread-specific data */ -typedef unsigned int pthread_key_t; - - -/* Once-only execution */ -typedef int pthread_once_t; - - -#if defined __USE_UNIX98 || defined __USE_XOPEN2K -/* Data structure for read-write lock variable handling. The - structure of the attribute type is not exposed on purpose. */ -typedef union -{ - struct - { - int __lock; - unsigned int __nr_readers; - unsigned int __readers_wakeup; - unsigned int __writer_wakeup; - unsigned int __nr_readers_queued; - unsigned int __nr_writers_queued; - int __writer; - int __shared; - unsigned long int __pad1; - unsigned long int __pad2; - /* FLAGS must stay at this position in the structure to maintain - binary compatibility. */ - unsigned int __flags; - } __data; - char __size[__SIZEOF_PTHREAD_RWLOCK_T]; - long int __align; -} pthread_rwlock_t; - -#define __PTHREAD_RWLOCK_ELISION_EXTRA 0 - -typedef union -{ - char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T]; - long int __align; -} pthread_rwlockattr_t; -#endif - - -#ifdef __USE_XOPEN2K -/* POSIX spinlock data type. */ -typedef volatile int pthread_spinlock_t; - - -/* POSIX barriers data type. The structure of the type is - deliberately not exposed. */ -typedef union -{ - char __size[__SIZEOF_PTHREAD_BARRIER_T]; - long int __align; -} pthread_barrier_t; - -typedef union -{ - char __size[__SIZEOF_PTHREAD_BARRIERATTR_T]; - int __align; -} pthread_barrierattr_t; -#endif - - -#endif /* bits/pthreadtypes.h */ diff --git a/sysdeps/ia64/nptl/bits/semaphore.h b/sysdeps/ia64/nptl/bits/semaphore.h index 84a861e4de..8836ddedcf 100644 --- a/sysdeps/ia64/nptl/bits/semaphore.h +++ b/sysdeps/ia64/nptl/bits/semaphore.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2016 Free Software Foundation, Inc. +/* Copyright (C) 2002-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. diff --git a/sysdeps/ia64/nptl/pthread-offsets.h b/sysdeps/ia64/nptl/pthread-offsets.h new file mode 100644 index 0000000000..16c6b0d9fd --- /dev/null +++ b/sysdeps/ia64/nptl/pthread-offsets.h @@ -0,0 +1,5 @@ +#define __PTHREAD_MUTEX_NUSERS_OFFSET 12 +#define __PTHREAD_MUTEX_KIND_OFFSET 16 +#define __PTHREAD_MUTEX_SPINS_OFFSET 20 +#define __PTHREAD_MUTEX_ELISION_OFFSET 22 +#define __PTHREAD_MUTEX_LIST_OFFSET 24 diff --git a/sysdeps/ia64/nptl/pthread_spin_lock.c b/sysdeps/ia64/nptl/pthread_spin_lock.c index a38740b578..4843a6d3e5 100644 --- a/sysdeps/ia64/nptl/pthread_spin_lock.c +++ b/sysdeps/ia64/nptl/pthread_spin_lock.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2016 Free Software Foundation, Inc. +/* Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. diff --git a/sysdeps/ia64/nptl/pthread_spin_trylock.c b/sysdeps/ia64/nptl/pthread_spin_trylock.c index 304ac0706a..0a2beccf10 100644 --- a/sysdeps/ia64/nptl/pthread_spin_trylock.c +++ b/sysdeps/ia64/nptl/pthread_spin_trylock.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2016 Free Software Foundation, Inc. +/* Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. diff --git a/sysdeps/ia64/nptl/pthread_spin_unlock.c b/sysdeps/ia64/nptl/pthread_spin_unlock.c index ccdef4168e..b16dfed1ac 100644 --- a/sysdeps/ia64/nptl/pthread_spin_unlock.c +++ b/sysdeps/ia64/nptl/pthread_spin_unlock.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2016 Free Software Foundation, Inc. +/* Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. diff --git a/sysdeps/ia64/nptl/pthreaddef.h b/sysdeps/ia64/nptl/pthreaddef.h index 810bf419c2..09f9acf25c 100644 --- a/sysdeps/ia64/nptl/pthreaddef.h +++ b/sysdeps/ia64/nptl/pthreaddef.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2016 Free Software Foundation, Inc. +/* Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/nptl/tcb-offsets.sym b/sysdeps/ia64/nptl/tcb-offsets.sym index e1707ab1c8..b01f712be2 100644 --- a/sysdeps/ia64/nptl/tcb-offsets.sym +++ b/sysdeps/ia64/nptl/tcb-offsets.sym @@ -1,7 +1,6 @@ #include <sysdep.h> #include <tls.h> -PID offsetof (struct pthread, pid) - TLS_PRE_TCB_SIZE TID offsetof (struct pthread, tid) - TLS_PRE_TCB_SIZE MULTIPLE_THREADS_OFFSET offsetof (struct pthread, header.multiple_threads) - TLS_PRE_TCB_SIZE SYSINFO_OFFSET offsetof (tcbhead_t, __private) diff --git a/sysdeps/ia64/nptl/tls.h b/sysdeps/ia64/nptl/tls.h index 54fddf5952..8760ee3b3a 100644 --- a/sysdeps/ia64/nptl/tls.h +++ b/sysdeps/ia64/nptl/tls.h @@ -1,5 +1,5 @@ /* Definition for thread-local data handling. nptl/IA-64 version. - Copyright (C) 2003-2016 Free Software Foundation, Inc. + Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -26,19 +26,7 @@ # include <stdint.h> # include <stdlib.h> # include <list.h> - - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; - +# include <dl-dtv.h> typedef struct { @@ -167,6 +155,7 @@ register struct pthread *__thread_self __asm__("r13"); = THREAD_GET_POINTER_GUARD ()) /* Get and set the global scope generation counter in struct pthread. */ +#define THREAD_GSCOPE_IN_TCB 1 #define THREAD_GSCOPE_FLAG_UNUSED 0 #define THREAD_GSCOPE_FLAG_USED 1 #define THREAD_GSCOPE_FLAG_WAIT 2 diff --git a/sysdeps/ia64/sched_cpucount.c b/sysdeps/ia64/sched_cpucount.c index 521e1a2df7..3a128a38b2 100644 --- a/sysdeps/ia64/sched_cpucount.c +++ b/sysdeps/ia64/sched_cpucount.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2016 Free Software Foundation, Inc. +/* Copyright (C) 2007-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/softpipe.h b/sysdeps/ia64/softpipe.h index 2156c35fd0..684ad40471 100644 --- a/sysdeps/ia64/softpipe.h +++ b/sysdeps/ia64/softpipe.h @@ -1,5 +1,5 @@ /* This file is part of the GNU C Library. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/sysdeps/ia64/sotruss-lib.c b/sysdeps/ia64/sotruss-lib.c index dd9345a535..2f3b642241 100644 --- a/sysdeps/ia64/sotruss-lib.c +++ b/sysdeps/ia64/sotruss-lib.c @@ -1,5 +1,5 @@ /* Override generic sotruss-lib.c to define actual functions for ia64. - Copyright (C) 2012-2016 Free Software Foundation, Inc. + Copyright (C) 2012-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. diff --git a/sysdeps/ia64/stackinfo.h b/sysdeps/ia64/stackinfo.h index 9930e25fb8..102f54bac2 100644 --- a/sysdeps/ia64/stackinfo.h +++ b/sysdeps/ia64/stackinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2016 Free Software Foundation, Inc. +/* Copyright (C) 2001-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -27,8 +27,7 @@ here. */ #define _STACK_GROWS_DOWN 1 -/* Default to an executable stack. PF_X can be overridden if PT_GNU_STACK is - * present, but it is presumed absent. */ -#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X) +/* Default to a non-executable stack. */ +#define DEFAULT_STACK_PERMS (PF_R|PF_W) #endif /* stackinfo.h */ diff --git a/sysdeps/ia64/start.S b/sysdeps/ia64/start.S index 666fc48ce4..04205aa94f 100644 --- a/sysdeps/ia64/start.S +++ b/sysdeps/ia64/start.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2016 Free Software Foundation, Inc. +/* Copyright (C) 1999-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999. diff --git a/sysdeps/ia64/strchr.S b/sysdeps/ia64/strchr.S index c8580ee839..3a29e80b52 100644 --- a/sysdeps/ia64/strchr.S +++ b/sysdeps/ia64/strchr.S @@ -1,6 +1,6 @@ /* Optimized version of the standard strchr() function. This file is part of the GNU C Library. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Dan Pop <Dan.Pop@cern.ch>. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/strcmp.S b/sysdeps/ia64/strcmp.S index 7f8f30719c..e4a3329987 100644 --- a/sysdeps/ia64/strcmp.S +++ b/sysdeps/ia64/strcmp.S @@ -1,6 +1,6 @@ /* Optimized version of the standard strcmp() function. This file is part of the GNU C Library. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Dan Pop <Dan.Pop@cern.ch>. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/strcpy.S b/sysdeps/ia64/strcpy.S index 56d51a016f..5d025f6990 100644 --- a/sysdeps/ia64/strcpy.S +++ b/sysdeps/ia64/strcpy.S @@ -1,6 +1,6 @@ /* Optimized version of the standard strcpy() function. This file is part of the GNU C Library. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Dan Pop <Dan.Pop@cern.ch>. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/strlen.S b/sysdeps/ia64/strlen.S index 87494094a9..fcf3786546 100644 --- a/sysdeps/ia64/strlen.S +++ b/sysdeps/ia64/strlen.S @@ -1,6 +1,6 @@ /* Optimized version of the standard strlen() function. This file is part of the GNU C Library. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Dan Pop <Dan.Pop@cern.ch>. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/strncmp.S b/sysdeps/ia64/strncmp.S index fcec2303fd..33379aa083 100644 --- a/sysdeps/ia64/strncmp.S +++ b/sysdeps/ia64/strncmp.S @@ -1,6 +1,6 @@ /* Optimized version of the standard strncmp() function. This file is part of the GNU C Library. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Dan Pop <Dan.Pop@cern.ch>. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/ia64/strncpy.S b/sysdeps/ia64/strncpy.S index b551927550..2bedbbe277 100644 --- a/sysdeps/ia64/strncpy.S +++ b/sysdeps/ia64/strncpy.S @@ -1,6 +1,6 @@ /* Optimized version of the standard strncpy() function. This file is part of the GNU C Library. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Dan Pop <Dan.Pop@cern.ch> and Jakub Jelinek <jakub@redhat.com>. diff --git a/sysdeps/ia64/sysdep.h b/sysdeps/ia64/sysdep.h index 04b05c5cb1..6066ebd1d3 100644 --- a/sysdeps/ia64/sysdep.h +++ b/sysdeps/ia64/sysdep.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by David Mosberger-Tang <davidm@hpl.hp.com> diff --git a/sysdeps/ia64/tst-audit.h b/sysdeps/ia64/tst-audit.h index 0e98430ded..64607a09d8 100644 --- a/sysdeps/ia64/tst-audit.h +++ b/sysdeps/ia64/tst-audit.h @@ -1,6 +1,6 @@ /* Definitions for testing PLT entry/exit auditing. IA64 version. - Copyright (C) 2012-2016 Free Software Foundation, Inc. + Copyright (C) 2012-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. |