diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-12-27 17:58:54 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-12-27 17:58:54 +0000 |
commit | 1ba06384fb715fb7732b20911ffc56a61d16cb0d (patch) | |
tree | 0fcfaf14f40169b289044495b1984a5fa3e0e965 /sysdeps/unix/sysv/linux/powerpc | |
parent | 1af57d5793424a5a6ec542d0a5ef0b7c4f312623 (diff) | |
parent | 963c37d5c0eb62b38f8764b23931c0dcdd497a13 (diff) |
Merge commit 'refs/top-bases/t/sysvshm' into t/sysvshm
Diffstat (limited to 'sysdeps/unix/sysv/linux/powerpc')
180 files changed, 2926 insertions, 1626 deletions
diff --git a/sysdeps/unix/sysv/linux/powerpc/Makefile b/sysdeps/unix/sysv/linux/powerpc/Makefile index c89ed9ec7d..19ac59d862 100644 --- a/sysdeps/unix/sysv/linux/powerpc/Makefile +++ b/sysdeps/unix/sysv/linux/powerpc/Makefile @@ -1,13 +1,11 @@ abi-variants := 32 64-v1 64-v2 -abi-32-options := -U__powerpc64__ abi-32-condition := __WORDSIZE == 32 -abi-64-v1-options := -D__powerpc64__ -U_CALL_ELF -D_CALL_ELF=1 abi-64-v1-condition := __WORDSIZE == 64 && _CALL_ELF != 2 -abi-64-v2-options := -D__powerpc64__ -U_CALL_ELF -D_CALL_ELF=2 abi-64-v2-condition := __WORDSIZE == 64 && _CALL_ELF == 2 ifeq ($(subdir),rt) librt-routines += rt-sysdep +librt-shared-only-routines += rt-sysdep endif ifeq ($(subdir),stdlib) @@ -28,10 +26,12 @@ ifeq ($(subdir),misc) sysdep_headers += bits/ppc.h sysdep_routines += get_timebase_freq tests += test-gettimebasefreq +tests += test-powerpc-linux-sysconf endif ifeq ($(subdir),nptl) libpthread-routines += sysdep libpthread-sysdep_routines += elision-lock elision-unlock elision-timed \ elision-trylock +libpthread-shared-only-routines += sysdep endif diff --git a/sysdeps/unix/sysv/linux/powerpc/arch-fork.h b/sysdeps/unix/sysv/linux/powerpc/arch-fork.h deleted file mode 100644 index 5f945378ee..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/arch-fork.h +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/arch-fork.h> diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/environments.h b/sysdeps/unix/sysv/linux/powerpc/bits/environments.h index edee623127..10542c95e1 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/environments.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/environments.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 diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h index e2f8bffa25..cd9ba6ed63 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h @@ -1,5 +1,5 @@ /* O_*, F_*, FD_* bit values for Linux/PowerPC. - 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/unix/sysv/linux/powerpc/bits/ioctl-types.h b/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h index 6ecac33a2a..1c75b2982c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h @@ -1,5 +1,5 @@ /* Structure types for pre-termios terminal ioctls. Linux/powerpc version. - 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/unix/sysv/linux/powerpc/bits/ipc.h b/sysdeps/unix/sysv/linux/powerpc/bits/ipc.h index 5a87ac3d6f..50f2b6a7c9 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/ipc.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/ipc.h @@ -1,4 +1,4 @@ -/* 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/unix/sysv/linux/powerpc/bits/local_lim.h b/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h index 7032107390..049094e467 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h @@ -1,5 +1,5 @@ /* Minimum guaranteed maximum values for system limits. Linux/PPC version. - Copyright (C) 1993-2016 Free Software Foundation, Inc. + Copyright (C) 1993-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/unix/sysv/linux/powerpc/bits/mman.h b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h index 21c5fa9e71..e652467c8c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h @@ -1,5 +1,5 @@ /* Definitions for POSIX memory map interface. Linux/PowerPC version. - 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. The GNU C Library is free software; you can redistribute it and/or @@ -36,6 +36,8 @@ # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ # define MAP_STACK 0x20000 /* Allocation is for a stack. */ # define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Flags for `mlockall'. */ diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/msq.h b/sysdeps/unix/sysv/linux/powerpc/bits/msq.h index 0efa627a17..b98d293d54 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/msq.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/msq.h @@ -1,4 +1,4 @@ -/* 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 @@ -66,6 +66,7 @@ struct msqid_ds /* ipcs ctl commands */ # define MSG_STAT 11 # define MSG_INFO 12 +# define MSG_STAT_ANY 13 /* buffer for msgctl calls IPC_INFO, MSG_INFO */ struct msginfo diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h b/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h index 66b1e00444..df7f7a69b6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h @@ -1,5 +1,5 @@ /* Facilities specific to the PowerPC architecture on Linux - 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/unix/sysv/linux/powerpc/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h deleted file mode 100644 index 345e79ae72..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h +++ /dev/null @@ -1,236 +0,0 @@ -/* Machine-specific pthread type layouts. PowerPC version. - Copyright (C) 2003-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_PTHREADTYPES_H -#define _BITS_PTHREADTYPES_H 1 - -#include <bits/wordsize.h> - -#if __WORDSIZE == 64 -# 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 -#else -# define __SIZEOF_PTHREAD_ATTR_T 36 -# define __SIZEOF_PTHREAD_MUTEX_T 24 -# define __SIZEOF_PTHREAD_MUTEXATTR_T 4 -# define __SIZEOF_PTHREAD_COND_T 48 -# define __SIZEOF_PTHREAD_CONDATTR_T 4 -# define __SIZEOF_PTHREAD_RWLOCK_T 32 -# define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 -# define __SIZEOF_PTHREAD_BARRIER_T 20 -# define __SIZEOF_PTHREAD_BARRIERATTR_T 4 -#endif - - -/* Thread identifiers. The structure of the attribute type is - deliberately not exposed. */ -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 - - -#if __WORDSIZE == 64 -typedef struct __pthread_internal_list -{ - struct __pthread_internal_list *__prev; - struct __pthread_internal_list *__next; -} __pthread_list_t; -#else -typedef struct __pthread_internal_slist -{ - struct __pthread_internal_slist *__next; -} __pthread_slist_t; -#endif - - -/* Data structures for mutex handling. The structure of the attribute - type is deliberately not exposed. */ -typedef union -{ - struct __pthread_mutex_s - { - int __lock; - unsigned int __count; - int __owner; -#if __WORDSIZE == 64 - unsigned int __nusers; -#endif - /* KIND must stay at this position in the structure to maintain - binary compatibility. */ - int __kind; -#if __WORDSIZE == 64 - short __spins; - short __elision; - __pthread_list_t __list; -# define __PTHREAD_MUTEX_HAVE_PREV 1 -# define __PTHREAD_SPINS 0, 0 -#else - unsigned int __nusers; - __extension__ union - { - struct - { - short __espins; - short __elision; -# define __spins __elision_data.__espins -# define __elision __elision_data.__elision -# define __PTHREAD_SPINS { 0, 0 } - } __elision_data; - __pthread_slist_t __list; - }; -#endif - } __data; - char __size[__SIZEOF_PTHREAD_MUTEX_T]; - long int __align; -} pthread_mutex_t; - -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 deliberately not exposed. */ -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]; - __extension__ long 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 deliberately not exposed. */ -typedef union -{ -# if __WORDSIZE == 64 - 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 char __rwelision; - unsigned char __pad1[7]; - 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, {0, 0, 0, 0, 0, 0, 0 } - } __data; -# else - 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; - unsigned char __rwelision; - unsigned char __pad2; - unsigned char __shared; - /* FLAGS must stay at this position in the structure to maintain - binary compatibility. */ - unsigned char __flags; - int __writer; -#define __PTHREAD_RWLOCK_ELISION_EXTRA 0 - } __data; -# endif - char __size[__SIZEOF_PTHREAD_RWLOCK_T]; - long int __align; -} pthread_rwlock_t; - - -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/unix/sysv/linux/powerpc/bits/sem.h b/sysdeps/unix/sysv/linux/powerpc/bits/sem.h index 0b0b191425..27b026cf61 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/sem.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/sem.h @@ -1,4 +1,4 @@ -/* 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 @@ -72,6 +72,7 @@ struct semid_ds /* ipcs ctl cmds */ # define SEM_STAT 18 # define SEM_INFO 19 +# define SEM_STAT_ANY 20 struct seminfo { diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h b/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h index 5f711b81c6..8d6040adaa 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h @@ -1,5 +1,5 @@ /* Machine-specific POSIX semaphore type layouts. PowerPC 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. Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003. diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/shm.h b/sysdeps/unix/sysv/linux/powerpc/bits/shm.h index 6e66bf7662..879023fb9a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/shm.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/shm.h @@ -1,4 +1,4 @@ -/* 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 @@ -77,6 +77,7 @@ struct shmid_ds /* ipcs ctl commands */ # define SHM_STAT 13 # define SHM_INFO 14 +# define SHM_STAT_ANY 15 /* shm_mode upper byte flags */ # define SHM_DEST 01000 /* segment will be destroyed on last detach */ diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h b/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h index 5b9c0c1be9..cb01b0938d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h @@ -1,5 +1,5 @@ /* sigstack, sigaltstack definitions. - Copyright (C) 1998-2016 Free Software Foundation, Inc. + Copyright (C) 1998-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 @@ -16,39 +16,17 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#ifndef _SIGNAL_H +#ifndef _BITS_SIGSTACK_H +#define _BITS_SIGSTACK_H 1 + +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H # error "Never include this file directly. Use <signal.h> instead" #endif - -/* Structure describing a signal stack (obsolete). */ -struct sigstack - { - void *ss_sp; /* Signal stack pointer. */ - int ss_onstack; /* Nonzero if executing on this stack. */ - }; - - -/* Possible values for `ss_flags.'. */ -enum -{ - SS_ONSTACK = 1, -#define SS_ONSTACK SS_ONSTACK - SS_DISABLE -#define SS_DISABLE SS_DISABLE -}; - /* Minimum stack size for a signal handler. */ #define MINSIGSTKSZ 4096 /* System default stack size. */ #define SIGSTKSZ 16384 - -/* Alternate, preferred interface. */ -typedef struct sigaltstack - { - void *ss_sp; - int ss_flags; - size_t ss_size; - } stack_t; +#endif /* bits/sigstack.h */ diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/stat.h b/sysdeps/unix/sysv/linux/powerpc/bits/stat.h index f492825b7a..17654b5075 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/stat.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2016 Free Software Foundation, Inc. +/* Copyright (C) 1992-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/unix/sysv/linux/powerpc/bits/termios.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios.h index e13ea3f676..1362cce551 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/termios.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios.h @@ -1,4 +1,4 @@ -/* 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. The GNU C Library is free software; you can redistribute it and/or @@ -187,7 +187,7 @@ struct termios { /* c_lflag bits */ #define ISIG 0x00000080 #define ICANON 0x00000100 -#if defined __USE_MISC || defined __USE_XOPEN +#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) # define XCASE 0x00004000 #endif #define ECHO 0x00000008 diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h b/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h index 3e8a1e0a15..04ca9debf0 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h @@ -5,15 +5,7 @@ # define __WORDSIZE_TIME64_COMPAT32 1 #else # define __WORDSIZE 32 -#endif - -#if !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL - -/* Signal the glibc ABI didn't used to have a `long double'. - The changes all the `long double' function variants to be redirects - to the double functions. */ -# define __LONG_DOUBLE_MATH_OPTIONAL 1 -# ifndef __LONG_DOUBLE_128__ -# define __NO_LONG_DOUBLE_MATH 1 -# endif +# define __WORDSIZE_TIME64_COMPAT32 0 +# define __WORDSIZE32_SIZE_ULONG 0 +# define __WORDSIZE32_PTRDIFF_LONG 0 #endif diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-static.c b/sysdeps/unix/sysv/linux/powerpc/dl-static.c index 821221f51e..d3722e1ad4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/dl-static.c +++ b/sysdeps/unix/sysv/linux/powerpc/dl-static.c @@ -1,5 +1,5 @@ /* Variable initialization. PowerPC version. - Copyright (C) 2013-2016 Free Software Foundation, Inc. + Copyright (C) 2013-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/unix/sysv/linux/powerpc/dl-sysdep.c b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c index 98ec2b3ec2..78051bc7bc 100644 --- a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c +++ b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c @@ -1,5 +1,5 @@ /* Operating system support for run-time dynamic linker. Linux/PPC version. - 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. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-conf.c b/sysdeps/unix/sysv/linux/powerpc/elision-conf.c index 21c3afdd86..906882a65e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/elision-conf.c +++ b/sysdeps/unix/sysv/linux/powerpc/elision-conf.c @@ -1,5 +1,5 @@ /* elision-conf.c: Lock elision tunable parameters. - 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 @@ -22,6 +22,11 @@ #include <unistd.h> #include <dl-procinfo.h> +#if HAVE_TUNABLES +# define TUNABLE_NAMESPACE elision +#endif +#include <elf/dl-tunables.h> + /* Reasonable initial tuning values, may be revised in the future. This is a conservative initial value. */ @@ -50,7 +55,52 @@ struct elision_config __elision_aconf = DEFAULT locks should be automatically use elision in pthread_mutex_lock(). Disabled for suid programs. Only used when elision is available. */ -int __pthread_force_elision attribute_hidden; +int __pthread_force_elision attribute_hidden = 0; + +#if HAVE_TUNABLES +static inline void +__always_inline +do_set_elision_enable (int32_t elision_enable) +{ + /* Enable elision if it's avaliable in hardware. It's not necessary to check + if __libc_enable_secure isn't enabled since elision_enable will be set + according to the default, which is disabled. */ + if (elision_enable == 1) + __pthread_force_elision = (GLRO (dl_hwcap2) + & PPC_FEATURE2_HAS_HTM) ? 1 : 0; +} + +/* The pthread->elision_enable tunable is 0 or 1 indicating that elision + should be disabled or enabled respectively. The feature will only be used + if it's supported by the hardware. */ + +void +TUNABLE_CALLBACK (set_elision_enable) (tunable_val_t *valp) +{ + int32_t elision_enable = (int32_t) valp->numval; + do_set_elision_enable (elision_enable); +} + +#define TUNABLE_CALLBACK_FNDECL(__name, __type) \ +static inline void \ +__always_inline \ +do_set_elision_ ## __name (__type value) \ +{ \ + __elision_aconf.__name = value; \ +} \ +void \ +TUNABLE_CALLBACK (set_elision_ ## __name) (tunable_val_t *valp) \ +{ \ + __type value = (__type) (valp)->numval; \ + do_set_elision_ ## __name (value); \ +} + +TUNABLE_CALLBACK_FNDECL (skip_lock_busy, int32_t); +TUNABLE_CALLBACK_FNDECL (skip_lock_internal_abort, int32_t); +TUNABLE_CALLBACK_FNDECL (skip_lock_out_of_tbegin_retries, int32_t); +TUNABLE_CALLBACK_FNDECL (try_tbegin, int32_t); +TUNABLE_CALLBACK_FNDECL (skip_trylock_internal_abort, int32_t); +#endif /* Initialize elision. */ @@ -59,13 +109,26 @@ elision_init (int argc __attribute__ ((unused)), char **argv __attribute__ ((unused)), char **environ) { -#ifdef ENABLE_LOCK_ELISION - int elision_available = (GLRO (dl_hwcap2) & PPC_FEATURE2_HAS_HTM) ? 1 : 0; - __pthread_force_elision = __libc_enable_secure ? 0 : elision_available; +#if HAVE_TUNABLES + /* Elision depends on tunables and must be explicitly turned on by setting + the appropriate tunable on a supported platform. */ + + TUNABLE_GET (enable, int32_t, + TUNABLE_CALLBACK (set_elision_enable)); + TUNABLE_GET (skip_lock_busy, int32_t, + TUNABLE_CALLBACK (set_elision_skip_lock_busy)); + TUNABLE_GET (skip_lock_internal_abort, int32_t, + TUNABLE_CALLBACK (set_elision_skip_lock_internal_abort)); + TUNABLE_GET (skip_lock_after_retries, int32_t, + TUNABLE_CALLBACK (set_elision_skip_lock_out_of_tbegin_retries)); + TUNABLE_GET (tries, int32_t, + TUNABLE_CALLBACK (set_elision_try_tbegin)); + TUNABLE_GET (skip_trylock_internal_abort, int32_t, + TUNABLE_CALLBACK (set_elision_skip_trylock_internal_abort)); #endif + if (!__pthread_force_elision) - /* Disable elision on rwlocks. */ - __elision_aconf.try_tbegin = 0; + __elision_aconf.try_tbegin = 0; /* Disable elision on rwlocks. */ } #ifdef SHARED diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-conf.h b/sysdeps/unix/sysv/linux/powerpc/elision-conf.h index cf004b2299..85de593127 100644 --- a/sysdeps/unix/sysv/linux/powerpc/elision-conf.h +++ b/sysdeps/unix/sysv/linux/powerpc/elision-conf.h @@ -1,5 +1,5 @@ /* elision-conf.h: Lock elision tunable parameters. - 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/unix/sysv/linux/powerpc/elision-lock.c b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c index dd1e4c3b17..98a23f0dd2 100644 --- a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c +++ b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c @@ -1,5 +1,5 @@ /* elision-lock.c: Elided pthread mutex lock. - 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 @@ -45,7 +45,10 @@ int __lll_lock_elision (int *lock, short *adapt_count, EXTRAARG int pshared) { - if (*adapt_count > 0) +#ifndef __SPE__ + /* adapt_count is accessed concurrently but is just a hint. Thus, + use atomic accesses but relaxed MO is sufficient. */ + if (atomic_load_relaxed (adapt_count) > 0) { goto use_lock; } @@ -67,7 +70,8 @@ __lll_lock_elision (int *lock, short *adapt_count, EXTRAARG int pshared) if (_TEXASRU_FAILURE_PERSISTENT (__builtin_get_texasru ())) { if (aconf.skip_lock_internal_abort > 0) - *adapt_count = aconf.skip_lock_internal_abort; + atomic_store_relaxed (adapt_count, + aconf.skip_lock_internal_abort); goto use_lock; } } @@ -75,8 +79,10 @@ __lll_lock_elision (int *lock, short *adapt_count, EXTRAARG int pshared) /* Fall back to locks for a bit if retries have been exhausted */ if (aconf.try_tbegin > 0 && aconf.skip_lock_out_of_tbegin_retries > 0) - *adapt_count = aconf.skip_lock_out_of_tbegin_retries; + atomic_store_relaxed (adapt_count, + aconf.skip_lock_out_of_tbegin_retries); use_lock: +#endif return LLL_LOCK ((*lock), pshared); } diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-timed.c b/sysdeps/unix/sysv/linux/powerpc/elision-timed.c index b3738e5e04..1082f566e4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/elision-timed.c +++ b/sysdeps/unix/sysv/linux/powerpc/elision-timed.c @@ -1,5 +1,5 @@ /* elision-timed.c: Lock elision timed lock. - 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/unix/sysv/linux/powerpc/elision-trylock.c b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c index 0807a6a432..fabb03b2c4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c +++ b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c @@ -1,5 +1,5 @@ /* elision-trylock.c: Lock eliding trylock for pthreads. - 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 @@ -30,11 +30,12 @@ int __lll_trylock_elision (int *futex, short *adapt_count) { +#ifndef __SPE__ /* Implement POSIX semantics by forbiding nesting elided trylocks. */ __libc_tabort (_ABORT_NESTED_TRYLOCK); /* Only try a transaction if it's worth it. */ - if (*adapt_count > 0) + if (atomic_load_relaxed (adapt_count) > 0) { goto use_lock; } @@ -49,7 +50,7 @@ __lll_trylock_elision (int *futex, short *adapt_count) __libc_tend (0); if (aconf.skip_lock_busy > 0) - *adapt_count = aconf.skip_lock_busy; + atomic_store_relaxed (adapt_count, aconf.skip_lock_busy); } else { @@ -59,10 +60,12 @@ __lll_trylock_elision (int *futex, short *adapt_count) result in another failure. Use normal locking now and for the next couple of calls. */ if (aconf.skip_trylock_internal_abort > 0) - *adapt_count = aconf.skip_trylock_internal_abort; + atomic_store_relaxed (adapt_count, + aconf.skip_trylock_internal_abort); } } use_lock: +#endif return lll_trylock (*futex); } diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c b/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c index 43c5a67df2..14e0680ee9 100644 --- a/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c +++ b/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c @@ -1,5 +1,5 @@ /* elision-unlock.c: Commit an elided pthread lock. - 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 @@ -23,18 +23,25 @@ int __lll_unlock_elision (int *lock, short *adapt_count, int pshared) { +#ifndef __SPE__ /* When the lock was free we're in a transaction. */ if (*lock == 0) __libc_tend (0); else { - lll_unlock ((*lock), pshared); + /* Update adapt_count in the critical section to prevent a + write-after-destroy error as mentioned in BZ 20822. The + following update of adapt_count has to be contained within + the critical region of the fall-back lock in order to not violate + the mutex destruction requirements. */ + short __tmp = atomic_load_relaxed (adapt_count); + if (__tmp > 0) + atomic_store_relaxed (adapt_count, __tmp - 1); - /* Update the adapt count AFTER completing the critical section. - Doing this here prevents unneeded stalling when entering - a critical section. Saving about 8% runtime on P8. */ - if (*adapt_count > 0) - (*adapt_count)--; + lll_unlock ((*lock), pshared); } +#else + lll_unlock ((*lock), pshared); +#endif return 0; } diff --git a/sysdeps/unix/sysv/linux/powerpc/force-elision.h b/sysdeps/unix/sysv/linux/powerpc/force-elision.h index 99c2669442..fe5d6ceade 100644 --- a/sysdeps/unix/sysv/linux/powerpc/force-elision.h +++ b/sysdeps/unix/sysv/linux/powerpc/force-elision.h @@ -1,5 +1,5 @@ /* force-elision.h: Automatic enabling of elision for mutexes - 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 @@ -16,7 +16,6 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#ifdef ENABLE_LOCK_ELISION /* Automatically enable elision for existing user lock kinds. */ #define FORCE_ELISION(m, s) \ if (__pthread_force_elision \ @@ -25,4 +24,3 @@ mutex->__data.__kind |= PTHREAD_MUTEX_ELISION_NP; \ s; \ } -#endif diff --git a/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c b/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c index 12a39b6865..3a2216021b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c +++ b/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c @@ -1,5 +1,5 @@ /* Get frequency of the system processor. powerpc/Linux 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 @@ -21,7 +21,6 @@ #include <stdint.h> #include <string.h> #include <unistd.h> -#include <libc-internal.h> #include <sysdep.h> #include <libc-vdso.h> #include <not-cancel.h> @@ -41,7 +40,7 @@ __get_clockfreq (void) contains at least one line like: timebase : 33333333 We search for this line and convert the number into an integer. */ - int fd = open_not_cancel_2 ("/proc/cpuinfo", O_RDONLY); + int fd = __open_nocancel ("/proc/cpuinfo", O_RDONLY); if (__glibc_likely (fd != -1)) return result; diff --git a/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c b/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c index 68acdffbf3..6435e1f315 100644 --- a/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c +++ b/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c @@ -1,5 +1,5 @@ /* Get the frequency of the time base. - 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/unix/sysv/linux/powerpc/getdents64.c b/sysdeps/unix/sysv/linux/powerpc/getdents64.c deleted file mode 100644 index 0c75fb5a06..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/getdents64.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/getdents64.c> diff --git a/sysdeps/unix/sysv/linux/powerpc/getrlimit64.c b/sysdeps/unix/sysv/linux/powerpc/getrlimit64.c deleted file mode 100644 index fef018f471..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/getrlimit64.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/getrlimit64.c> diff --git a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c index 25a4e7caff..994a926a87 100644 --- a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c +++ b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c @@ -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 @@ -15,6 +15,11 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#if defined SHARED && !defined __powerpc64__ +# define __gettimeofday __redirect___gettimeofday +#else +# define __redirect___gettimeofday __gettimeofday +#endif #include <sys/time.h> @@ -24,30 +29,14 @@ # include <libc-vdso.h> # include <dl-machine.h> -void *gettimeofday_ifunc (void) __asm__ ("__gettimeofday"); - -static int -__gettimeofday_syscall (struct timeval *tv, struct timezone *tz) -{ - return INLINE_SYSCALL (gettimeofday, 2, tv, tz); -} +# ifndef __powerpc64__ +# undef __gettimeofday -void * -gettimeofday_ifunc (void) +int +__gettimeofday_vsyscall (struct timeval *tv, struct timezone *tz) { - PREPARE_VERSION (linux2615, "LINUX_2.6.15", 123718565); - - /* If the vDSO is not available we fall back syscall. */ - void *vdso_gettimeofday = _dl_vdso_vsym ("__kernel_gettimeofday", &linux2615); - return (vdso_gettimeofday ? VDSO_IFUNC_RET (vdso_gettimeofday) - : (void*)__gettimeofday_syscall); + return INLINE_VSYSCALL (gettimeofday, 2, tv, tz); } -asm (".type __gettimeofday, %gnu_indirect_function"); - -/* This is doing "libc_hidden_def (__gettimeofday)" but the compiler won't - let us do it in C because it doesn't know we're defining __gettimeofday - here in this file. */ -asm (".globl __GI___gettimeofday"); /* __GI___gettimeofday is defined as hidden and for ppc32 it enables the compiler make a local call (symbol@local) for internal GLIBC usage. It @@ -55,16 +44,29 @@ asm (".globl __GI___gettimeofday"); For ppc64 a call to a function in another translation unit might use a different toc pointer thus disallowing direct branchess and making internal ifuncs calls safe. */ -#ifdef __powerpc64__ -asm ("__GI___gettimeofday = __gettimeofday"); -#else -int -__gettimeofday_vsyscall (struct timeval *tv, struct timezone *tz) +# undef libc_hidden_def +# define libc_hidden_def(name) \ + __hidden_ver1 (__gettimeofday_vsyscall, __GI___gettimeofday, \ + __gettimeofday_vsyscall); + +# endif /* !__powerpc64__ */ + +static int +__gettimeofday_syscall (struct timeval *tv, struct timezone *tz) { - return INLINE_VSYSCALL (gettimeofday, 2, tv, tz); + return INLINE_SYSCALL (gettimeofday, 2, tv, tz); } -asm ("__GI___gettimeofday = __gettimeofday_vsyscall"); -#endif + +# define INIT_ARCH() \ + PREPARE_VERSION (linux2615, "LINUX_2.6.15", 123718565); \ + void *vdso_gettimeofday = _dl_vdso_vsym ("__kernel_gettimeofday", &linux2615); + +/* If the vDSO is not available we fall back syscall. */ +libc_ifunc_hidden (__redirect___gettimeofday, __gettimeofday, + vdso_gettimeofday + ? VDSO_IFUNC_RET (vdso_gettimeofday) + : (void *) __gettimeofday_syscall); +libc_hidden_def (__gettimeofday) #else diff --git a/sysdeps/unix/sysv/linux/powerpc/htm.h b/sysdeps/unix/sysv/linux/powerpc/htm.h index 29cda8a741..6fbb1187c1 100644 --- a/sysdeps/unix/sysv/linux/powerpc/htm.h +++ b/sysdeps/unix/sysv/linux/powerpc/htm.h @@ -2,7 +2,7 @@ compilers and assemblers that do not support the intrinsics and instructions yet. - 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/unix/sysv/linux/powerpc/init-first.c b/sysdeps/unix/sysv/linux/powerpc/init-first.c index 0dff0b1ca4..0a4becbed6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/init-first.c +++ b/sysdeps/unix/sysv/linux/powerpc/init-first.c @@ -1,5 +1,5 @@ /* Initialization code run first thing by the ELF startup code. Linux/PowerPC. - 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/unix/sysv/linux/powerpc/ioctl.c b/sysdeps/unix/sysv/linux/powerpc/ioctl.c index f43e95c368..60cba4666e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/ioctl.c +++ b/sysdeps/unix/sysv/linux/powerpc/ioctl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2016 Free Software Foundation, Inc. +/* Copyright (C) 1998-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 @@ -41,15 +41,15 @@ __ioctl (int fd, unsigned long int request, ...) break; case TCSETS: - result = tcsetattr (fd, TCSANOW, (struct termios *) arg); + result = __tcsetattr (fd, TCSANOW, (struct termios *) arg); break; case TCSETSW: - result = tcsetattr (fd, TCSADRAIN, (struct termios *) arg); + result = __tcsetattr (fd, TCSADRAIN, (struct termios *) arg); break; case TCSETSF: - result = tcsetattr (fd, TCSAFLUSH, (struct termios *) arg); + result = __tcsetattr (fd, TCSAFLUSH, (struct termios *) arg); break; default: @@ -61,4 +61,5 @@ __ioctl (int fd, unsigned long int request, ...) return result; } +libc_hidden_def (__ioctl) weak_alias (__ioctl, ioctl) diff --git a/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h b/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h index baae7ab882..6231e46721 100644 --- a/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h +++ b/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1995-2016 Free Software Foundation, Inc. +/* Old SysV permission definition for Linux. PowerPC version. + 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 @@ -15,7 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <sys/ipc.h> +#include <sys/ipc.h> /* For __key_t */ #define __IPC_64 0x100 @@ -30,17 +31,9 @@ struct __old_ipc_perm unsigned short int __seq; /* Sequence number. */ }; +#define SEMCTL_ARG_ADDRESS(__arg) &__arg.array -/* The codes for the functions to use the ipc syscall multiplexer. */ -#define IPCOP_semop 1 -#define IPCOP_semget 2 -#define IPCOP_semctl 3 -#define IPCOP_semtimedop 4 -#define IPCOP_msgsnd 11 -#define IPCOP_msgrcv 12 -#define IPCOP_msgget 13 -#define IPCOP_msgctl 14 -#define IPCOP_shmat 21 -#define IPCOP_shmdt 22 -#define IPCOP_shmget 23 -#define IPCOP_shmctl 24 +#define MSGRCV_ARGS(__msgp, __msgtyp) \ + ((long int []){ (long int) __msgp, __msgtyp }) + +#include <ipc_ops.h> diff --git a/sysdeps/unix/sysv/linux/powerpc/kernel-features.h b/sysdeps/unix/sysv/linux/powerpc/kernel-features.h index 14807adb27..503f562d76 100644 --- a/sysdeps/unix/sysv/linux/powerpc/kernel-features.h +++ b/sysdeps/unix/sysv/linux/powerpc/kernel-features.h @@ -1,6 +1,6 @@ /* Set flags signalling availability of kernel features based on given kernel version number. PowerPC 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. The GNU C Library is free software; you can redistribute it and/or @@ -20,41 +20,35 @@ /* PowerPC uses socketcall. */ #define __ASSUME_SOCKETCALL 1 -/* The accept4 syscall was added for PowerPC in 2.6.37. */ -#if __LINUX_KERNEL_VERSION >= 0x020625 -# define __ASSUME_ACCEPT4_SYSCALL 1 -#endif - -/* The recvmmsg syscall was added for PowerPC in 2.6.37. */ -#if __LINUX_KERNEL_VERSION >= 0x020625 -# define __ASSUME_RECVMMSG_SYSCALL 1 -#endif - /* New syscalls added for PowerPC in 2.6.37. */ -#if __LINUX_KERNEL_VERSION >= 0x020625 -# define __ASSUME_SOCKET_SYSCALL 1 -# define __ASSUME_BIND_SYSCALL 1 -# define __ASSUME_CONNECT_SYSCALL 1 -# define __ASSUME_LISTEN_SYSCALL 1 -# define __ASSUME_ACCEPT_SYSCALL 1 -# define __ASSUME_GETSOCKNAME_SYSCALL 1 -# define __ASSUME_GETPEERNAME_SYSCALL 1 -# define __ASSUME_SOCKETPAIR_SYSCALL 1 -# define __ASSUME_SEND_SYSCALL 1 -# define __ASSUME_SENDTO_SYSCALL 1 -# define __ASSUME_RECV_SYSCALL 1 -# define __ASSUME_RECVFROM_SYSCALL 1 -# define __ASSUME_SHUTDOWN_SYSCALL 1 -# define __ASSUME_GETSOCKOPT_SYSCALL 1 -# define __ASSUME_SETSOCKOPT_SYSCALL 1 -# define __ASSUME_SENDMSG_SYSCALL 1 -# define __ASSUME_RECVMSG_SYSCALL 1 +#define __ASSUME_SOCKET_SYSCALL 1 +#define __ASSUME_BIND_SYSCALL 1 +#define __ASSUME_CONNECT_SYSCALL 1 +#define __ASSUME_LISTEN_SYSCALL 1 +#define __ASSUME_GETSOCKNAME_SYSCALL 1 +#define __ASSUME_GETPEERNAME_SYSCALL 1 +#define __ASSUME_SOCKETPAIR_SYSCALL 1 +#define __ASSUME_SEND_SYSCALL 1 +#define __ASSUME_RECV_SYSCALL 1 +#define __ASSUME_SHUTDOWN_SYSCALL 1 +#define __ASSUME_GETSOCKOPT_SYSCALL 1 +#define __ASSUME_SETSOCKOPT_SYSCALL 1 + +/* Define this if your 32-bit syscall API requires 64-bit register + pairs to start with an even-number register. */ +#ifndef __powerpc64__ +# define __ASSUME_ALIGNED_REGISTER_PAIRS 1 #endif -/* The sendmmsg syscall was added for PowerPC in 3.0. */ -#if __LINUX_KERNEL_VERSION >= 0x030000 -# define __ASSUME_SENDMMSG_SYSCALL 1 +/* powerpc compat fadvise64_64 reorganize the syscall argument. */ +#ifndef __powerpc64__ +# define __ASSUME_FADVISE64_64_6ARG 1 #endif -#define __ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL 1 #include_next <kernel-features.h> + +/* powerpc only supports ipc syscall. */ +#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS + +#undef __ASSUME_CLONE_DEFAULT +#define __ASSUME_CLONE_BACKWARDS 1 diff --git a/sysdeps/unix/sysv/linux/powerpc/kernel_sigaction.h b/sysdeps/unix/sysv/linux/powerpc/kernel_sigaction.h new file mode 100644 index 0000000000..aef3d5a3b3 --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/kernel_sigaction.h @@ -0,0 +1,9 @@ +/* powerpc kernel sigaction is similar to generic Linux UAPI one, + but the architecture also defines SA_RESTORER. */ +#define SA_RESTORER 0x04000000 +#include <sysdeps/unix/sysv/linux/kernel_sigaction.h> + +#define SET_SA_RESTORER(kact, act) \ + (kact)->sa_restorer = (act)->sa_restorer +#define RESET_SA_RESTORER(act, kact) \ + (act)->sa_restorer = (kact)->sa_restorer diff --git a/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h b/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h index 2b0074e657..8d76e0ae80 100644 --- a/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h +++ b/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h @@ -1,4 +1,4 @@ -/* 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. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/unix/sysv/linux/powerpc/ldconfig.h b/sysdeps/unix/sysv/linux/powerpc/ldconfig.h index 38959b4a3f..beca87e9f2 100644 --- a/sysdeps/unix/sysv/linux/powerpc/ldconfig.h +++ b/sysdeps/unix/sysv/linux/powerpc/ldconfig.h @@ -1,5 +1,5 @@ /* ldconfig default paths and libraries. Linux/PowerPC 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/unix/sysv/linux/powerpc/ldsodefs.h b/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h index cd21c04ce6..118398bc10 100644 --- a/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h +++ b/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h @@ -1,6 +1,6 @@ /* Run-time dynamic linker data structures for loaded ELF shared objects. PowerPC version. - Copyright (C) 2013-2016 Free Software Foundation, Inc. + Copyright (C) 2013-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/unix/sysv/linux/powerpc/libc-start.c b/sysdeps/unix/sysv/linux/powerpc/libc-start.c index 0efd297409..f2ad0c355d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/libc-start.c +++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2016 Free Software Foundation, Inc. +/* Copyright (C) 1998-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/unix/sysv/linux/powerpc/powerpc64/sync_file_range.c b/sysdeps/unix/sysv/linux/powerpc/libc-start.h index d76a2ffdff..689abb01a1 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sync_file_range.c +++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.h @@ -1,5 +1,5 @@ -/* Selective file content synch'ing. - Copyright (C) 2006-2016 Free Software Foundation, Inc. +/* PowerPC definitions for libc main startup. + 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 @@ -16,15 +16,15 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <errno.h> -#include <fcntl.h> -#include <sys/types.h> +#ifndef _LIBC_START_H +#define _LIBC_START_H -#include <sysdep-cancel.h> -#include <sys/syscall.h> +#ifndef SHARED +/* IREL{,A} must happen after TCB initialization in order to allow IFUNC + resolvers to read TCB fields, e.g. hwcap and at_platform. */ +#define ARCH_SETUP_IREL() +#define ARCH_SETUP_TLS() __libc_setup_tls () +#define ARCH_APPLY_IREL() apply_irel () +#endif /* ! SHARED */ -int -sync_file_range (int fd, __off64_t from, __off64_t to, unsigned int flags) -{ - return SYSCALL_CANCEL (sync_file_range2, fd, flags, from, to); -} +#endif /* _LIBC_START_H */ diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h b/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h index af0081bbcc..5fe817d6cb 100644 --- a/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h +++ b/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h @@ -1,5 +1,5 @@ /* Resolve function pointers to VDSO functions. - 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/unix/sysv/linux/powerpc/lowlevellock.h b/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h index 9d63baa66d..8dea247cf9 100644 --- a/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h +++ b/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h @@ -1,5 +1,5 @@ /* PowerPC specific lock definitions. - 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/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c b/sysdeps/unix/sysv/linux/powerpc/not-errno.h index 9eee1d78fe..27da21bdf1 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c +++ b/sysdeps/unix/sysv/linux/powerpc/not-errno.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1997-2016 Free Software Foundation, Inc. +/* Syscall wrapper that do not set errno. Linux powerpc version. + Copyright (C) 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,15 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <sys/types.h> -#include <errno.h> -#include <unistd.h> +/* __access_noerrno is used during process initialization in elf/dl-tunables.c + before the TCB is initialized, prohibiting the usage of + ABORT_TRANSACTION. */ +#undef ABORT_TRANSACTION +#define ABORT_TRANSACTION -#include <sysdep.h> -#include <sys/syscall.h> +#include "sysdeps/unix/sysv/linux/not-errno.h" -/* Truncate the file referenced by FD to LENGTH bytes. */ -int -__ftruncate64 (int fd, off64_t length) -{ - /* On PPC32 64bit values are aligned in odd/even register pairs. */ - int result = INLINE_SYSCALL (ftruncate64, 4, fd, 0, - (long) (length >> 32), - (long) length); - - return result; -} -weak_alias (__ftruncate64, ftruncate64) +/* Recover ABORT_TRANSACTION's previous value, in order to not affect + other syscalls. */ +#undef ABORT_TRANSACTION +#define ABORT_TRANSACTION ABORT_TRANSACTION_IMPL diff --git a/sysdeps/unix/sysv/linux/powerpc/oldgetrlimit64.c b/sysdeps/unix/sysv/linux/powerpc/oldgetrlimit64.c deleted file mode 100644 index 4c27e957bf..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/oldgetrlimit64.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile index 84324aa7e1..b2d7c8f6cc 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile @@ -1,6 +1,15 @@ # See Makeconfig regarding the use of default-abi. default-abi := 32 -ifeq ($(subdir),resource) -sysdep_routines += oldgetrlimit64 +ifeq ($(subdir),csu) +ifeq (yes,$(build-shared)) +sysdep_routines += divdi3 +shared-only-routines += divdi3 +CPPFLAGS-divdi3.c = -Din_divdi3_c +endif +endif + +ifeq ($(subdir),conform) +# For bug 21635. +conformtest-xfail-conds += powerpc32-linux endif diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S index 9b591feac7..011bf0f1a7 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2016 Free Software Foundation, Inc. +/* Copyright (C) 2009-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/unix/sysv/linux/powerpc/powerpc32/alphasort64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/alphasort64.c new file mode 100644 index 0000000000..c7de3a7547 --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/alphasort64.c @@ -0,0 +1,3 @@ +/* Although powerpc32 define _DIRENT_MATCHES_DIRENT64=0 and have compat + mode for 2.1, it does have a compat symbol for alphasort64. */ +#include <dirent/alphasort64.c> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S index b4f8b2f9ef..2dc11845cb 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S @@ -1,5 +1,5 @@ /* brk system call for Linux/ppc. - 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/unix/sysv/linux/powerpc/powerpc32/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S index 28948eae84..7a05c280f2 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S @@ -1,5 +1,5 @@ /* Wrapper around clone system call. - 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. The GNU C Library is free software; you can redistribute it and/or @@ -20,10 +20,6 @@ #define _ERRNO_H 1 #include <bits/errno.h> -#define CLONE_VM 0x00000100 -#define CLONE_THREAD 0x00010000 - - /* This is the only really unusual system call in PPC linux, but not because of any weirdness in the system call itself; because of all the freaky stuff we have to do to make the call useful. */ @@ -76,23 +72,11 @@ ENTRY (__clone) crandc cr1*4+eq,cr1*4+eq,cr0*4+so bne- cr1,L(parent) /* The '-' is to minimise the race. */ - andis. r0,r28,CLONE_THREAD>>16 - bne+ r0,L(oldpid) - andi. r0,r28,CLONE_VM - li r3,-1 - bne- r0,L(nomoregetpid) - DO_CALL(SYS_ify(getpid)) -L(nomoregetpid): - stw r3,TID(r2) - stw r3,PID(r2) -L(oldpid): - /* Call procedure. */ mtctr r30 mr r3,r31 bctrl - /* Call _exit with result from procedure. */ - b HIDDEN_JUMPTARGET(_exit) + DO_CALL(SYS_ify(exit)) L(parent): /* Parent. Restore registers & return. */ @@ -108,4 +92,5 @@ L(badargs): cfi_startproc END (__clone) +libc_hidden_def (__clone) weak_alias (__clone, clone) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies index 00365c1cfd..aab22f212c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies @@ -1,3 +1,2 @@ powerpc/powerpc32/e500/nofpu powerpc/nofpu -powerpc/soft-fp diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fcntl.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fcntl.c deleted file mode 100644 index ea951bc4f9..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fcntl.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/fcntl.c> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c index 716f06e4dc..bc1180b8cc 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c @@ -1,5 +1,5 @@ /* Procedure definition for FE_MASK_ENV for Linux/ppc. - 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/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c index b662653e35..010b87236b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c @@ -1,5 +1,5 @@ /* Procedure definition for FE_NOMASK_ENV for Linux/ppc. - 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/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 6861846109..45839ed25b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_adjust_column F GLIBC_2.0 _IO_default_doallocate F GLIBC_2.0 _IO_default_finish F @@ -1322,7 +1320,6 @@ GLIBC_2.0 xdrstdio_create F GLIBC_2.0 xencrypt F GLIBC_2.0 xprt_register F GLIBC_2.0 xprt_unregister F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 _IO_2_1_stderr_ D 0xa0 GLIBC_2.1 _IO_2_1_stdin_ D 0xa0 GLIBC_2.1 _IO_2_1_stdout_ D 0xa0 @@ -1623,7 +1620,6 @@ GLIBC_2.1 xdr_uint16_t F GLIBC_2.1 xdr_uint32_t F GLIBC_2.1 xdr_uint8_t F GLIBC_2.1 xdr_unixcred F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 _Exit F GLIBC_2.1.1 __mempcpy_small F GLIBC_2.1.1 __stpcpy_small F @@ -1653,7 +1649,6 @@ GLIBC_2.1.1 xdr_longlong_t F GLIBC_2.1.1 xdr_u_hyper F GLIBC_2.1.1 xdr_u_longlong_t F GLIBC_2.1.1 xdr_uint64_t F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F GLIBC_2.1.2 getaliasbyname_r F GLIBC_2.1.2 getaliasent_r F @@ -1681,11 +1676,9 @@ GLIBC_2.1.2 getservbyport_r F GLIBC_2.1.2 getservent_r F GLIBC_2.1.2 getspent_r F GLIBC_2.1.2 getspnam_r F -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 __cxa_atexit F GLIBC_2.1.3 __cxa_finalize F GLIBC_2.1.3 __sigsuspend F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -1711,7 +1704,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -1719,26 +1711,22 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x21c GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x21c GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -1747,7 +1735,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __mcount_internal F GLIBC_2.16 __poll_chk F @@ -1759,7 +1746,6 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __ppc_get_timebase_freq F GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F @@ -1767,9 +1753,7 @@ GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _IO_adjust_wcolumn F GLIBC_2.2 _IO_fgetpos F GLIBC_2.2 _IO_fgetpos64 F @@ -1944,33 +1928,71 @@ GLIBC_2.2 wcsftime F GLIBC_2.2 wmempcpy F GLIBC_2.2 wprintf F GLIBC_2.2 wscanf F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F -GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.24 quick_exit F +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F +GLIBC_2.26 reallocarray F +GLIBC_2.27 copy_file_range F +GLIBC_2.27 glob F +GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2064,7 +2086,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2077,7 +2098,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x104 GLIBC_2.3.3 getcontext F GLIBC_2.3.3 gnu_dev_major F @@ -2102,11 +2122,9 @@ GLIBC_2.3.3 setcontext F GLIBC_2.3.3 swapcontext F GLIBC_2.3.3 sys_sigabbrev D 0x104 GLIBC_2.3.3 sys_siglist D 0x104 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F -GLIBC_2.3.4 __longjmp F GLIBC_2.3.4 __memcpy_chk F GLIBC_2.3.4 __memmove_chk F GLIBC_2.3.4 __mempcpy_chk F @@ -2143,7 +2161,6 @@ GLIBC_2.3.4 siglongjmp F GLIBC_2.3.4 swapcontext F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _IO_fprintf F GLIBC_2.4 _IO_printf F GLIBC_2.4 _IO_sprintf F @@ -2371,7 +2388,6 @@ GLIBC_2.4 wcstold F GLIBC_2.4 wcstold_l F GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2389,7 +2405,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2397,7 +2412,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2436,7 +2450,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __nldbl___asprintf_chk F @@ -2453,7 +2466,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index 5d2f263645..511b24b764 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _LIB_VERSION D 0x4 GLIBC_2.0 acos F GLIBC_2.0 acosf F @@ -155,7 +154,6 @@ GLIBC_2.0 y1l F GLIBC_2.0 yn F GLIBC_2.0 ynf F GLIBC_2.0 ynl F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __clog10 F GLIBC_2.1 __clog10f F GLIBC_2.1 __clog10l F @@ -312,7 +310,6 @@ GLIBC_2.1 tgammal F GLIBC_2.1 trunc F GLIBC_2.1 truncf F GLIBC_2.1 truncl F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -394,11 +391,9 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 feclearexcept F GLIBC_2.2 fedisableexcept F GLIBC_2.2 feenableexcept F @@ -409,12 +404,412 @@ GLIBC_2.2 feraiseexcept F GLIBC_2.2 fesetenv F GLIBC_2.2 fesetexceptflag F GLIBC_2.2 feupdateenv F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.24 nextdown F +GLIBC_2.24 nextdownf F +GLIBC_2.24 nextdownl F +GLIBC_2.24 nextup F +GLIBC_2.24 nextupf F +GLIBC_2.24 nextupl F +GLIBC_2.25 __fe_dfl_mode D 0x8 +GLIBC_2.25 __iscanonicall F +GLIBC_2.25 __iseqsig F +GLIBC_2.25 __iseqsigf F +GLIBC_2.25 __iseqsigl F +GLIBC_2.25 canonicalize F +GLIBC_2.25 canonicalizef F +GLIBC_2.25 canonicalizel F +GLIBC_2.25 fegetmode F +GLIBC_2.25 fesetexcept F +GLIBC_2.25 fesetmode F +GLIBC_2.25 fetestexceptflag F +GLIBC_2.25 fmaxmag F +GLIBC_2.25 fmaxmagf F +GLIBC_2.25 fmaxmagl F +GLIBC_2.25 fminmag F +GLIBC_2.25 fminmagf F +GLIBC_2.25 fminmagl F +GLIBC_2.25 fromfp F +GLIBC_2.25 fromfpf F +GLIBC_2.25 fromfpl F +GLIBC_2.25 fromfpx F +GLIBC_2.25 fromfpxf F +GLIBC_2.25 fromfpxl F +GLIBC_2.25 getpayload F +GLIBC_2.25 getpayloadf F +GLIBC_2.25 getpayloadl F +GLIBC_2.25 llogb F +GLIBC_2.25 llogbf F +GLIBC_2.25 llogbl F +GLIBC_2.25 roundeven F +GLIBC_2.25 roundevenf F +GLIBC_2.25 roundevenl F +GLIBC_2.25 setpayload F +GLIBC_2.25 setpayloadf F +GLIBC_2.25 setpayloadl F +GLIBC_2.25 setpayloadsig F +GLIBC_2.25 setpayloadsigf F +GLIBC_2.25 setpayloadsigl F +GLIBC_2.25 totalorder F +GLIBC_2.25 totalorderf F +GLIBC_2.25 totalorderl F +GLIBC_2.25 totalordermag F +GLIBC_2.25 totalordermagf F +GLIBC_2.25 totalordermagl F +GLIBC_2.25 ufromfp F +GLIBC_2.25 ufromfpf F +GLIBC_2.25 ufromfpl F +GLIBC_2.25 ufromfpx F +GLIBC_2.25 ufromfpxf F +GLIBC_2.25 ufromfpxl F +GLIBC_2.27 acosf32 F +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F +GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F +GLIBC_2.27 expf F +GLIBC_2.27 expf32 F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F +GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F +GLIBC_2.27 logf F +GLIBC_2.27 logf32 F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F +GLIBC_2.27 powf F +GLIBC_2.27 powf32 F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 __nldbl_ddivl F +GLIBC_2.28 __nldbl_dmull F +GLIBC_2.28 __nldbl_dsubl F +GLIBC_2.28 daddl F +GLIBC_2.28 ddivl F +GLIBC_2.28 dmull F +GLIBC_2.28 dsubl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32divf32x F +GLIBC_2.28 f32divf64 F +GLIBC_2.28 f32mulf32x F +GLIBC_2.28 f32mulf64 F +GLIBC_2.28 f32subf32x F +GLIBC_2.28 f32subf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xdivf64 F +GLIBC_2.28 f32xmulf64 F +GLIBC_2.28 f32xsubf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F +GLIBC_2.28 fdiv F +GLIBC_2.28 fdivl F +GLIBC_2.28 fmul F +GLIBC_2.28 fmull F +GLIBC_2.28 fsub F +GLIBC_2.28 fsubl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data index b25abf8006..e822e0a480 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data @@ -5,11 +5,14 @@ libc.so: malloc libc.so: memalign libc.so: realloc libm.so: matherr -# The dynamic loader uses __libc_memalign internally to allocate aligned -# TLS storage. The other malloc family of functions are expected to allow -# user symbol interposition. -ld.so: __libc_memalign +# The main malloc is interposed into the dynamic linker, for +# allocations after the initial link (when dlopen is used). ld.so: malloc ld.so: calloc ld.so: realloc ld.so: free +# The TLS-enabled version of these functions is interposed from libc.so. +ld.so: _dl_signal_error +ld.so: _dl_catch_error +ld.so: _dl_signal_exception +ld.so: _dl_catch_exception diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S index d7f2766076..207dc90db0 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S @@ -1,5 +1,5 @@ /* Save current context, powerpc32 common. - 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/unix/sysv/linux/powerpc/powerpc32/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S index bb5b2fad73..adb3ec464e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S @@ -1,5 +1,5 @@ /* Save current context. - 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/unix/sysv/linux/powerpc/powerpc32/glob64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c deleted file mode 100644 index 82a9a296a7..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/glob64.c> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/jmp_buf-macros.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/jmp_buf-macros.h new file mode 100644 index 0000000000..11b0a8bb00 --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/jmp_buf-macros.h @@ -0,0 +1,6 @@ +#define JMP_BUF_SIZE 592 +#define SIGJMP_BUF_SIZE 592 +#define JMP_BUF_ALIGN 16 +#define SIGJMP_BUF_ALIGN 16 +#define MASK_WAS_SAVED_OFFSET 448 +#define SAVED_MASK_OFFSET 452 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h index 75f7bcddd9..5829f9a610 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h @@ -1,5 +1,5 @@ /* Definition of `struct stat' used in the kernel. - 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. The GNU C Library is free software; you can redistribute it and/or @@ -46,3 +46,6 @@ struct kernel_stat #define _HAVE_STAT64___UNUSED5 #define _HAVE_STAT64___PAD2 #define _HAVE_STAT64_NSEC + +#define XSTAT_IS_XSTAT64 0 +#define STATFS_IS_STATFS64 0 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist index 2eb4d5fef1..e8b0ea3a9b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist @@ -1,17 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A -GLIBC_2.0 __libc_memalign F GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 calloc F GLIBC_2.0 free F GLIBC_2.0 malloc F GLIBC_2.0 realloc F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __libc_stack_end D 0x4 GLIBC_2.1 _dl_mcount F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 __tls_get_addr_opt F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __parse_hwcap_and_convert_at_platform F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist index 4a56bb68a3..54395f3c8d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist index edabfb436e..d9a5ed015d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F GLIBC_2.2.3 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist index 4db2639336..cd6ba95280 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 crypt F GLIBC_2.0 crypt_r F GLIBC_2.0 encrypt F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist index 5536f6e0a9..7826fde951 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist @@ -1,14 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 dladdr F GLIBC_2.0 dlclose F GLIBC_2.0 dlerror F GLIBC_2.0 dlopen F GLIBC_2.0 dlsym F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 dlopen F GLIBC_2.1 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist index a23db2aeaf..add3d66a7a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __yp_check F GLIBC_2.0 xdr_domainname F GLIBC_2.0 xdr_keydat F @@ -42,7 +41,6 @@ GLIBC_2.0 yp_update F GLIBC_2.0 ypbinderr_string F GLIBC_2.0 yperr_string F GLIBC_2.0 ypprot_err F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __free_fdresult F GLIBC_2.1 __nis_default_access F GLIBC_2.1 __nis_default_group F @@ -120,5 +118,4 @@ GLIBC_2.1 readColdStartFile F GLIBC_2.1 writeColdStartFile F GLIBC_2.1 xdr_cback_data F GLIBC_2.1 xdr_obj_p F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 xdr_ypall F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist index 14c3a86b75..09e8447b06 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_flockfile F GLIBC_2.0 _IO_ftrylockfile F GLIBC_2.0 _IO_funlockfile F @@ -119,7 +118,6 @@ GLIBC_2.0 vfork F GLIBC_2.0 wait F GLIBC_2.0 waitpid F GLIBC_2.0 write F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __libc_allocate_rtsig F GLIBC_2.1 __libc_current_sigrtmax F GLIBC_2.1 __libc_current_sigrtmin F @@ -154,24 +152,18 @@ GLIBC_2.1 sem_init F GLIBC_2.1 sem_post F GLIBC_2.1 sem_trywait F GLIBC_2.1 sem_wait F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 sem_close F GLIBC_2.1.1 sem_open F GLIBC_2.1.1 sem_unlink F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __open64 F GLIBC_2.2 __pread64 F GLIBC_2.2 __pthread_rwlock_destroy F @@ -212,18 +204,35 @@ GLIBC_2.2 pthread_yield F GLIBC_2.2 pwrite F GLIBC_2.2 pwrite64 F GLIBC_2.2 sem_timedwait F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -239,7 +248,6 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 longjmp F GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F @@ -247,7 +255,6 @@ GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F GLIBC_2.3.4 siglongjmp F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F @@ -257,6 +264,5 @@ GLIBC_2.4 pthread_mutexattr_getrobust_np F GLIBC_2.4 pthread_mutexattr_setprioceiling F GLIBC_2.4 pthread_mutexattr_setprotocol F GLIBC_2.4 pthread_mutexattr_setrobust_np F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 pthread_attr_setstack F GLIBC_2.6 pthread_attr_setstacksize F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist index 4d50e7c8c6..157a33ce35 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __b64_ntop F GLIBC_2.0 __b64_pton F GLIBC_2.0 __dn_comp F @@ -57,7 +56,6 @@ GLIBC_2.0 res_querydomain F GLIBC_2.0 res_search F GLIBC_2.0 res_send_setqhook F GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __dn_expand F GLIBC_2.2 __res_hostalias F GLIBC_2.2 __res_mkquery F @@ -69,9 +67,7 @@ GLIBC_2.2 __res_nsend F GLIBC_2.2 __res_query F GLIBC_2.2 __res_querydomain F GLIBC_2.2 __res_search F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist index 15e4418863..595f1b712a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 aio_cancel F GLIBC_2.1 aio_cancel64 F GLIBC_2.1 aio_error F @@ -16,7 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 clock_getcpuclockid F GLIBC_2.2 clock_getres F GLIBC_2.2 clock_gettime F @@ -29,7 +27,6 @@ GLIBC_2.2 timer_delete F GLIBC_2.2 timer_getoverrun F GLIBC_2.2 timer_gettime F GLIBC_2.2 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -40,8 +37,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist index a8a8c2c68d..2db0992737 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 td_init F GLIBC_2.1.3 td_log F GLIBC_2.1.3 td_ta_clear_event F @@ -36,9 +35,6 @@ GLIBC_2.1.3 td_thr_setxregs F GLIBC_2.1.3 td_thr_sigsetmask F GLIBC_2.1.3 td_thr_tsd F GLIBC_2.1.3 td_thr_validate F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist index 89c67755c4..aa2d35b323 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 forkpty F GLIBC_2.0 login F GLIBC_2.0 login_tty F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S index 7411f2801c..f958616d73 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S @@ -1,5 +1,5 @@ /* Set up a context to call a function. - 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/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies index 40836b6fb4..d0e048e87c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies @@ -1,2 +1 @@ powerpc/nofpu -powerpc/soft-fp diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h index 4cfcb187c6..f1357fa011 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h @@ -1,5 +1,5 @@ /* getcontext/setcontext/makecontext support for e500 high parts of registers. - Copyright (C) 2006-2016 Free Software Foundation, Inc. + Copyright (C) 2006-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/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S index eced409967..ca90ae15e0 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S @@ -1,5 +1,5 @@ /* Save current context. - 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/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index fd611aa9b4..344e5ae87c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_adjust_column F GLIBC_2.0 _IO_default_doallocate F GLIBC_2.0 _IO_default_finish F @@ -1322,7 +1320,6 @@ GLIBC_2.0 xdrstdio_create F GLIBC_2.0 xencrypt F GLIBC_2.0 xprt_register F GLIBC_2.0 xprt_unregister F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 _IO_2_1_stderr_ D 0xa0 GLIBC_2.1 _IO_2_1_stdin_ D 0xa0 GLIBC_2.1 _IO_2_1_stdout_ D 0xa0 @@ -1623,7 +1620,6 @@ GLIBC_2.1 xdr_uint16_t F GLIBC_2.1 xdr_uint32_t F GLIBC_2.1 xdr_uint8_t F GLIBC_2.1 xdr_unixcred F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 _Exit F GLIBC_2.1.1 __mempcpy_small F GLIBC_2.1.1 __stpcpy_small F @@ -1653,7 +1649,6 @@ GLIBC_2.1.1 xdr_longlong_t F GLIBC_2.1.1 xdr_u_hyper F GLIBC_2.1.1 xdr_u_longlong_t F GLIBC_2.1.1 xdr_uint64_t F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F GLIBC_2.1.2 getaliasbyname_r F GLIBC_2.1.2 getaliasent_r F @@ -1681,11 +1676,9 @@ GLIBC_2.1.2 getservbyport_r F GLIBC_2.1.2 getservent_r F GLIBC_2.1.2 getspent_r F GLIBC_2.1.2 getspnam_r F -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 __cxa_atexit F GLIBC_2.1.3 __cxa_finalize F GLIBC_2.1.3 __sigsuspend F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -1711,7 +1704,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -1719,26 +1711,22 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x21c GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x21c GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -1747,7 +1735,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __mcount_internal F GLIBC_2.16 __poll_chk F @@ -1759,7 +1746,6 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __ppc_get_timebase_freq F GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F @@ -1767,14 +1753,11 @@ GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.19 GLIBC_2.19 A GLIBC_2.19 __atomic_feclearexcept F GLIBC_2.19 __atomic_feholdexcept F GLIBC_2.19 __atomic_feupdateenv F GLIBC_2.19 __flt_rounds F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _IO_adjust_wcolumn F GLIBC_2.2 _IO_fgetpos F GLIBC_2.2 _IO_fgetpos64 F @@ -1949,33 +1932,71 @@ GLIBC_2.2 wcsftime F GLIBC_2.2 wmempcpy F GLIBC_2.2 wprintf F GLIBC_2.2 wscanf F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F -GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.24 quick_exit F +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F +GLIBC_2.26 reallocarray F +GLIBC_2.27 copy_file_range F +GLIBC_2.27 glob F +GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2069,7 +2090,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __adddf3 F GLIBC_2.3.2 __addsf3 F GLIBC_2.3.2 __divdf3 F @@ -2111,7 +2131,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x104 GLIBC_2.3.3 getcontext F GLIBC_2.3.3 gnu_dev_major F @@ -2136,7 +2155,6 @@ GLIBC_2.3.3 setcontext F GLIBC_2.3.3 swapcontext F GLIBC_2.3.3 sys_sigabbrev D 0x104 GLIBC_2.3.3 sys_siglist D 0x104 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2176,7 +2194,6 @@ GLIBC_2.3.4 siglongjmp F GLIBC_2.3.4 swapcontext F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _IO_fprintf F GLIBC_2.4 _IO_printf F GLIBC_2.4 _IO_sprintf F @@ -2416,7 +2433,6 @@ GLIBC_2.4 wcstold F GLIBC_2.4 wcstold_l F GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2434,7 +2450,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2442,7 +2457,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2481,7 +2495,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __nldbl___asprintf_chk F @@ -2498,7 +2511,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index 8b5edb52a0..a6e4e4edaa 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _LIB_VERSION D 0x4 GLIBC_2.0 acos F GLIBC_2.0 acosf F @@ -155,7 +154,6 @@ GLIBC_2.0 y1l F GLIBC_2.0 yn F GLIBC_2.0 ynf F GLIBC_2.0 ynl F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __clog10 F GLIBC_2.1 __clog10f F GLIBC_2.1 __clog10l F @@ -311,7 +309,6 @@ GLIBC_2.1 tgammal F GLIBC_2.1 trunc F GLIBC_2.1 truncf F GLIBC_2.1 truncl F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -393,11 +390,9 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 feclearexcept F GLIBC_2.2 fedisableexcept F GLIBC_2.2 feenableexcept F @@ -408,12 +403,412 @@ GLIBC_2.2 feraiseexcept F GLIBC_2.2 fesetenv F GLIBC_2.2 fesetexceptflag F GLIBC_2.2 feupdateenv F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.24 nextdown F +GLIBC_2.24 nextdownf F +GLIBC_2.24 nextdownl F +GLIBC_2.24 nextup F +GLIBC_2.24 nextupf F +GLIBC_2.24 nextupl F +GLIBC_2.25 __fe_dfl_mode D 0x8 +GLIBC_2.25 __iscanonicall F +GLIBC_2.25 __iseqsig F +GLIBC_2.25 __iseqsigf F +GLIBC_2.25 __iseqsigl F +GLIBC_2.25 canonicalize F +GLIBC_2.25 canonicalizef F +GLIBC_2.25 canonicalizel F +GLIBC_2.25 fegetmode F +GLIBC_2.25 fesetexcept F +GLIBC_2.25 fesetmode F +GLIBC_2.25 fetestexceptflag F +GLIBC_2.25 fmaxmag F +GLIBC_2.25 fmaxmagf F +GLIBC_2.25 fmaxmagl F +GLIBC_2.25 fminmag F +GLIBC_2.25 fminmagf F +GLIBC_2.25 fminmagl F +GLIBC_2.25 fromfp F +GLIBC_2.25 fromfpf F +GLIBC_2.25 fromfpl F +GLIBC_2.25 fromfpx F +GLIBC_2.25 fromfpxf F +GLIBC_2.25 fromfpxl F +GLIBC_2.25 getpayload F +GLIBC_2.25 getpayloadf F +GLIBC_2.25 getpayloadl F +GLIBC_2.25 llogb F +GLIBC_2.25 llogbf F +GLIBC_2.25 llogbl F +GLIBC_2.25 roundeven F +GLIBC_2.25 roundevenf F +GLIBC_2.25 roundevenl F +GLIBC_2.25 setpayload F +GLIBC_2.25 setpayloadf F +GLIBC_2.25 setpayloadl F +GLIBC_2.25 setpayloadsig F +GLIBC_2.25 setpayloadsigf F +GLIBC_2.25 setpayloadsigl F +GLIBC_2.25 totalorder F +GLIBC_2.25 totalorderf F +GLIBC_2.25 totalorderl F +GLIBC_2.25 totalordermag F +GLIBC_2.25 totalordermagf F +GLIBC_2.25 totalordermagl F +GLIBC_2.25 ufromfp F +GLIBC_2.25 ufromfpf F +GLIBC_2.25 ufromfpl F +GLIBC_2.25 ufromfpx F +GLIBC_2.25 ufromfpxf F +GLIBC_2.25 ufromfpxl F +GLIBC_2.27 acosf32 F +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F +GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F +GLIBC_2.27 expf F +GLIBC_2.27 expf32 F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F +GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F +GLIBC_2.27 logf F +GLIBC_2.27 logf32 F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F +GLIBC_2.27 powf F +GLIBC_2.27 powf32 F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 __nldbl_ddivl F +GLIBC_2.28 __nldbl_dmull F +GLIBC_2.28 __nldbl_dsubl F +GLIBC_2.28 daddl F +GLIBC_2.28 ddivl F +GLIBC_2.28 dmull F +GLIBC_2.28 dsubl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32divf32x F +GLIBC_2.28 f32divf64 F +GLIBC_2.28 f32mulf32x F +GLIBC_2.28 f32mulf64 F +GLIBC_2.28 f32subf32x F +GLIBC_2.28 f32subf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xdivf64 F +GLIBC_2.28 f32xmulf64 F +GLIBC_2.28 f32xsubf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F +GLIBC_2.28 fdiv F +GLIBC_2.28 fdivl F +GLIBC_2.28 fmul F +GLIBC_2.28 fmull F +GLIBC_2.28 fsub F +GLIBC_2.28 fsubl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data index 8c4e65d123..fead931d4e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data @@ -35,11 +35,14 @@ libc.so: realloc libm.so: copysignl ? libm.so: fabsl libm.so: matherr -# The dynamic loader uses __libc_memalign internally to allocate aligned -# TLS storage. The other malloc family of functions are expected to allow -# user symbol interposition. -ld.so: __libc_memalign +# The main malloc is interposed into the dynamic linker, for +# allocations after the initial link (when dlopen is used). ld.so: malloc ld.so: calloc ld.so: realloc ld.so: free +# The TLS-enabled version of these functions is interposed from libc.so. +ld.so: _dl_signal_error +ld.so: _dl_catch_error +ld.so: _dl_signal_exception +ld.so: _dl_catch_exception diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S index 4abc5fc9a6..0fbb7a814e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S @@ -1,5 +1,5 @@ /* Jump to a new context. - 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/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S index 08cb796e9c..c2302c8f58 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S @@ -1,5 +1,5 @@ /* Save current context and jump to a new context. - 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/unix/sysv/linux/powerpc/powerpc32/posix_fadvise.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/posix_fadvise.c deleted file mode 100644 index e846bf58c5..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/posix_fadvise.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (C) 2003-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/>. */ - -#include <errno.h> -#include <fcntl.h> -#include <sysdep.h> - -/* Advice the system about the expected behaviour of the application with - respect to the file associated with FD. */ - -int -posix_fadvise (int fd, off_t offset, off_t len, int advise) -{ -#ifdef __NR_fadvise64 - INTERNAL_SYSCALL_DECL (err); - int ret = INTERNAL_SYSCALL (fadvise64, err, 6, fd, 0, - __LONG_LONG_PAIR (offset >> 31, offset), len, - advise); - if (INTERNAL_SYSCALL_ERROR_P (ret, err)) - return INTERNAL_SYSCALL_ERRNO (ret, err); - return 0; -#else - return ENOSYS; -#endif -} diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/posix_fadvise64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/posix_fadvise64.c deleted file mode 100644 index c26206f80a..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/posix_fadvise64.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright (C) 2003-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/>. */ - -#include <errno.h> -#include <fcntl.h> -#include <sysdep.h> - -int __posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise); -int __posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise); - -/* Advice the system about the expected behaviour of the application with - respect to the file associated with FD. */ - -int -__posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise) -{ - INTERNAL_SYSCALL_DECL (err); - int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advise, - __LONG_LONG_PAIR ((long)(offset >> 32), (long)offset), - __LONG_LONG_PAIR ((long)(len >> 32), (long)len)); - if (!INTERNAL_SYSCALL_ERROR_P (ret, err)) - return 0; - return INTERNAL_SYSCALL_ERRNO (ret, err); -} - -#include <shlib-compat.h> - -#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3) - -int -attribute_compat_text_section -__posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise) -{ - return __posix_fadvise64_l64 (fd, offset, len, advise); -} - -versioned_symbol (libc, __posix_fadvise64_l64, posix_fadvise64, GLIBC_2_3_3); -compat_symbol (libc, __posix_fadvise64_l32, posix_fadvise64, GLIBC_2_2); -#else -strong_alias (__posix_fadvise64_l64, posix_fadvise64); -#endif diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c deleted file mode 100644 index 2d67013ab3..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (C) 1997-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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 <assert.h> -#include <errno.h> -#include <unistd.h> - -#include <sysdep-cancel.h> -#include <sys/syscall.h> - -ssize_t -__libc_pread (int fd, void *buf, size_t count, off_t offset) -{ - /* On PPC32 64bit values are aligned in odd/even register pairs. */ - return SYSCALL_CANCEL (pread, fd, buf, count, 0, offset >> 31, offset); -} - -strong_alias (__libc_pread, __pread) -weak_alias (__libc_pread, pread) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c deleted file mode 100644 index 712ab72934..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (C) 1997-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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 <errno.h> -#include <unistd.h> - -#include <sysdep-cancel.h> -#include <sys/syscall.h> - - -ssize_t -__libc_pread64 (int fd, void *buf, size_t count, off64_t offset) -{ - /* On PPC32 64bit values are aligned in odd/even register pairs. */ - return SYSCALL_CANCEL (pread, fd, buf, count, 0, (long) (offset >> 32), - (long) offset); -} - -weak_alias (__libc_pread64, __pread64) -weak_alias (__libc_pread64, pread64) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c deleted file mode 100644 index 4001b47f46..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (C) 1997-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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 <assert.h> -#include <errno.h> -#include <unistd.h> - -#include <sysdep-cancel.h> -#include <sys/syscall.h> - - -ssize_t -__libc_pwrite (int fd, const void *buf, size_t count, off_t offset) -{ - /* On PPC32 64bit values are aligned in odd/even register pairs. */ - return SYSCALL_CANCEL (pwrite, fd, buf, count, 0, offset >> 31, offset); -} - -strong_alias (__libc_pwrite, __pwrite) -weak_alias (__libc_pwrite, pwrite) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c deleted file mode 100644 index 8a513fa2f9..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) 1997-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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 <errno.h> -#include <unistd.h> - -#include <sysdep-cancel.h> -#include <sys/syscall.h> - - -ssize_t -__libc_pwrite64 (int fd, const void *buf, size_t count, off64_t offset) -{ - /* On PPC32 64bit values are aligned in odd/even register pairs. */ - return SYSCALL_CANCEL (pwrite, fd, buf, count, 0, (long) (offset >> 32), - (long) offset); -} - -weak_alias (__libc_pwrite64, __pwrite64) -libc_hidden_weak (__pwrite64) -weak_alias (__libc_pwrite64, pwrite64) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/scandir64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/scandir64.c deleted file mode 100644 index 506fd8877c..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/scandir64.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/scandir64.c> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S index f4ed9a9bbf..cc84e0bc45 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S @@ -1,5 +1,5 @@ /* Jump to a new context powerpc32 common. - 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/unix/sysv/linux/powerpc/powerpc32/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S index 8b7d74b415..700289b273 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S @@ -1,5 +1,5 @@ /* Jump to a new context. - 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/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S index 1aaa656ab4..7584acef08 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S @@ -1,5 +1,5 @@ /* Save current context and jump to a new context. - 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 @@ -271,7 +271,8 @@ ENTRY(__CONTEXT_FUNC_NAME) /* Restore ucontext (parm1) from stack. */ lwz r12,_FRAME_PARM_SAVE1(r1) - li r4,0 + lwz r4,_FRAME_PARM_SAVE2(r1) + addi r4,r4,_UC_SIGMASK stw r3,_UC_REGS_PTR(r12) addi r5,r12,_UC_SIGMASK li r3,SIG_SETMASK diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S index d97fe34c13..ec089f4c03 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S @@ -1,5 +1,5 @@ /* Save current context and jump to a new context. - 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/unix/sysv/linux/powerpc/powerpc32/syscalls.list b/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list index 451d50884b..966856e64a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list @@ -3,12 +3,5 @@ chown - chown i:sii __chown chown@@GLIBC_2.1 lchown - lchown i:sii __lchown lchown@@GLIBC_2.0 chown@GLIBC_2.0 -# System calls with wrappers. -oldgetrlimit EXTRA getrlimit i:ip __old_getrlimit getrlimit@GLIBC_2.0 -setrlimit - setrlimit i:ip __setrlimit setrlimit@GLIBC_2.0 setrlimit@@GLIBC_2.2 - -# Due to 64bit alignment there is a dummy second parameter -readahead - readahead i:iiiii __readahead readahead - prlimit64 EXTRA prlimit64 i:iipp prlimit64 fanotify_mark EXTRA fanotify_mark i:iiiiis fanotify_mark diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h deleted file mode 100644 index f29f0188fc..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h +++ /dev/null @@ -1,118 +0,0 @@ -/* Cancellable system call stubs. Linux/PowerPC version. - Copyright (C) 2003-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Franz Sirl <Franz.Sirl-kernel@lauterbach.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/>. */ - -#include <sysdep.h> -#include <tls.h> -#ifndef __ASSEMBLER__ -# include <nptl/pthreadP.h> -#endif - -#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt) - -# undef PSEUDO -# define PSEUDO(name, syscall_name, args) \ - .section ".text"; \ - ENTRY (name) \ - SINGLE_THREAD_P; \ - bne- .Lpseudo_cancel; \ - .type __##syscall_name##_nocancel,@function; \ - .globl __##syscall_name##_nocancel; \ - __##syscall_name##_nocancel: \ - DO_CALL (SYS_ify (syscall_name)); \ - PSEUDO_RET; \ - .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \ - .Lpseudo_cancel: \ - stwu 1,-48(1); \ - cfi_adjust_cfa_offset (48); \ - mflr 9; \ - stw 9,52(1); \ - cfi_offset (lr, 4); \ - DOCARGS_##args; /* save syscall args around CENABLE. */ \ - CENABLE; \ - stw 3,16(1); /* store CENABLE return value (MASK). */ \ - UNDOCARGS_##args; /* restore syscall args. */ \ - DO_CALL (SYS_ify (syscall_name)); \ - mfcr 0; /* save CR/R3 around CDISABLE. */ \ - stw 3,8(1); \ - stw 0,12(1); \ - lwz 3,16(1); /* pass MASK to CDISABLE. */ \ - CDISABLE; \ - lwz 4,52(1); \ - lwz 0,12(1); /* restore CR/R3. */ \ - lwz 3,8(1); \ - mtlr 4; \ - mtcr 0; \ - addi 1,1,48; - -# define DOCARGS_0 -# define UNDOCARGS_0 - -# define DOCARGS_1 stw 3,20(1); DOCARGS_0 -# define UNDOCARGS_1 lwz 3,20(1); UNDOCARGS_0 - -# define DOCARGS_2 stw 4,24(1); DOCARGS_1 -# define UNDOCARGS_2 lwz 4,24(1); UNDOCARGS_1 - -# define DOCARGS_3 stw 5,28(1); DOCARGS_2 -# define UNDOCARGS_3 lwz 5,28(1); UNDOCARGS_2 - -# define DOCARGS_4 stw 6,32(1); DOCARGS_3 -# define UNDOCARGS_4 lwz 6,32(1); UNDOCARGS_3 - -# define DOCARGS_5 stw 7,36(1); DOCARGS_4 -# define UNDOCARGS_5 lwz 7,36(1); UNDOCARGS_4 - -# define DOCARGS_6 stw 8,40(1); DOCARGS_5 -# define UNDOCARGS_6 lwz 8,40(1); UNDOCARGS_5 - -# if IS_IN (libpthread) -# define CENABLE bl __pthread_enable_asynccancel@local -# define CDISABLE bl __pthread_disable_asynccancel@local -# elif IS_IN (libc) -# define CENABLE bl __libc_enable_asynccancel@local -# define CDISABLE bl __libc_disable_asynccancel@local -# elif IS_IN (librt) -# define CENABLE bl __librt_enable_asynccancel@local -# define CDISABLE bl __librt_disable_asynccancel@local -# else -# error Unsupported library -# endif - -# ifndef __ASSEMBLER__ -# define SINGLE_THREAD_P \ - __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ - header.multiple_threads) == 0, 1) -# else -# define SINGLE_THREAD_P \ - lwz 10,MULTIPLE_THREADS_OFFSET(2); \ - cmpwi 10,0 -# endif - -#elif !defined __ASSEMBLER__ - -# define SINGLE_THREAD_P (1) -# define NO_CANCELLATION 1 - -#endif - -#ifndef __ASSEMBLER__ -# define RTLD_SINGLE_THREAD_P \ - __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ - header.multiple_threads) == 0, 1) -#endif diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h index 6d8990c5de..f7277d59e1 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2016 Free Software Foundation, Inc. +/* Copyright (C) 1992-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 @@ -22,24 +22,6 @@ #include <sysdeps/unix/powerpc/sysdep.h> #include <tls.h> -/* Some systen calls got renamed over time, but retained the same semantics. - Handle them here so they can be catched by both C and assembler stubs in - glibc. */ - -#ifdef __NR_pread64 -# ifdef __NR_pread -# error "__NR_pread and __NR_pread64 both defined???" -# endif -# define __NR_pread __NR_pread64 -#endif - -#ifdef __NR_pwrite64 -# ifdef __NR_pwrite -# error "__NR_pwrite and __NR_pwrite64 both defined???" -# endif -# define __NR_pwrite __NR_pwrite64 -#endif - /* For Linux we can use the system call table in the header file /usr/include/asm/unistd.h of the kernel. But these symbols do not follow the SYS_* syntax diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c deleted file mode 100644 index ccfdafa74b..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c +++ /dev/null @@ -1,34 +0,0 @@ -/* 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/>. */ - -#include <sys/types.h> -#include <errno.h> -#include <unistd.h> - -#include <sysdep.h> -#include <sys/syscall.h> - -/* Truncate the file referenced by FD to LENGTH bytes. */ -int -truncate64 (const char *path, off64_t length) -{ - /* On PPC32 64bit values are aligned in odd/even register pairs. */ - int result = INLINE_SYSCALL (truncate64, 4, path, 0, - (long) (length >> 32), - (long) length); - return result; -} diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/versionsort64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/versionsort64.c new file mode 100644 index 0000000000..ee0e86672d --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/versionsort64.c @@ -0,0 +1,3 @@ +/* Although powerpc32 define _DIRENT_MATCHES_DIRENT64=0 and have compat + mode for 2.1, it does have a compat symbol for alphasort64. */ +#include <dirent/versionsort64.c> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S index edbc7de1e6..2d096629bf 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S @@ -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 @@ -27,34 +27,8 @@ ENTRY (__vfork) - /* Load the TCB-cached PID value and negates it. If It it is zero - sets it to 0x800000. And then sets its value again on TCB field. - See raise.c for the logic that relies on this value. */ - - lwz r0,PID(r2) - cmpwi cr0,r0,0 - neg r0,r0 - bne- cr0,1f - lis r0,0x8000 -1: stw r0,PID(r2) - DO_CALL (SYS_ify (vfork)) - cmpwi cr1,r3,0 - beqlr- 1 - - /* Restore the original value of the TCB cache of the PID, if we're - the parent. But in the child (syscall return value equals zero), - leave things as they are. */ - lwz r0,PID(r2) - /* Cannot use clrlwi. here, because cr0 needs to be preserved - until PSEUDO_RET. */ - clrlwi r4,r0,1 - cmpwi cr1,r4,0 - beq- cr1,1f - neg r4,r0 -1: stw r4,PID(r2) - PSEUDO_RET PSEUDO_END (__vfork) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/970/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/970/Implies deleted file mode 100644 index 76a32ce7b5..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/970/Implies +++ /dev/null @@ -1,2 +0,0 @@ -powerpc/powerpc64/970/fpu -powerpc/powerpc64/970 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S index bf84e7c46c..d4d7eb411c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2016 Free Software Foundation, Inc. +/* Copyright (C) 2009-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/unix/sysv/linux/powerpc/powerpc64/a2/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/a2/Implies deleted file mode 100644 index 39b19e9c1f..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/a2/Implies +++ /dev/null @@ -1,2 +0,0 @@ -powerpc/powerpc64/a2/fpu -powerpc/powerpc64/a2 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/970/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/970/Implies new file mode 100644 index 0000000000..1ef894bfe0 --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/970/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc64/be/970/fpu +powerpc/powerpc64/be/970 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/a2/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/a2/Implies new file mode 100644 index 0000000000..c8774754fc --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/a2/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc64/be/a2/fpu +powerpc/powerpc64/be/a2 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/cell/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/cell/Implies new file mode 100644 index 0000000000..0da65967a2 --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/cell/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc64/be/cell/fpu +powerpc/powerpc64/be/cell diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/cell/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/cell/fpu/Implies new file mode 100644 index 0000000000..6c526bba1c --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/cell/fpu/Implies @@ -0,0 +1 @@ +powerpc/powerpc64/be/cell/fpu diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S index 5919b88fc7..c8cb7edf77 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S @@ -1,5 +1,5 @@ /* brk system call for Linux. PowerPC64 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 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/Implies deleted file mode 100644 index 583d4084a4..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/Implies +++ /dev/null @@ -1,2 +0,0 @@ -powerpc/powerpc64/cell/fpu -powerpc/powerpc64/cell diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/fpu/Implies deleted file mode 100644 index b6720ecda5..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/fpu/Implies +++ /dev/null @@ -1 +0,0 @@ -powerpc/powerpc64/cell/fpu diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S index c8c6de8229..a4c8bbeac0 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S @@ -1,5 +1,5 @@ /* Wrapper around clone system call. PowerPC64 version. - 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. The GNU C Library is free software; you can redistribute it and/or @@ -20,9 +20,6 @@ #define _ERRNO_H 1 #include <bits/errno.h> -#define CLONE_VM 0x00000100 -#define CLONE_THREAD 0x00010000 - /* This is the only really unusual system call in PPC linux, but not because of any weirdness in the system call itself; because of all the freaky stuff we have to do to make the call useful. */ @@ -78,32 +75,17 @@ ENTRY (__clone) crandc cr1*4+eq,cr1*4+eq,cr0*4+so bne- cr1,L(parent) /* The '-' is to minimise the race. */ - andis. r0,r29,CLONE_THREAD>>16 - bne+ cr0,L(oldpid) - andi. r0,r29,CLONE_VM - li r3,-1 - bne- cr0,L(nomoregetpid) - DO_CALL(SYS_ify(getpid)) -L(nomoregetpid): - stw r3,TID(r13) - stw r3,PID(r13) -L(oldpid): - std r2,FRAME_TOC_SAVE(r1) /* Call procedure. */ PPC64_LOAD_FUNCPTR r30 mr r3,r31 bctrl ld r2,FRAME_TOC_SAVE(r1) - /* Call _exit with result from procedure. */ -#ifdef SHARED - b JUMPTARGET(__GI__exit) -#else - b JUMPTARGET(_exit) + + DO_CALL(SYS_ify(exit)) /* We won't ever get here but provide a nop so that the linker will insert a toc adjusting stub if necessary. */ nop -#endif L(badargs): cfi_startproc @@ -126,4 +108,5 @@ L(parent): END (__clone) +libc_hidden_def (__clone) weak_alias (__clone, clone) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure index af069700e9..ae7f254da4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure @@ -4,8 +4,8 @@ test -n "$libc_cv_slibdir" || case "$prefix" in /usr | /usr/) - libc_cv_slibdir=/lib64 - libc_cv_rtlddir=/lib64 + libc_cv_slibdir='/lib64' + libc_cv_rtlddir='/lib64' if test "$libdir" = '${exec_prefix}/lib'; then libdir='${exec_prefix}/lib64'; # Locale data can be shared between 32-bit and 64-bit libraries. @@ -207,3 +207,27 @@ $as_echo "$libc_cv_ppc64_def_call_elf" >&6; } libc_extra_cppflags="$libc_extra_cppflags -D_CALL_ELF=1" fi fi +# Set minimum kernel version for ppc64le. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the machine type to set minimum kernel version" >&5 +$as_echo_n "checking the machine type to set minimum kernel version... " >&6; } +if ${libc_cv_ppc64_le+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + yes + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + arch_minimum_kernel=3.10.0 +else + libc_cv_ppc64_le=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ppc64_le" >&5 +$as_echo "$libc_cv_ppc64_le" >&6; } diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac index 0822915c43..f9cba6e15d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac @@ -27,3 +27,10 @@ else libc_extra_cppflags="$libc_extra_cppflags -D_CALL_ELF=1" fi fi +# Set minimum kernel version for ppc64le. +AC_CACHE_CHECK([the machine type to set minimum kernel version], + [libc_cv_ppc64_le], + [AC_EGREP_CPP(yes,[#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + yes + #endif + ], arch_minimum_kernel=3.10.0, libc_cv_ppc64_le=no)]) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h index ec69399bab..78dac07783 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h @@ -1,5 +1,5 @@ /* Support for reading /etc/ld.so.cache files written by Linux ldconfig. - 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/unix/sysv/linux/powerpc/powerpc64/fcntl.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c deleted file mode 100644 index 0167c8fbd2..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c +++ /dev/null @@ -1,65 +0,0 @@ -/* 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/>. */ - -#include <assert.h> -#include <errno.h> -#include <sysdep-cancel.h> /* Must come before <fcntl.h>. */ -#include <fcntl.h> -#include <stdarg.h> - -#include <sys/syscall.h> - - -#ifndef NO_CANCELLATION -int -__fcntl_nocancel (int fd, int cmd, ...) -{ - va_list ap; - void *arg; - - va_start (ap, cmd); - arg = va_arg (ap, void *); - va_end (ap); - - return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg); -} -#endif - - -int -__libc_fcntl (int fd, int cmd, ...) -{ - va_list ap; - void *arg; - - va_start (ap, cmd); - arg = va_arg (ap, void *); - va_end (ap); - - if (cmd >= F_GETLK64 && cmd <= F_SETLKW64) - cmd -= F_GETLK64 - F_GETLK; - - if (cmd != F_SETLKW) - return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg); - - return SYSCALL_CANCEL (fcntl, fd, cmd, arg); -} -libc_hidden_def (__libc_fcntl) - -weak_alias (__libc_fcntl, __fcntl) -libc_hidden_weak (__fcntl) -weak_alias (__libc_fcntl, fcntl) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c index 8e20cd55d0..31564bee6c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c @@ -1,5 +1,5 @@ /* Procedure definition for FE_MASK_ENV for Linux/ppc64. - 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/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c index 14ace1b2b8..486ef84386 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c @@ -1,5 +1,5 @@ /* Procedure definition for FE_NOMASK_ENV for Linux/ppc64. - 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/unix/sysv/linux/powerpc/powerpc64/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S index 7fb2b1608b..3378e629be 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S @@ -1,5 +1,5 @@ /* Save current context. - 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/unix/sysv/linux/powerpc/powerpc64/jmp_buf-macros.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/jmp_buf-macros.h new file mode 100644 index 0000000000..d3e0d4e146 --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/jmp_buf-macros.h @@ -0,0 +1,6 @@ +#define JMP_BUF_SIZE 656 +#define SIGJMP_BUF_SIZE 656 +#define JMP_BUF_ALIGN 16 +#define SIGJMP_BUF_ALIGN 16 +#define MASK_WAS_SAVED_OFFSET 512 +#define SAVED_MASK_OFFSET 520 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h index fce8fbab91..2f7f7e8a8a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h @@ -1,5 +1,5 @@ /* Definition of `struct stat' used in the kernel. - 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 @@ -18,3 +18,4 @@ #define STAT_IS_KERNEL_STAT 1 #define XSTAT_IS_XSTAT64 1 +#define STATFS_IS_STATFS64 0 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist index 27d451b46b..37c8f6684b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist @@ -1,5 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A -GLIBC_2.17 __libc_memalign F GLIBC_2.17 __libc_stack_end D 0x8 GLIBC_2.17 __tls_get_addr F GLIBC_2.17 _dl_mcount F @@ -8,7 +6,5 @@ GLIBC_2.17 calloc F GLIBC_2.17 free F GLIBC_2.17 malloc F GLIBC_2.17 realloc F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 __tls_get_addr_opt F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __parse_hwcap_and_convert_at_platform F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist index 8914eb06b4..edfc9ca56f 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist @@ -1,9 +1,5 @@ -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 __tls_get_addr_opt F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __parse_hwcap_and_convert_at_platform F -GLIBC_2.3 GLIBC_2.3 A -GLIBC_2.3 __libc_memalign F GLIBC_2.3 __libc_stack_end D 0x8 GLIBC_2.3 __tls_get_addr F GLIBC_2.3 _dl_mcount F @@ -12,4 +8,3 @@ GLIBC_2.3 calloc F GLIBC_2.3 free F GLIBC_2.3 malloc F GLIBC_2.3 realloc F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h index 7c079e2cd8..65c594cc29 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h @@ -1,5 +1,5 @@ /* Run-time dynamic linker data structures for loaded ELF shared objects. - 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/unix/sysv/linux/powerpc/powerpc64/le/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/Implies new file mode 100644 index 0000000000..4eacd3ae86 --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/Implies @@ -0,0 +1 @@ +unix/sysv/linux/powerpc/powerpc64 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h new file mode 100644 index 0000000000..6b954cc673 --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h @@ -0,0 +1,2 @@ +/* ABI version for _Float128 ABI introduction. */ +#define FLOAT128_VERSION GLIBC_2.26 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/fpu/Implies new file mode 100644 index 0000000000..5da96db05b --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/fpu/Implies @@ -0,0 +1 @@ +unix/sysv/linux/powerpc/powerpc64/fpu diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist index 5e54974368..0829ddef6d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist @@ -1,2 +1 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist index 40f6e08b75..fb7dfa4c1d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist index 21330fc8d5..9492cd5290 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 gai_cancel F GLIBC_2.17 gai_error F GLIBC_2.17 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist index 9036592d30..975593b41f 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 gai_cancel F GLIBC_2.3 gai_error F GLIBC_2.3 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index a97bd43b8f..e26930e728 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 _Exit F GLIBC_2.17 _IO_2_1_stderr_ D 0xe0 GLIBC_2.17 _IO_2_1_stdin_ D 0xe0 @@ -2165,13 +2164,67 @@ GLIBC_2.17 xdrstdio_create F GLIBC_2.17 xencrypt F GLIBC_2.17 xprt_register F GLIBC_2.17 xprt_unregister F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F +GLIBC_2.24 quick_exit F +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F +GLIBC_2.26 __strtof128_internal F +GLIBC_2.26 __wcstof128_internal F +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F +GLIBC_2.26 reallocarray F +GLIBC_2.26 strfromf128 F +GLIBC_2.26 strtof128 F +GLIBC_2.26 strtof128_l F +GLIBC_2.26 wcstof128 F +GLIBC_2.26 wcstof128_l F +GLIBC_2.27 copy_file_range F +GLIBC_2.27 glob F +GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 00772cb630..8c1781adf4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -1,4 +1,3 @@ -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -25,33 +24,28 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x438 GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x438 GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -60,7 +54,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -71,7 +64,6 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __ppc_get_timebase_freq F GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F @@ -79,17 +71,58 @@ GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F -GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.24 quick_exit F +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F +GLIBC_2.26 reallocarray F +GLIBC_2.27 copy_file_range F +GLIBC_2.27 glob F +GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 _Exit F GLIBC_2.3 _IO_2_1_stderr_ D 0xe0 GLIBC_2.3 _IO_2_1_stdin_ D 0xe0 @@ -1921,7 +1954,6 @@ GLIBC_2.3 xdrstdio_create F GLIBC_2.3 xencrypt F GLIBC_2.3 xprt_register F GLIBC_2.3 xprt_unregister F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -1934,7 +1966,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x208 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -1955,7 +1986,6 @@ GLIBC_2.3.3 strtoll_l F GLIBC_2.3.3 strtoull_l F GLIBC_2.3.3 sys_sigabbrev D 0x208 GLIBC_2.3.3 sys_siglist D 0x208 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -1994,7 +2024,6 @@ GLIBC_2.3.4 siglongjmp F GLIBC_2.3.4 swapcontext F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _IO_fprintf F GLIBC_2.4 _IO_printf F GLIBC_2.4 _IO_sprintf F @@ -2222,7 +2251,6 @@ GLIBC_2.4 wcstold F GLIBC_2.4 wcstold_l F GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2240,7 +2268,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2248,7 +2275,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2287,7 +2313,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __nldbl___asprintf_chk F @@ -2304,7 +2329,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist index 58944b3d83..4082747aa3 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 crypt F GLIBC_2.17 crypt_r F GLIBC_2.17 encrypt F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist index 52cf1ac766..069212877a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 crypt F GLIBC_2.3 crypt_r F GLIBC_2.3 encrypt F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist index 1b4b1f77ed..36340d5dd8 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 dladdr F GLIBC_2.17 dladdr1 F GLIBC_2.17 dlclose F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist index 764ddc1c19..5b472f45aa 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist @@ -1,12 +1,9 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 dladdr F GLIBC_2.3 dlclose F GLIBC_2.3 dlerror F GLIBC_2.3 dlopen F GLIBC_2.3 dlsym F GLIBC_2.3 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist index ee066837af..1e1f2b8d6e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 _LIB_VERSION D 0x4 GLIBC_2.17 __acos_finite F GLIBC_2.17 __acosf_finite F @@ -399,12 +398,681 @@ GLIBC_2.17 y1l F GLIBC_2.17 yn F GLIBC_2.17 ynf F GLIBC_2.17 ynl F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F +GLIBC_2.24 nextdown F +GLIBC_2.24 nextdownf F +GLIBC_2.24 nextdownl F +GLIBC_2.24 nextup F +GLIBC_2.24 nextupf F +GLIBC_2.24 nextupl F +GLIBC_2.25 __fe_dfl_mode D 0x8 +GLIBC_2.25 __iscanonicall F +GLIBC_2.25 __iseqsig F +GLIBC_2.25 __iseqsigf F +GLIBC_2.25 __iseqsigl F +GLIBC_2.25 canonicalize F +GLIBC_2.25 canonicalizef F +GLIBC_2.25 canonicalizel F +GLIBC_2.25 fegetmode F +GLIBC_2.25 fesetexcept F +GLIBC_2.25 fesetmode F +GLIBC_2.25 fetestexceptflag F +GLIBC_2.25 fmaxmag F +GLIBC_2.25 fmaxmagf F +GLIBC_2.25 fmaxmagl F +GLIBC_2.25 fminmag F +GLIBC_2.25 fminmagf F +GLIBC_2.25 fminmagl F +GLIBC_2.25 fromfp F +GLIBC_2.25 fromfpf F +GLIBC_2.25 fromfpl F +GLIBC_2.25 fromfpx F +GLIBC_2.25 fromfpxf F +GLIBC_2.25 fromfpxl F +GLIBC_2.25 getpayload F +GLIBC_2.25 getpayloadf F +GLIBC_2.25 getpayloadl F +GLIBC_2.25 llogb F +GLIBC_2.25 llogbf F +GLIBC_2.25 llogbl F +GLIBC_2.25 roundeven F +GLIBC_2.25 roundevenf F +GLIBC_2.25 roundevenl F +GLIBC_2.25 setpayload F +GLIBC_2.25 setpayloadf F +GLIBC_2.25 setpayloadl F +GLIBC_2.25 setpayloadsig F +GLIBC_2.25 setpayloadsigf F +GLIBC_2.25 setpayloadsigl F +GLIBC_2.25 totalorder F +GLIBC_2.25 totalorderf F +GLIBC_2.25 totalorderl F +GLIBC_2.25 totalordermag F +GLIBC_2.25 totalordermagf F +GLIBC_2.25 totalordermagl F +GLIBC_2.25 ufromfp F +GLIBC_2.25 ufromfpf F +GLIBC_2.25 ufromfpl F +GLIBC_2.25 ufromfpx F +GLIBC_2.25 ufromfpxf F +GLIBC_2.25 ufromfpxl F +GLIBC_2.26 __acosf128_finite F +GLIBC_2.26 __acoshf128_finite F +GLIBC_2.26 __asinf128_finite F +GLIBC_2.26 __atan2f128_finite F +GLIBC_2.26 __atanhf128_finite F +GLIBC_2.26 __coshf128_finite F +GLIBC_2.26 __exp10f128_finite F +GLIBC_2.26 __exp2f128_finite F +GLIBC_2.26 __expf128_finite F +GLIBC_2.26 __finitef128 F +GLIBC_2.26 __fmodf128_finite F +GLIBC_2.26 __fpclassifyf128 F +GLIBC_2.26 __gammaf128_r_finite F +GLIBC_2.26 __hypotf128_finite F +GLIBC_2.26 __iseqsigf128 F +GLIBC_2.26 __isinff128 F +GLIBC_2.26 __isnanf128 F +GLIBC_2.26 __issignalingf128 F +GLIBC_2.26 __j0f128_finite F +GLIBC_2.26 __j1f128_finite F +GLIBC_2.26 __jnf128_finite F +GLIBC_2.26 __lgammaf128_r_finite F +GLIBC_2.26 __log10f128_finite F +GLIBC_2.26 __log2f128_finite F +GLIBC_2.26 __logf128_finite F +GLIBC_2.26 __powf128_finite F +GLIBC_2.26 __remainderf128_finite F +GLIBC_2.26 __signbitf128 F +GLIBC_2.26 __sinhf128_finite F +GLIBC_2.26 __sqrtf128_finite F +GLIBC_2.26 __y0f128_finite F +GLIBC_2.26 __y1f128_finite F +GLIBC_2.26 __ynf128_finite F +GLIBC_2.26 acosf128 F +GLIBC_2.26 acoshf128 F +GLIBC_2.26 asinf128 F +GLIBC_2.26 asinhf128 F +GLIBC_2.26 atan2f128 F +GLIBC_2.26 atanf128 F +GLIBC_2.26 atanhf128 F +GLIBC_2.26 cabsf128 F +GLIBC_2.26 cacosf128 F +GLIBC_2.26 cacoshf128 F +GLIBC_2.26 canonicalizef128 F +GLIBC_2.26 cargf128 F +GLIBC_2.26 casinf128 F +GLIBC_2.26 casinhf128 F +GLIBC_2.26 catanf128 F +GLIBC_2.26 catanhf128 F +GLIBC_2.26 cbrtf128 F +GLIBC_2.26 ccosf128 F +GLIBC_2.26 ccoshf128 F +GLIBC_2.26 ceilf128 F +GLIBC_2.26 cexpf128 F +GLIBC_2.26 cimagf128 F +GLIBC_2.26 clog10f128 F +GLIBC_2.26 clogf128 F +GLIBC_2.26 conjf128 F +GLIBC_2.26 copysignf128 F +GLIBC_2.26 cosf128 F +GLIBC_2.26 coshf128 F +GLIBC_2.26 cpowf128 F +GLIBC_2.26 cprojf128 F +GLIBC_2.26 crealf128 F +GLIBC_2.26 csinf128 F +GLIBC_2.26 csinhf128 F +GLIBC_2.26 csqrtf128 F +GLIBC_2.26 ctanf128 F +GLIBC_2.26 ctanhf128 F +GLIBC_2.26 erfcf128 F +GLIBC_2.26 erff128 F +GLIBC_2.26 exp10f128 F +GLIBC_2.26 exp2f128 F +GLIBC_2.26 expf128 F +GLIBC_2.26 expm1f128 F +GLIBC_2.26 fabsf128 F +GLIBC_2.26 fdimf128 F +GLIBC_2.26 floorf128 F +GLIBC_2.26 fmaf128 F +GLIBC_2.26 fmaxf128 F +GLIBC_2.26 fmaxmagf128 F +GLIBC_2.26 fminf128 F +GLIBC_2.26 fminmagf128 F +GLIBC_2.26 fmodf128 F +GLIBC_2.26 frexpf128 F +GLIBC_2.26 fromfpf128 F +GLIBC_2.26 fromfpxf128 F +GLIBC_2.26 getpayloadf128 F +GLIBC_2.26 hypotf128 F +GLIBC_2.26 ilogbf128 F +GLIBC_2.26 j0f128 F +GLIBC_2.26 j1f128 F +GLIBC_2.26 jnf128 F +GLIBC_2.26 ldexpf128 F +GLIBC_2.26 lgammaf128 F +GLIBC_2.26 lgammaf128_r F +GLIBC_2.26 llogbf128 F +GLIBC_2.26 llrintf128 F +GLIBC_2.26 llroundf128 F +GLIBC_2.26 log10f128 F +GLIBC_2.26 log1pf128 F +GLIBC_2.26 log2f128 F +GLIBC_2.26 logbf128 F +GLIBC_2.26 logf128 F +GLIBC_2.26 lrintf128 F +GLIBC_2.26 lroundf128 F +GLIBC_2.26 modff128 F +GLIBC_2.26 nanf128 F +GLIBC_2.26 nearbyintf128 F +GLIBC_2.26 nextafterf128 F +GLIBC_2.26 nextdownf128 F +GLIBC_2.26 nextupf128 F +GLIBC_2.26 powf128 F +GLIBC_2.26 remainderf128 F +GLIBC_2.26 remquof128 F +GLIBC_2.26 rintf128 F +GLIBC_2.26 roundevenf128 F +GLIBC_2.26 roundf128 F +GLIBC_2.26 scalblnf128 F +GLIBC_2.26 scalbnf128 F +GLIBC_2.26 setpayloadf128 F +GLIBC_2.26 setpayloadsigf128 F +GLIBC_2.26 sincosf128 F +GLIBC_2.26 sinf128 F +GLIBC_2.26 sinhf128 F +GLIBC_2.26 sqrtf128 F +GLIBC_2.26 tanf128 F +GLIBC_2.26 tanhf128 F +GLIBC_2.26 tgammaf128 F +GLIBC_2.26 totalorderf128 F +GLIBC_2.26 totalordermagf128 F +GLIBC_2.26 truncf128 F +GLIBC_2.26 ufromfpf128 F +GLIBC_2.26 ufromfpxf128 F +GLIBC_2.26 y0f128 F +GLIBC_2.26 y1f128 F +GLIBC_2.26 ynf128 F +GLIBC_2.27 acosf32 F +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf32 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf32 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf32 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f32 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf32 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf32 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf32 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf32 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf32 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef32 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf32 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf32 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf32 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf32 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf32 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf32 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf32 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf32 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf32 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf32 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf32 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f32 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf32 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf32 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf32 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf32 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf32 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf32 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf32 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf32 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf32 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf32 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf32 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf32 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf32 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf32 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff32 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f32 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F +GLIBC_2.27 exp10f64x F +GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F +GLIBC_2.27 exp2f64x F +GLIBC_2.27 expf F +GLIBC_2.27 expf32 F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f32 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf32 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf32 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf32 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf32 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf32 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf32 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf32 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf32 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf32 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf32 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf32 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf32 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf32 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf32 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf32 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f32 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f32 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf32 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf32 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 lgammaf64x F +GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf32 F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf32 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf32 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f32 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf32 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F +GLIBC_2.27 log1pf64x F +GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf32 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F +GLIBC_2.27 logbf64x F +GLIBC_2.27 logf F +GLIBC_2.27 logf32 F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf32 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf32 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff32 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 modff64x F +GLIBC_2.27 nanf32 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf32 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf32 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf32 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf32 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F +GLIBC_2.27 nextupf64x F +GLIBC_2.27 powf F +GLIBC_2.27 powf32 F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf32 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof32 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf32 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf32 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf32 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf32 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf32 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf32 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf32 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf32 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf32 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf32 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf32 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf32 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf32 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf32 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf32 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf32 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf32 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf32 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf32 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f32 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f32 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf32 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F +GLIBC_2.27 ynf64x F +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 __nldbl_ddivl F +GLIBC_2.28 __nldbl_dmull F +GLIBC_2.28 __nldbl_dsubl F +GLIBC_2.28 daddl F +GLIBC_2.28 ddivl F +GLIBC_2.28 dmull F +GLIBC_2.28 dsubl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32divf128 F +GLIBC_2.28 f32divf32x F +GLIBC_2.28 f32divf64 F +GLIBC_2.28 f32divf64x F +GLIBC_2.28 f32mulf128 F +GLIBC_2.28 f32mulf32x F +GLIBC_2.28 f32mulf64 F +GLIBC_2.28 f32mulf64x F +GLIBC_2.28 f32subf128 F +GLIBC_2.28 f32subf32x F +GLIBC_2.28 f32subf64 F +GLIBC_2.28 f32subf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f32xdivf128 F +GLIBC_2.28 f32xdivf64 F +GLIBC_2.28 f32xdivf64x F +GLIBC_2.28 f32xmulf128 F +GLIBC_2.28 f32xmulf64 F +GLIBC_2.28 f32xmulf64x F +GLIBC_2.28 f32xsubf128 F +GLIBC_2.28 f32xsubf64 F +GLIBC_2.28 f32xsubf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64divf128 F +GLIBC_2.28 f64divf64x F +GLIBC_2.28 f64mulf128 F +GLIBC_2.28 f64mulf64x F +GLIBC_2.28 f64subf128 F +GLIBC_2.28 f64subf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 f64xdivf128 F +GLIBC_2.28 f64xmulf128 F +GLIBC_2.28 f64xsubf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F +GLIBC_2.28 fdiv F +GLIBC_2.28 fdivl F +GLIBC_2.28 fmul F +GLIBC_2.28 fmull F +GLIBC_2.28 fsub F +GLIBC_2.28 fsubl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist index 6c7fc9b4fc..331449dfcb 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -80,16 +79,415 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.24 nextdown F +GLIBC_2.24 nextdownf F +GLIBC_2.24 nextdownl F +GLIBC_2.24 nextup F +GLIBC_2.24 nextupf F +GLIBC_2.24 nextupl F +GLIBC_2.25 __fe_dfl_mode D 0x8 +GLIBC_2.25 __iscanonicall F +GLIBC_2.25 __iseqsig F +GLIBC_2.25 __iseqsigf F +GLIBC_2.25 __iseqsigl F +GLIBC_2.25 canonicalize F +GLIBC_2.25 canonicalizef F +GLIBC_2.25 canonicalizel F +GLIBC_2.25 fegetmode F +GLIBC_2.25 fesetexcept F +GLIBC_2.25 fesetmode F +GLIBC_2.25 fetestexceptflag F +GLIBC_2.25 fmaxmag F +GLIBC_2.25 fmaxmagf F +GLIBC_2.25 fmaxmagl F +GLIBC_2.25 fminmag F +GLIBC_2.25 fminmagf F +GLIBC_2.25 fminmagl F +GLIBC_2.25 fromfp F +GLIBC_2.25 fromfpf F +GLIBC_2.25 fromfpl F +GLIBC_2.25 fromfpx F +GLIBC_2.25 fromfpxf F +GLIBC_2.25 fromfpxl F +GLIBC_2.25 getpayload F +GLIBC_2.25 getpayloadf F +GLIBC_2.25 getpayloadl F +GLIBC_2.25 llogb F +GLIBC_2.25 llogbf F +GLIBC_2.25 llogbl F +GLIBC_2.25 roundeven F +GLIBC_2.25 roundevenf F +GLIBC_2.25 roundevenl F +GLIBC_2.25 setpayload F +GLIBC_2.25 setpayloadf F +GLIBC_2.25 setpayloadl F +GLIBC_2.25 setpayloadsig F +GLIBC_2.25 setpayloadsigf F +GLIBC_2.25 setpayloadsigl F +GLIBC_2.25 totalorder F +GLIBC_2.25 totalorderf F +GLIBC_2.25 totalorderl F +GLIBC_2.25 totalordermag F +GLIBC_2.25 totalordermagf F +GLIBC_2.25 totalordermagl F +GLIBC_2.25 ufromfp F +GLIBC_2.25 ufromfpf F +GLIBC_2.25 ufromfpl F +GLIBC_2.25 ufromfpx F +GLIBC_2.25 ufromfpxf F +GLIBC_2.25 ufromfpxl F +GLIBC_2.27 acosf32 F +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F +GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F +GLIBC_2.27 expf F +GLIBC_2.27 expf32 F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F +GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F +GLIBC_2.27 logf F +GLIBC_2.27 logf32 F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F +GLIBC_2.27 powf F +GLIBC_2.27 powf32 F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 __nldbl_ddivl F +GLIBC_2.28 __nldbl_dmull F +GLIBC_2.28 __nldbl_dsubl F +GLIBC_2.28 daddl F +GLIBC_2.28 ddivl F +GLIBC_2.28 dmull F +GLIBC_2.28 dsubl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32divf32x F +GLIBC_2.28 f32divf64 F +GLIBC_2.28 f32mulf32x F +GLIBC_2.28 f32mulf64 F +GLIBC_2.28 f32subf32x F +GLIBC_2.28 f32subf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xdivf64 F +GLIBC_2.28 f32xmulf64 F +GLIBC_2.28 f32xsubf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F +GLIBC_2.28 fdiv F +GLIBC_2.28 fdivl F +GLIBC_2.28 fmul F +GLIBC_2.28 fmull F +GLIBC_2.28 fsub F +GLIBC_2.28 fsubl F GLIBC_2.3 _LIB_VERSION D 0x4 GLIBC_2.3 __clog10 F GLIBC_2.3 __clog10f F @@ -405,7 +803,6 @@ GLIBC_2.3 y1l F GLIBC_2.3 yn F GLIBC_2.3 ynf F GLIBC_2.3 ynl F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist index 63d47aef79..eae8dbe341 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __free_fdresult F GLIBC_2.17 __nis_default_access F GLIBC_2.17 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist index 23ef56053e..4318dc30ce 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __free_fdresult F GLIBC_2.3 __nis_default_access F GLIBC_2.3 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist index 0cf30ee02f..9a9e4cee85 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 _IO_flockfile F GLIBC_2.17 _IO_ftrylockfile F GLIBC_2.17 _IO_funlockfile F @@ -221,6 +220,26 @@ GLIBC_2.17 vfork F GLIBC_2.17 wait F GLIBC_2.17 waitpid F GLIBC_2.17 write F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist index 464b91a61d..8300958d47 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist @@ -1,15 +1,32 @@ -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3 _IO_flockfile F GLIBC_2.3 _IO_ftrylockfile F GLIBC_2.3 _IO_funlockfile F @@ -201,14 +218,12 @@ GLIBC_2.3 vfork F GLIBC_2.3 wait F GLIBC_2.3 waitpid F GLIBC_2.3 write F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -224,7 +239,6 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 longjmp F GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F @@ -232,7 +246,6 @@ GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F GLIBC_2.3.4 siglongjmp F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F @@ -242,6 +255,5 @@ GLIBC_2.4 pthread_mutexattr_getrobust_np F GLIBC_2.4 pthread_mutexattr_setprioceiling F GLIBC_2.4 pthread_mutexattr_setprotocol F GLIBC_2.4 pthread_mutexattr_setrobust_np F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 pthread_attr_setstack F GLIBC_2.6 pthread_attr_setstacksize F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist index cf278eedb3..f7fdd26bd1 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __b64_ntop F GLIBC_2.17 __b64_pton F GLIBC_2.17 __dn_comp F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist index 95def8eb0f..15f30deb34 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __b64_ntop F GLIBC_2.3 __b64_pton F GLIBC_2.3 __dn_comp F @@ -63,9 +62,7 @@ GLIBC_2.3 res_gethostbyname F GLIBC_2.3 res_gethostbyname2 F GLIBC_2.3 res_send_setqhook F GLIBC_2.3 res_send_setrhook F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist index 523d22249a..5e81c82a25 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __mq_open_2 F GLIBC_2.17 aio_cancel F GLIBC_2.17 aio_cancel64 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist index e5b41488a2..e76b7eb495 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 aio_cancel F GLIBC_2.3 aio_cancel64 F GLIBC_2.3 aio_error F @@ -28,13 +27,11 @@ GLIBC_2.3 timer_delete F GLIBC_2.3 timer_getoverrun F GLIBC_2.3 timer_gettime F GLIBC_2.3 timer_settime F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 timer_create F GLIBC_2.3.3 timer_delete F GLIBC_2.3.3 timer_getoverrun F GLIBC_2.3.3 timer_gettime F GLIBC_2.3.3 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -45,8 +42,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist index 3e382bf79d..3b84229ebc 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 td_init F GLIBC_2.17 td_log F GLIBC_2.17 td_symbol_list F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist index cd466b942b..cffc70d2fa 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_init F GLIBC_2.3 td_log F GLIBC_2.3 td_symbol_list F @@ -38,5 +37,4 @@ GLIBC_2.3 td_thr_sigsetmask F GLIBC_2.3 td_thr_tls_get_addr F GLIBC_2.3 td_thr_tsd F GLIBC_2.3 td_thr_validate F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist index 9c075bc0bd..99889de22e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 forkpty F GLIBC_2.17 login F GLIBC_2.17 login_tty F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist index 812701762c..9cf1da7aa4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 forkpty F GLIBC_2.3 login F GLIBC_2.3 login_tty F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data b/sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data index 49d5de6019..c1209336d2 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data @@ -4,11 +4,14 @@ libc.so: malloc libc.so: memalign libc.so: realloc libm.so: matherr -# The dynamic loader uses __libc_memalign internally to allocate aligned -# TLS storage. The other malloc family of functions are expected to -# allow user symbol interposition. -ld.so: __libc_memalign +# The main malloc is interposed into the dynamic linker, for +# allocations after the initial link (when dlopen is used). ld.so: malloc ld.so: calloc ld.so: realloc ld.so: free +# The TLS-enabled version of these functions is interposed from libc.so. +ld.so: _dl_signal_error +ld.so: _dl_catch_error +ld.so: _dl_signal_exception +ld.so: _dl_catch_exception diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S index 9bd0b0032c..4febd49646 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S @@ -1,5 +1,5 @@ /* Create new context. - 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 @@ -23,20 +23,20 @@ #include "ucontext_i.h" #include <asm/errno.h> -ENTRY(__makecontext) +ENTRY (__makecontext) CALL_MCOUNT 3 /* Save parameters into the parameter save area of callers frame. */ - std r3,FRAME_PARM1_SAVE(r1) /* ucontext_t *ucp */ - std r4,FRAME_PARM2_SAVE(r1) /* void (*func)(void) */ - std r5,FRAME_PARM3_SAVE(r1) /* int argc */ - std r6,FRAME_PARM4_SAVE(r1) /* ... */ - std r7,FRAME_PARM5_SAVE(r1) - std r8,FRAME_PARM6_SAVE(r1) - std r9,FRAME_PARM7_SAVE(r1) - std r10,FRAME_PARM8_SAVE(r1) + std r3,FRAME_PARM_SAVE+0(r1) /* ucontext_t *ucp */ + std r4,FRAME_PARM_SAVE+8(r1) /* void (*func)(void) */ + std r5,FRAME_PARM_SAVE+16(r1) /* int argc */ + std r6,FRAME_PARM_SAVE+24(r1) /* ... */ + std r7,FRAME_PARM_SAVE+32(r1) + std r8,FRAME_PARM_SAVE+40(r1) + std r9,FRAME_PARM_SAVE+48(r1) + std r10,FRAME_PARM_SAVE+56(r1) mflr r0 /* Get the address of the target functions first parameter. */ - addi r6,r1,FRAME_PARM4_SAVE + addi r6,r1,FRAME_PARM_SAVE+24 std r0,FRAME_LR_SAVE(r1) cfi_offset (lr, FRAME_LR_SAVE) stdu r1,-128(r1) @@ -55,7 +55,7 @@ ENTRY(__makecontext) clrrdi r7,r7,4 li r0,0 stdu r0,-64(r7) - std r3,FRAME_PARM1_SAVE(r7) /* Store context in dummy parm1. */ + std r3,FRAME_PARM_SAVE(r7) /* Store context in dummy parm1. */ mflr r0 std r2,FRAME_TOC_SAVE(r7) /* Store the TOC pointer for later. */ std r0,FRAME_LR_SAVE(r7) @@ -102,7 +102,7 @@ L(parmloop2): addi r0,r5,-8 ble cr1,L(noparms) mtctr r0 - addi r9,r8,FRAME_PARM9_SAVE-8 + addi r9,r8,FRAME_PARM_SAVE+64-8 L(parmloop): ldu r0,8(r7) stdu r0,8(r9) @@ -148,7 +148,7 @@ L(noparms): L(exitcode): /* Recover the ucontext and TOC from the dummy frame. */ ld r1,FRAME_BACKCHAIN(r1) /* Unstack the parameter save area frame. */ - ld r3,FRAME_PARM1_SAVE(r1) + ld r3,FRAME_PARM_SAVE(r1) ld r2,FRAME_TOC_SAVE(r1) ld r3,UCONTEXT_LINK(r3) /* Load the resume context. */ cmpdi r3,0 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S index 688a79b5b9..c95e3a14db 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S @@ -1,5 +1,5 @@ /* Switch to context. - 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/unix/sysv/linux/powerpc/powerpc64/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S index a166dcc53f..50f7233080 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S @@ -1,5 +1,5 @@ /* Save current context and install the given one. - 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 @@ -163,6 +163,7 @@ ENTRY(__novec_swapcontext) cmpdi r0,0 bne L(nv_do_sigret) + ld r8,.LC__dl_hwcap@toc(r2) # ifdef SHARED /* Load _rtld-global._dl_hwcap. */ ld r8,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r8) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list b/sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list deleted file mode 100644 index 6ba6f9b1e9..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list +++ /dev/null @@ -1,3 +0,0 @@ -# File name Caller Syscall name # args Strong name Weak names - -getrlimit - ugetrlimit i:ip __getrlimit getrlimit getrlimit64 __getrlimit64 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h deleted file mode 100644 index 59d7d9ed6c..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h +++ /dev/null @@ -1,147 +0,0 @@ -/* Cancellable system call stubs. Linux/PowerPC64 version. - Copyright (C) 2003-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Franz Sirl <Franz.Sirl-kernel@lauterbach.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/>. */ - -#include <sysdep.h> -#include <tls.h> -#ifndef __ASSEMBLER__ -# include <nptl/pthreadP.h> -#endif - -#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt) - -# define DASHDASHPFX(str) __##str - -#if _CALL_ELF == 2 -#define CANCEL_FRAMESIZE (FRAME_MIN_SIZE+16+48) -#define CANCEL_PARM_SAVE (FRAME_MIN_SIZE+16) -#else -#define CANCEL_FRAMESIZE (FRAME_MIN_SIZE+16) -#define CANCEL_PARM_SAVE (CANCEL_FRAMESIZE+FRAME_PARM_SAVE) -#endif - -# undef PSEUDO -# define PSEUDO(name, syscall_name, args) \ - .section ".text"; \ - ENTRY (name) \ - SINGLE_THREAD_P; \ - bne- .Lpseudo_cancel; \ - .type DASHDASHPFX(syscall_name##_nocancel),@function; \ - .globl DASHDASHPFX(syscall_name##_nocancel); \ - DASHDASHPFX(syscall_name##_nocancel): \ - DO_CALL (SYS_ify (syscall_name)); \ - PSEUDO_RET; \ - .size DASHDASHPFX(syscall_name##_nocancel),.-DASHDASHPFX(syscall_name##_nocancel); \ - .Lpseudo_cancel: \ - stdu 1,-CANCEL_FRAMESIZE(1); \ - cfi_adjust_cfa_offset (CANCEL_FRAMESIZE); \ - mflr 9; \ - std 9,CANCEL_FRAMESIZE+FRAME_LR_SAVE(1); \ - cfi_offset (lr, FRAME_LR_SAVE); \ - DOCARGS_##args; /* save syscall args around CENABLE. */ \ - CENABLE; \ - std 3,FRAME_MIN_SIZE(1); /* store CENABLE return value (MASK). */ \ - UNDOCARGS_##args; /* restore syscall args. */ \ - DO_CALL (SYS_ify (syscall_name)); \ - mfcr 0; /* save CR/R3 around CDISABLE. */ \ - std 3,FRAME_MIN_SIZE+8(1); \ - std 0,CANCEL_FRAMESIZE+FRAME_CR_SAVE(1); \ - cfi_offset (cr, FRAME_CR_SAVE); \ - ld 3,FRAME_MIN_SIZE(1); /* pass MASK to CDISABLE. */ \ - CDISABLE; \ - ld 9,CANCEL_FRAMESIZE+FRAME_LR_SAVE(1); \ - ld 0,CANCEL_FRAMESIZE+FRAME_CR_SAVE(1); /* restore CR/R3. */ \ - ld 3,FRAME_MIN_SIZE+8(1); \ - mtlr 9; \ - mtcr 0; \ - addi 1,1,CANCEL_FRAMESIZE; \ - cfi_adjust_cfa_offset (-CANCEL_FRAMESIZE); \ - cfi_restore (lr); \ - cfi_restore (cr) - -# define DOCARGS_0 -# define UNDOCARGS_0 - -# define DOCARGS_1 std 3,CANCEL_PARM_SAVE(1); DOCARGS_0 -# define UNDOCARGS_1 ld 3,CANCEL_PARM_SAVE(1); UNDOCARGS_0 - -# define DOCARGS_2 std 4,CANCEL_PARM_SAVE+8(1); DOCARGS_1 -# define UNDOCARGS_2 ld 4,CANCEL_PARM_SAVE+8(1); UNDOCARGS_1 - -# define DOCARGS_3 std 5,CANCEL_PARM_SAVE+16(1); DOCARGS_2 -# define UNDOCARGS_3 ld 5,CANCEL_PARM_SAVE+16(1); UNDOCARGS_2 - -# define DOCARGS_4 std 6,CANCEL_PARM_SAVE+24(1); DOCARGS_3 -# define UNDOCARGS_4 ld 6,CANCEL_PARM_SAVE+24(1); UNDOCARGS_3 - -# define DOCARGS_5 std 7,CANCEL_PARM_SAVE+32(1); DOCARGS_4 -# define UNDOCARGS_5 ld 7,CANCEL_PARM_SAVE+32(1); UNDOCARGS_4 - -# define DOCARGS_6 std 8,CANCEL_PARM_SAVE+40(1); DOCARGS_5 -# define UNDOCARGS_6 ld 8,CANCEL_PARM_SAVE+40(1); UNDOCARGS_5 - -# if IS_IN (libpthread) -# ifdef SHARED -# define CENABLE bl JUMPTARGET(__pthread_enable_asynccancel) -# define CDISABLE bl JUMPTARGET(__pthread_disable_asynccancel) -# else -# define CENABLE bl JUMPTARGET(__pthread_enable_asynccancel); nop -# define CDISABLE bl JUMPTARGET(__pthread_disable_asynccancel); nop -# endif -# elif IS_IN (libc) -# ifdef SHARED -# define CENABLE bl JUMPTARGET(__libc_enable_asynccancel) -# define CDISABLE bl JUMPTARGET(__libc_disable_asynccancel) -# else -# define CENABLE bl JUMPTARGET(__libc_enable_asynccancel); nop -# define CDISABLE bl JUMPTARGET(__libc_disable_asynccancel); nop -# endif -# elif IS_IN (librt) -# ifdef SHARED -# define CENABLE bl JUMPTARGET(__librt_enable_asynccancel) -# define CDISABLE bl JUMPTARGET(__librt_disable_asynccancel) -# else -# define CENABLE bl JUMPTARGET(__librt_enable_asynccancel); nop -# define CDISABLE bl JUMPTARGET(__librt_disable_asynccancel); nop -# endif -# else -# error Unsupported library -# endif - -# ifndef __ASSEMBLER__ -# define SINGLE_THREAD_P \ - __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ - header.multiple_threads) == 0, 1) -# else -# define SINGLE_THREAD_P \ - lwz 10,MULTIPLE_THREADS_OFFSET(13); \ - cmpwi 10,0 -# endif - -#elif !defined __ASSEMBLER__ - -# define SINGLE_THREAD_P (1) -# define NO_CANCELLATION 1 - -#endif - -#ifndef __ASSEMBLER__ -# define RTLD_SINGLE_THREAD_P \ - __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ - header.multiple_threads) == 0, 1) -#endif diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h index 91fd096ad0..0956cf04a7 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2016 Free Software Foundation, Inc. +/* Copyright (C) 1992-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 @@ -29,24 +29,6 @@ #include <errno.h> #endif -/* Some systen calls got renamed over time, but retained the same semantics. - Handle them here so they can be catched by both C and assembler stubs in - glibc. */ - -#ifdef __NR_pread64 -# ifdef __NR_pread -# error "__NR_pread and __NR_pread64 both defined???" -# endif -# define __NR_pread __NR_pread64 -#endif - -#ifdef __NR_pwrite64 -# ifdef __NR_pwrite -# error "__NR_pwrite and __NR_pwrite64 both defined???" -# endif -# define __NR_pwrite __NR_pwrite64 -#endif - /* For Linux we can use the system call table in the header file /usr/include/asm/unistd.h of the kernel. But these symbols do not follow the SYS_* syntax @@ -254,4 +236,13 @@ # endif #endif +/* In the PowerPC64 ABI, the unadorned F_GETLK* opcodes should be used + even by largefile64 code. */ +#define FCNTL_ADJUST_CMD(__cmd) \ + ({ int cmd_ = (__cmd); \ + if (cmd_ >= F_GETLK64 && cmd_ <= F_SETLKW64) \ + cmd_ -= F_GETLK64 - F_GETLK; \ + cmd_; }) + + #endif /* linux/powerpc/powerpc64/sysdep.h */ diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c deleted file mode 100644 index e10b40f96c..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/x86_64/umount.c> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S index 3083ab7b3c..5b8ace464e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S @@ -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 @@ -28,31 +28,8 @@ ENTRY (__vfork) CALL_MCOUNT 0 - /* Load the TCB-cached PID value and negates it. If It it is zero - sets it to 0x800000. And then sets its value again on TCB field. - See raise.c for the logic that relies on this value. */ - lwz r0,PID(r13) - cmpwi cr0,r0,0 - neg r0,r0 - bne- cr0,1f - lis r0,0x8000 -1: stw r0,PID(r13) - DO_CALL (SYS_ify (vfork)) - cmpwi cr1,r3,0 - beqlr- 1 - - /* Restore the original value of the TCB cache of the PID, if we're - the parent. But in the child (syscall return value equals zero), - leave things as they are. */ - lwz r0,PID(r13) - clrlwi r4,r0,1 - cmpwi cr1,r4,0 - beq- cr1,1f - neg r4,r0 -1: stw r4,PID(r13) - PSEUDO_RET PSEUDO_END (__vfork) diff --git a/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c b/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c index 3e9a5c84d7..5b3546143b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c +++ b/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c @@ -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/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c index 249a0aadc4..fef27a0a07 100644 --- a/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c +++ b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c @@ -1,4 +1,4 @@ -/* 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/unix/sysv/linux/powerpc/pthread_mutex_lock.c b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c index 54807d605c..d2a6c58d47 100644 --- a/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c +++ b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c @@ -1,5 +1,5 @@ /* Elided version of pthread_mutex_lock. - 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/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c index aa605e3de8..8cca3a27fa 100644 --- a/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c +++ b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c @@ -1,5 +1,5 @@ /* Elided version of pthread_mutex_timedlock. - 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/unix/sysv/linux/powerpc/pthread_mutex_trylock.c b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c index 3854786a07..14520927a6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c +++ b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c @@ -1,5 +1,5 @@ /* Elided version of pthread_mutex_trylock. - 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/unix/sysv/linux/powerpc/readdir64.c b/sysdeps/unix/sysv/linux/powerpc/readdir64.c deleted file mode 100644 index 2ea26dd409..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/readdir64.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/readdir64.c> diff --git a/sysdeps/unix/sysv/linux/powerpc/readdir64_r.c b/sysdeps/unix/sysv/linux/powerpc/readdir64_r.c deleted file mode 100644 index 9f54f897e3..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/readdir64_r.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/readdir64_r.c> diff --git a/sysdeps/unix/sysv/linux/powerpc/readelflib.c b/sysdeps/unix/sysv/linux/powerpc/readelflib.c index 0d1d1ddff0..1463bfc81b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/readelflib.c +++ b/sysdeps/unix/sysv/linux/powerpc/readelflib.c @@ -1,5 +1,5 @@ /* Special checks on libraries for ldconfig. Linux/PowerPC 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/unix/sysv/linux/powerpc/sigcontextinfo.h b/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h index 26df3b3539..0b682c75ef 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2016 Free Software Foundation, Inc. +/* Copyright (C) 1998-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 @@ -18,9 +18,4 @@ #include <signal.h> #define SIGCONTEXT struct sigcontext * -#define SIGCONTEXT_EXTRA_ARGS #define GET_PC(ctx) ((void *)((ctx)->regs->nip)) -#define GET_FRAME(ctx) (*(void **)((ctx)->regs->gpr[1])) -#define GET_STACK(ctx) ((void *)((ctx)->regs->gpr[1])) -#define CALL_SIGHANDLER(handler, signo, ctx) \ - (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h b/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h index aadeb9a296..d268c66ba3 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h +++ b/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2016 Free Software Foundation, Inc. +/* Copyright (C) 1996-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 @@ -83,7 +83,7 @@ struct elf_prstatus unsigned long int pr_sigpend; /* Set of pending signals. */ unsigned long int pr_sighold; /* Set of held signals. */ #if 0 - struct sigaltstack pr_altstack; /* Alternate stack info. */ + stack_t pr_altstack; /* Alternate stack info. */ struct sigaction pr_action; /* Signal action for current sig. */ #endif __pid_t pr_pid; diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h index b9ddee076d..9fde99c748 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h +++ b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h @@ -1,5 +1,5 @@ -/* `ptrace' debugger support interface. Linux version. - Copyright (C) 2001-2016 Free Software Foundation, Inc. +/* `ptrace' debugger support interface. Linux/PowerPC version. + 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 @@ -24,6 +24,50 @@ __BEGIN_DECLS +#if defined _LINUX_PTRACE_H || defined _ASM_POWERPC_PTRACE_H +/* Do not let Linux headers macros interfere with enum __ptrace_request. */ +# undef PTRACE_ATTACH +# undef PTRACE_CONT +# undef PTRACE_DETACH +# undef PTRACE_GET_DEBUGREG +# undef PTRACE_GETEVENTMSG +# undef PTRACE_GETEVRREGS +# undef PTRACE_GETFPREGS +# undef PTRACE_GETREGS +# undef PTRACE_GETREGS64 +# undef PTRACE_GETREGSET +# undef PTRACE_GETSIGINFO +# undef PTRACE_GETSIGMASK +# undef PTRACE_GETVRREGS +# undef PTRACE_GETVSRREGS +# undef PTRACE_INTERRUPT +# undef PTRACE_KILL +# undef PTRACE_LISTEN +# undef PTRACE_PEEKDATA +# undef PTRACE_PEEKSIGINFO +# undef PTRACE_PEEKTEXT +# undef PTRACE_POKEDATA +# undef PTRACE_POKETEXT +# undef PTRACE_SECCOMP_GET_FILTER +# undef PTRACE_SECCOMP_GET_METADATA +# undef PTRACE_SEIZE +# undef PTRACE_SET_DEBUGREG +# undef PTRACE_SETEVRREGS +# undef PTRACE_SETFPREGS +# undef PTRACE_SETOPTIONS +# undef PTRACE_SETREGS +# undef PTRACE_SETREGS64 +# undef PTRACE_SETREGSET +# undef PTRACE_SETSIGINFO +# undef PTRACE_SETSIGMASK +# undef PTRACE_SETVRREGS +# undef PTRACE_SETVSRREGS +# undef PTRACE_SINGLEBLOCK +# undef PTRACE_SINGLESTEP +# undef PTRACE_SYSCALL +# undef PTRACE_TRACEME +#endif + /* Type of the REQUEST argument to `ptrace.' */ enum __ptrace_request { @@ -65,11 +109,26 @@ enum __ptrace_request PTRACE_KILL = 8, #define PT_KILL PTRACE_KILL - /* Single step the process. - This is not supported on all machines. */ + /* Single step the process. */ PTRACE_SINGLESTEP = 9, #define PT_STEP PTRACE_SINGLESTEP + /* Get all general purpose registers used by a process. */ + PTRACE_GETREGS = 12, +#define PT_GETREGS PTRACE_GETREGS + + /* Set all general purpose registers used by a process. */ + PTRACE_SETREGS = 13, +#define PT_SETREGS PTRACE_SETREGS + + /* Get all floating point registers used by a process. */ + PTRACE_GETFPREGS = 14, +#define PT_GETFPREGS PTRACE_GETFPREGS + + /* Set all floating point registers used by a process. */ + PTRACE_SETFPREGS = 15, +#define PT_SETFPREGS PTRACE_SETFPREGS + /* Attach to a process that is already running. */ PTRACE_ATTACH = 16, #define PT_ATTACH PTRACE_ATTACH @@ -78,10 +137,56 @@ enum __ptrace_request PTRACE_DETACH = 17, #define PT_DETACH PTRACE_DETACH - /* Continue and stop at the next (return from) syscall. */ + /* Get all altivec registers used by a process. */ + PTRACE_GETVRREGS = 18, +#define PT_GETVRREGS PTRACE_GETVRREGS + + /* Set all altivec registers used by a process. */ + PTRACE_SETVRREGS = 19, +#define PT_SETVRREGS PTRACE_SETVRREGS + + /* Get all SPE registers used by a process. */ + PTRACE_GETEVRREGS = 20, +#define PT_GETEVRREGS PTRACE_GETEVRREGS + + /* Set all SPE registers used by a process. */ + PTRACE_SETEVRREGS = 21, +#define PT_SETEVRREGS PTRACE_SETEVRREGS + + /* Same as PTRACE_GETREGS except a 32-bit process will obtain + the full 64-bit registers. Implemented by 64-bit kernels only. */ + PTRACE_GETREGS64 = 22, +#define PT_GETREGS64 PTRACE_GETREGS64 + + /* Same as PTRACE_SETREGS except a 32-bit process will set + the full 64-bit registers. Implemented by 64-bit kernels only. */ + PTRACE_SETREGS64 = 23, +#define PT_SETREGS64 PTRACE_SETREGS64 + + /* Continue and stop at the next entry to or return from syscall. */ PTRACE_SYSCALL = 24, #define PT_SYSCALL PTRACE_SYSCALL + /* Get a debug register of a process. */ + PTRACE_GET_DEBUGREG = 25, +#define PT_GET_DEBUGREG PTRACE_GET_DEBUGREG + + /* Set a debug register of a process. */ + PTRACE_SET_DEBUGREG = 26, +#define PT_SET_DEBUGREG PTRACE_SET_DEBUGREG + + /* Get the first 32 VSX registers of a process. */ + PTRACE_GETVSRREGS = 27, +#define PT_GETVSRREGS PTRACE_GETVSRREGS + + /* Set the first 32 VSX registers of a process. */ + PTRACE_SETVSRREGS = 28, +#define PT_SETVSRREGS PTRACE_SETVSRREGS + + /* Execute process until next taken branch. */ + PTRACE_SINGLEBLOCK = 256, +#define PT_STEPBLOCK PTRACE_SINGLEBLOCK + /* Set ptrace filter options. */ PTRACE_SETOPTIONS = 0x4200, #define PT_SETOPTIONS PTRACE_SETOPTIONS @@ -119,78 +224,29 @@ enum __ptrace_request PTRACE_LISTEN = 0x4208, #define PTRACE_LISTEN PTRACE_LISTEN + /* Retrieve siginfo_t structures without removing signals from a queue. */ PTRACE_PEEKSIGINFO = 0x4209, #define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO + /* Get the mask of blocked signals. */ PTRACE_GETSIGMASK = 0x420a, #define PTRACE_GETSIGMASK PTRACE_GETSIGMASK + /* Change the mask of blocked signals. */ PTRACE_SETSIGMASK = 0x420b, #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK - PTRACE_SECCOMP_GET_FILTER = 0x420c + /* Get seccomp BPF filters. */ + PTRACE_SECCOMP_GET_FILTER = 0x420c, #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER -}; - - -/* Flag for PTRACE_LISTEN. */ -enum __ptrace_flags -{ - PTRACE_SEIZE_DEVEL = 0x80000000 -}; - -/* Options set using PTRACE_SETOPTIONS. */ -enum __ptrace_setoptions -{ - PTRACE_O_TRACESYSGOOD = 0x00000001, - PTRACE_O_TRACEFORK = 0x00000002, - PTRACE_O_TRACEVFORK = 0x00000004, - PTRACE_O_TRACECLONE = 0x00000008, - PTRACE_O_TRACEEXEC = 0x00000010, - PTRACE_O_TRACEVFORKDONE = 0x00000020, - PTRACE_O_TRACEEXIT = 0x00000040, - PTRACE_O_TRACESECCOMP = 0x00000080, - PTRACE_O_EXITKILL = 0x00100000, - PTRACE_O_SUSPEND_SECCOMP = 0x00200000, - PTRACE_O_MASK = 0x003000ff -}; -/* Wait extended result codes for the above trace options. */ -enum __ptrace_eventcodes -{ - PTRACE_EVENT_FORK = 1, - PTRACE_EVENT_VFORK = 2, - PTRACE_EVENT_CLONE = 3, - PTRACE_EVENT_EXEC = 4, - PTRACE_EVENT_VFORK_DONE = 5, - PTRACE_EVENT_EXIT = 6, - PTRACE_EVENT_SECCOMP = 7 -}; - -/* Arguments for PTRACE_PEEKSIGINFO. */ -struct __ptrace_peeksiginfo_args -{ - __uint64_t off; /* From which siginfo to start. */ - __uint32_t flags; /* Flags for peeksiginfo. */ - __int32_t nr; /* How many siginfos to take. */ -}; - -enum __ptrace_peeksiginfo_flags -{ - /* Read signals from a shared (process wide) queue. */ - PTRACE_PEEKSIGINFO_SHARED = (1 << 0) + /* Get seccomp BPF filter metadata. */ + PTRACE_SECCOMP_GET_METADATA = 0x420d +#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA }; -/* Perform process tracing functions. REQUEST is one of the values - above, and determines the action to be taken. - For all requests except PTRACE_TRACEME, PID specifies the process to be - traced. - PID and the other arguments described above for the various requests should - appear (those that are used for the particular request) as: - pid_t PID, void *ADDR, int DATA, void *ADDR2 - after REQUEST. */ -extern long int ptrace (enum __ptrace_request __request, ...) __THROW; +#include <bits/ptrace-shared.h> __END_DECLS diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h index 04100a2023..1bb6e4c8a6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2016 Free Software Foundation, Inc. +/* Copyright (C) 1998-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 @@ -19,25 +19,35 @@ #define _SYS_UCONTEXT_H 1 #include <features.h> -#include <signal.h> -/* We need the signal context definitions even if they are not used - included in <signal.h>. */ -#include <bits/sigcontext.h> +#include <bits/types/sigset_t.h> +#include <bits/types/stack_t.h> + + +#ifdef __USE_MISC +# define __ctx(fld) fld +#else +# define __ctx(fld) __ ## fld +#endif + +struct __ctx(pt_regs); #if __WORDSIZE == 32 /* Number of general registers. */ -# define NGREG 48 +# define __NGREG 48 +# ifdef __USE_MISC +# define NGREG __NGREG +# endif /* Container for all general registers. */ -typedef unsigned long gregset_t[NGREG]; +typedef unsigned long gregset_t[__NGREG]; /* Container for floating-point registers and status */ typedef struct _libc_fpstate { - double fpregs[32]; - double fpscr; + double __ctx(fpregs)[32]; + double __ctx(fpscr); unsigned int _pad[2]; } fpregset_t; @@ -45,18 +55,18 @@ typedef struct _libc_fpstate Needs to be aligned on a 16-byte boundary. */ typedef struct _libc_vrstate { - unsigned int vrregs[32][4]; - unsigned int vrsave; + unsigned int __ctx(vrregs)[32][4]; + unsigned int __ctx(vrsave); unsigned int _pad[2]; - unsigned int vscr; + unsigned int __ctx(vscr); } vrregset_t; /* Context to describe whole processor state. */ typedef struct { - gregset_t gregs; - fpregset_t fpregs; - vrregset_t vrregs __attribute__((__aligned__(16))); + gregset_t __ctx(gregs); + fpregset_t __ctx(fpregs); + vrregset_t __ctx(vrregs) __attribute__((__aligned__(16))); } mcontext_t; #else @@ -64,18 +74,24 @@ typedef struct /* For 64-bit kernels with Altivec support, a machine context is exactly * a sigcontext. For older kernel (without Altivec) the sigcontext matches * the mcontext upto but not including the v_regs field. For kernels that - * don't AT_HWCAP or return AT_HWCAP without PPC_FEATURE_HAS_ALTIVEC the - * v_regs field may not exit and should not be referenced. The v_regd field + * don't set AT_HWCAP or return AT_HWCAP without PPC_FEATURE_HAS_ALTIVEC the + * v_regs field may not exist and should not be referenced. The v_regd field * can be refernced safely only after verifying that PPC_FEATURE_HAS_ALTIVEC * is set in AT_HWCAP. */ /* Number of general registers. */ -# define NGREG 48 /* includes r0-r31, nip, msr, lr, etc. */ -# define NFPREG 33 /* includes fp0-fp31 &fpscr. */ -# define NVRREG 34 /* includes v0-v31, vscr, & vrsave in split vectors */ - -typedef unsigned long gregset_t[NGREG]; -typedef double fpregset_t[NFPREG]; +# define __NGREG 48 /* includes r0-r31, nip, msr, lr, etc. */ +# define __NFPREG 33 /* includes fp0-fp31 &fpscr. */ +# define __NVRREG 34 /* includes v0-v31, vscr, & vrsave in + split vectors */ +# ifdef __USE_MISC +# define NGREG __NGREG +# define NFPREG __NFPREG +# define NVRREG __NVRREG +# endif + +typedef unsigned long gregset_t[__NGREG]; +typedef double fpregset_t[__NFPREG]; /* Container for Altivec/VMX Vector Status and Control Register. Only 32-bits but can only be copied to/from a 128-bit vector register. So we allocated @@ -83,28 +99,28 @@ typedef double fpregset_t[NFPREG]; typedef struct _libc_vscr { unsigned int __pad[3]; - unsigned int vscr_word; + unsigned int __ctx(vscr_word); } vscr_t; /* Container for Altivec/VMX registers and status. Must to be aligned on a 16-byte boundary. */ typedef struct _libc_vrstate { - unsigned int vrregs[32][4]; - vscr_t vscr; - unsigned int vrsave; + unsigned int __ctx(vrregs)[32][4]; + vscr_t __ctx(vscr); + unsigned int __ctx(vrsave); unsigned int __pad[3]; } vrregset_t __attribute__((__aligned__(16))); typedef struct { unsigned long __glibc_reserved[4]; - int signal; + int __ctx(signal); int __pad0; - unsigned long handler; - unsigned long oldmask; - struct pt_regs *regs; - gregset_t gp_regs; - fpregset_t fp_regs; + unsigned long __ctx(handler); + unsigned long __ctx(oldmask); + struct __ctx(pt_regs) *__ctx(regs); + gregset_t __ctx(gp_regs); + fpregset_t __ctx(fp_regs); /* * To maintain compatibility with current implementations the sigcontext is * extended by appending a pointer (v_regs) to a quadword type (elf_vrreg_t) @@ -124,17 +140,17 @@ typedef struct { * The entry with index 33 contains the vrsave as the first word (offset 0) * within the quadword. */ - vrregset_t *v_regs; - long vmx_reserve[NVRREG+NVRREG+1]; + vrregset_t *__ctx(v_regs); + long __ctx(vmx_reserve)[__NVRREG+__NVRREG+1]; } mcontext_t; #endif /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { - unsigned long int uc_flags; - struct ucontext *uc_link; + unsigned long int __ctx(uc_flags); + struct ucontext_t *uc_link; stack_t uc_stack; #if __WORDSIZE == 32 /* @@ -160,17 +176,20 @@ typedef struct ucontext * old ucontext_t; it ensures that uc_mcontext.regs and uc_sigmask * are at the same offset as previously. */ - int uc_pad[7]; - union uc_regs_ptr { - struct pt_regs *regs; - mcontext_t *uc_regs; + int __glibc_reserved1[7]; + union __ctx(uc_regs_ptr) { + struct __ctx(pt_regs) *__ctx(regs); + mcontext_t *__ctx(uc_regs); } uc_mcontext; sigset_t uc_sigmask; - char uc_reg_space[sizeof(mcontext_t) + 12]; /* last for extensibility */ + /* last for extensibility */ + char __ctx(uc_reg_space)[sizeof(mcontext_t) + 12]; #else /* 64-bit */ sigset_t uc_sigmask; mcontext_t uc_mcontext; /* last for extensibility */ #endif } ucontext_t; +#undef __ctx + #endif /* sys/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/user.h b/sysdeps/unix/sysv/linux/powerpc/sys/user.h index 97459fba80..a7bb39b9e5 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sys/user.h +++ b/sysdeps/unix/sysv/linux/powerpc/sys/user.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2016 Free Software Foundation, Inc. +/* Copyright (C) 1998-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 @@ -18,6 +18,7 @@ #ifndef _SYS_USER_H #define _SYS_USER_H 1 +#include <stddef.h> #include <features.h> #include <asm/ptrace.h> diff --git a/sysdeps/unix/sysv/linux/powerpc/syscall.S b/sysdeps/unix/sysv/linux/powerpc/syscall.S index 17bc21543b..2da91721be 100644 --- a/sysdeps/unix/sysv/linux/powerpc/syscall.S +++ b/sysdeps/unix/sysv/linux/powerpc/syscall.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2016 Free Software Foundation, Inc. +/* Copyright (C) 1991-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/unix/sysv/linux/powerpc/syscalls.list b/sysdeps/unix/sysv/linux/powerpc/syscalls.list deleted file mode 100644 index 4f821e9b01..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/syscalls.list +++ /dev/null @@ -1,3 +0,0 @@ -# File name Caller Syscall name # args Strong name Weak names - -waitpid - waitpid Ci:ipi __waitpid waitpid diff --git a/sysdeps/unix/sysv/linux/powerpc/sysconf.c b/sysdeps/unix/sysv/linux/powerpc/sysconf.c new file mode 100644 index 0000000000..43f308be0e --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/sysconf.c @@ -0,0 +1,75 @@ +/* Get system-specific information at run-time. Linux/powerpc 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/>. */ + +#include <errno.h> +#include <unistd.h> +#include <sys/auxv.h> + +static long linux_sysconf (int name); + +static inline long +auxv2sysconf_cache_associativity (unsigned long type) +{ + return (__getauxval (type) & 0xffff0000) >> 16; +} + +static inline long +auxv2sysconf_cache_linesize (unsigned long type) +{ + return __getauxval (type) & 0xffff; +} + +/* Get the value of the system variable NAME. */ +long int +__sysconf (int name) +{ + switch (name) + { + case _SC_LEVEL1_ICACHE_SIZE: + return __getauxval (AT_L1I_CACHESIZE); + case _SC_LEVEL1_ICACHE_ASSOC: + return auxv2sysconf_cache_associativity (AT_L1I_CACHEGEOMETRY); + case _SC_LEVEL1_ICACHE_LINESIZE: + return auxv2sysconf_cache_linesize (AT_L1I_CACHEGEOMETRY); + case _SC_LEVEL1_DCACHE_SIZE: + return __getauxval (AT_L1D_CACHESIZE); + case _SC_LEVEL1_DCACHE_ASSOC: + return auxv2sysconf_cache_associativity (AT_L1D_CACHEGEOMETRY); + case _SC_LEVEL1_DCACHE_LINESIZE: + return auxv2sysconf_cache_linesize (AT_L1D_CACHEGEOMETRY); + case _SC_LEVEL2_CACHE_SIZE: + return __getauxval (AT_L2_CACHESIZE); + case _SC_LEVEL2_CACHE_ASSOC: + return auxv2sysconf_cache_associativity (AT_L2_CACHEGEOMETRY); + case _SC_LEVEL2_CACHE_LINESIZE: + return auxv2sysconf_cache_linesize (AT_L2_CACHEGEOMETRY); + case _SC_LEVEL3_CACHE_SIZE: + return __getauxval (AT_L3_CACHESIZE); + case _SC_LEVEL3_CACHE_ASSOC: + return auxv2sysconf_cache_associativity (AT_L3_CACHEGEOMETRY); + case _SC_LEVEL3_CACHE_LINESIZE: + return auxv2sysconf_cache_linesize (AT_L3_CACHEGEOMETRY); + default: + return linux_sysconf (name); + } +} + +/* Now the generic Linux version. */ +#undef __sysconf +#define __sysconf static linux_sysconf +#include "../sysconf.c" diff --git a/sysdeps/unix/sysv/linux/powerpc/sysdep.c b/sysdeps/unix/sysv/linux/powerpc/sysdep.c index 9744138f73..1eacc13185 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sysdep.c +++ b/sysdeps/unix/sysv/linux/powerpc/sysdep.c @@ -1,4 +1,4 @@ -/* 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. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c index cb3d1fef0a..b17b4c00e5 100644 --- a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c +++ b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c @@ -1,5 +1,5 @@ /* Check __ppc_get_timebase_freq() for architecture changes - 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/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c b/sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c new file mode 100644 index 0000000000..6fa77037d2 --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c @@ -0,0 +1,73 @@ +/* Check use of sysconf() for cache geometries. + 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/>. */ + +/* Test use of sysconf() to get cache sizes, cache set associativity + and cache line sizes. */ + +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> + +#include <support/test-driver.h> + +#define call_str(f, name) f(name, #name) + +long +do_sysconf (int name, const char * str) +{ + int rc = 0; + long val; + errno = 0; + val = sysconf (name); + if (val == -1) { + if (errno != EINVAL) { + printf("error: sysconf(%s): unexpected errno(%d)\n", str, errno); + exit (1); + } + printf ("info: sysconf(%s): unsupported\n", str); + rc = 1; + } else + printf ("sysconf(%s) = 0x%lx (%ld)\n", str, val, val); + return rc; +} + +static int +do_test (void) +{ + int rc = 0; + + rc += call_str (do_sysconf, _SC_LEVEL1_ICACHE_SIZE); + rc += call_str (do_sysconf, _SC_LEVEL1_ICACHE_ASSOC); + rc += call_str (do_sysconf, _SC_LEVEL1_ICACHE_LINESIZE); + rc += call_str (do_sysconf, _SC_LEVEL1_DCACHE_SIZE); + rc += call_str (do_sysconf, _SC_LEVEL1_DCACHE_ASSOC); + rc += call_str (do_sysconf, _SC_LEVEL1_DCACHE_LINESIZE); + rc += call_str (do_sysconf, _SC_LEVEL2_CACHE_SIZE); + rc += call_str (do_sysconf, _SC_LEVEL2_CACHE_ASSOC); + rc += call_str (do_sysconf, _SC_LEVEL2_CACHE_LINESIZE); + rc += call_str (do_sysconf, _SC_LEVEL3_CACHE_SIZE); + rc += call_str (do_sysconf, _SC_LEVEL3_CACHE_ASSOC); + rc += call_str (do_sysconf, _SC_LEVEL3_CACHE_LINESIZE); + + if (rc) + return EXIT_UNSUPPORTED; + return 0; +} + +#include <support/test-driver.c> diff --git a/sysdeps/unix/sysv/linux/powerpc/time.c b/sysdeps/unix/sysv/linux/powerpc/time.c index 797341944c..8814bcc14f 100644 --- a/sysdeps/unix/sysv/linux/powerpc/time.c +++ b/sysdeps/unix/sysv/linux/powerpc/time.c @@ -1,5 +1,5 @@ /* time system call for Linux/PowerPC. - Copyright (C) 2013-2016 Free Software Foundation, Inc. + Copyright (C) 2013-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 @@ -17,6 +17,11 @@ <http://www.gnu.org/licenses/>. */ #ifdef SHARED +# ifndef __powerpc64__ +# define time __redirect_time +# else +# define __redirect_time time +# endif # include <time.h> # include <sysdep.h> @@ -24,7 +29,26 @@ # include <libc-vdso.h> # include <dl-machine.h> -void *time_ifunc (void) asm ("time"); +# ifndef __powerpc64__ +# undef time + +time_t +__time_vsyscall (time_t *t) +{ + return INLINE_VSYSCALL (time, 1, t); +} + +/* __GI_time is defined as hidden and for ppc32 it enables the + compiler make a local call (symbol@local) for internal GLIBC usage. It + means the PLT won't be used and the ifunc resolver will be called directly. + For ppc64 a call to a function in another translation unit might use a + different toc pointer thus disallowing direct branchess and making internal + ifuncs calls safe. */ +# undef libc_hidden_def +# define libc_hidden_def(name) \ + __hidden_ver1 (__time_vsyscall, __GI_time, __time_vsyscall); + +# endif /* !__powerpc64__ */ static time_t time_syscall (time_t *t) @@ -42,42 +66,19 @@ time_syscall (time_t *t) return result; } -void * -time_ifunc (void) -{ - PREPARE_VERSION (linux2615, "LINUX_2.6.15", 123718565); - - /* If the vDSO is not available we fall back to the syscall. */ +# define INIT_ARCH() \ + PREPARE_VERSION (linux2615, "LINUX_2.6.15", 123718565); \ void *vdso_time = _dl_vdso_vsym ("__kernel_time", &linux2615); - return (vdso_time ? VDSO_IFUNC_RET (vdso_time) - : (void*)time_syscall); -} -asm (".type time, %gnu_indirect_function"); -/* This is doing "libc_hidden_def (time)" but the compiler won't - * let us do it in C because it doesn't know we're defining time - * here in this file. */ -asm (".globl __GI_time"); - -/* __GI_time is defined as hidden and for ppc32 it enables the - compiler make a local call (symbol@local) for internal GLIBC usage. It - means the PLT won't be used and the ifunc resolver will be called directly. - For ppc64 a call to a function in another translation unit might use a - different toc pointer thus disallowing direct branchess and making internal - ifuncs calls safe. */ -#ifdef __powerpc64__ -asm ("__GI_time = time"); -#else -time_t -__time_vsyscall (time_t *t) -{ - return INLINE_VSYSCALL (time, 1, t); -} -asm ("__GI_time = __time_vsyscall"); -#endif +/* If the vDSO is not available we fall back to the syscall. */ +libc_ifunc_hidden (__redirect_time, time, + vdso_time + ? VDSO_IFUNC_RET (vdso_time) + : (void *) time_syscall); +libc_hidden_def (time) #else #include <sysdeps/posix/time.c> -#endif +#endif /* !SHARED */ |