diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/microblaze')
44 files changed, 706 insertions, 362 deletions
diff --git a/sysdeps/unix/sysv/linux/microblaze/Makefile b/sysdeps/unix/sysv/linux/microblaze/Makefile index 44a838fa11..d178bc6f34 100644 --- a/sysdeps/unix/sysv/linux/microblaze/Makefile +++ b/sysdeps/unix/sysv/linux/microblaze/Makefile @@ -5,4 +5,5 @@ endif ifeq ($(subdir),nptl) # pull in __syscall_error routine libpthread-routines += sysdep -endif
\ No newline at end of file +libpthread-shared-only-routines += sysdep +endif diff --git a/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S b/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S index 4b10e0489d..8eb4d5ec51 100644 --- a/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S +++ b/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S @@ -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. diff --git a/sysdeps/unix/sysv/linux/microblaze/arch-fork.h b/sysdeps/unix/sysv/linux/microblaze/arch-fork.h deleted file mode 100644 index 6073a393d2..0000000000 --- a/sysdeps/unix/sysv/linux/microblaze/arch-fork.h +++ /dev/null @@ -1,27 +0,0 @@ -/* ARCH_FORK definition for Linux fork implementation. MicroBlaze version. - Copyright (C) 2014-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 <sched.h> -#include <signal.h> -#include <sysdep.h> -#include <tls.h> - -#define ARCH_FORK() \ - INLINE_SYSCALL (clone, 5, \ - CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, 0, \ - NULL, NULL, &THREAD_SELF->tid) diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h b/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h index e485846933..04bec4d550 100644 --- a/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h +++ b/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h @@ -1,5 +1,5 @@ /* O_*, F_*, FD_* bit values for Linux. - 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/microblaze/bits/mman.h b/sysdeps/unix/sysv/linux/microblaze/bits/mman.h index 6f9dc5b707..fe1b376720 100644 --- a/sysdeps/unix/sysv/linux/microblaze/bits/mman.h +++ b/sysdeps/unix/sysv/linux/microblaze/bits/mman.h @@ -1,6 +1,6 @@ /* Definitions for POSIX memory map interface. Linux/MicroBlaze 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. @@ -36,6 +36,10 @@ # 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_SYNC 0x80000 /* Perform synchronous page + faults for the mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Include generic Linux declarations. */ diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/stat.h b/sysdeps/unix/sysv/linux/microblaze/bits/stat.h index 7143f2dc92..b69e054967 100644 --- a/sysdeps/unix/sysv/linux/microblaze/bits/stat.h +++ b/sysdeps/unix/sysv/linux/microblaze/bits/stat.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. diff --git a/sysdeps/unix/sysv/linux/microblaze/brk.c b/sysdeps/unix/sysv/linux/microblaze/brk.c index 3c72471c63..25d7defe79 100644 --- a/sysdeps/unix/sysv/linux/microblaze/brk.c +++ b/sysdeps/unix/sysv/linux/microblaze/brk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2016 Free Software Foundation, Inc. +/* Copyright (C) 2011-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/unix/sysv/linux/microblaze/futimesat.c b/sysdeps/unix/sysv/linux/microblaze/clock-compat.c index 9ce61900bd..6d7ca6ab6f 100644 --- a/sysdeps/unix/sysv/linux/microblaze/futimesat.c +++ b/sysdeps/unix/sysv/linux/microblaze/clock-compat.c @@ -1,5 +1,6 @@ -/* Implement futimesat for MicroBlaze. - Copyright (C) 2014-2016 Free Software Foundation, Inc. +/* ABI compatibility redirects for clock_* symbols in librt. + MicroBlaze 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 @@ -16,15 +17,15 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -/* MicroBlaze always had the utimensat syscall but gained the - futimesat syscall later, so use the linux-generic implementation of - futimesat in terms of the utimensat syscall unless the futimesat - syscall is known to be available. */ +#include <shlib-compat.h> -#include <kernel-features.h> +/* These symbols were accidentally included in librt for MicroBlaze + despite the first release coming after the general obsoletion in + librt, so ensure they remain as part of the ABI. */ -#ifdef __ASSUME_FUTIMESAT -# include <sysdeps/unix/sysv/linux/futimesat.c> -#else -# include <sysdeps/unix/sysv/linux/generic/futimesat.c> +#ifdef SHARED +# undef SHLIB_COMPAT +# define SHLIB_COMPAT(lib, introduced, obsoleted) 1 #endif + +#include <rt/clock-compat.c> diff --git a/sysdeps/unix/sysv/linux/microblaze/clone.S b/sysdeps/unix/sysv/linux/microblaze/clone.S index 035d88b29f..ffc97ab7b3 100644 --- a/sysdeps/unix/sysv/linux/microblaze/clone.S +++ b/sysdeps/unix/sysv/linux/microblaze/clone.S @@ -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. @@ -69,4 +69,5 @@ L(thread_start): nop PSEUDO_END(__clone) +libc_hidden_def (__clone) weak_alias (__clone,clone) diff --git a/sysdeps/unix/sysv/linux/microblaze/fcntl.c b/sysdeps/unix/sysv/linux/microblaze/fcntl.c deleted file mode 100644 index ea951bc4f9..0000000000 --- a/sysdeps/unix/sysv/linux/microblaze/fcntl.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/fcntl.c> diff --git a/sysdeps/unix/sysv/linux/microblaze/getsysstats.c b/sysdeps/unix/sysv/linux/microblaze/getsysstats.c index a5fff9f31e..82c0353761 100644 --- a/sysdeps/unix/sysv/linux/microblaze/getsysstats.c +++ b/sysdeps/unix/sysv/linux/microblaze/getsysstats.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. diff --git a/sysdeps/unix/sysv/linux/microblaze/jmp_buf-macros.h b/sysdeps/unix/sysv/linux/microblaze/jmp_buf-macros.h new file mode 100644 index 0000000000..9c435f7967 --- /dev/null +++ b/sysdeps/unix/sysv/linux/microblaze/jmp_buf-macros.h @@ -0,0 +1,6 @@ +#define JMP_BUF_SIZE 216 +#define SIGJMP_BUF_SIZE 216 +#define JMP_BUF_ALIGN 4 +#define SIGJMP_BUF_ALIGN 4 +#define MASK_WAS_SAVED_OFFSET 84 +#define SAVED_MASK_OFFSET 88 diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h index d1950ef348..e8e2ac6a87 100644 --- a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h +++ b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2016 Free Software Foundation, Inc. +/* Copyright (C) 2011-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -24,55 +24,49 @@ #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 -/* Support for the accept4 and recvmmsg syscalls was added in 2.6.33. */ -#if __LINUX_KERNEL_VERSION >= 0x020621 -# define __ASSUME_ACCEPT4_SYSCALL 1 -# define __ASSUME_RECVMMSG_SYSCALL 1 +#include_next <kernel-features.h> + +/* Support for the pselect6, preadv and pwritev syscalls was added in + 3.15. */ +#if __LINUX_KERNEL_VERSION < 0x030f00 +# undef __ASSUME_PSELECT +# undef __ASSUME_PREADV +# undef __ASSUME_PWRITEV #endif -#define __ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL 1 /* Support for the sendmmsg syscall was added in 3.3. */ -#if __LINUX_KERNEL_VERSION >= 0x030300 -# define __ASSUME_SENDMMSG_SYSCALL 1 +#if __LINUX_KERNEL_VERSION < 0x030300 +# undef __ASSUME_SENDMMSG_SYSCALL #endif -/* Support for the futimesat syscall was added in 2.6.33. */ -#if __LINUX_KERNEL_VERSION >= 0x020621 -# define __ASSUME_FUTIMESAT 1 +/* Support for the renameat2 syscall was added in 3.17. */ +#if __LINUX_KERNEL_VERSION < 0x031100 +# undef __ASSUME_RENAMEAT2 #endif -#include_next <kernel-features.h> - -/* Support for futex_atomic_cmpxchg_inatomic was added in 2.6.33. */ -#if __LINUX_KERNEL_VERSION < 0x020621 -# undef __ASSUME_FUTEX_LOCK_PI -# undef __ASSUME_REQUEUE_PI -# undef __ASSUME_SET_ROBUST_LIST +/* Support for the execveat syscall was added in 4.0. */ +#if __LINUX_KERNEL_VERSION < 0x040000 +# undef __ASSUME_EXECVEAT #endif -/* The prlimit64 syscall was added for MicroBlaze in 2.6.37. */ -#if __LINUX_KERNEL_VERSION < 0x020625 -# undef __ASSUME_PRLIMIT64 +/* Support for the copy_file_range syscall was added in 4.10. */ +#if __LINUX_KERNEL_VERSION < 0x040A00 +# undef __ASSUME_COPY_FILE_RANGE #endif -/* Support for the pselect6, preadv and pwritev syscalls was added in - 3.15. */ -#if __LINUX_KERNEL_VERSION < 0x030f00 -# undef __ASSUME_PSELECT -# undef __ASSUME_PREADV -# undef __ASSUME_PWRITEV +/* Support for statx was added in kernel 4.12. */ +#if __LINUX_KERNEL_VERSION < 0X040C00 +# undef __ASSUME_STATX #endif + +#undef __ASSUME_CLONE_DEFAULT +#define __ASSUME_CLONE_BACKWARDS3 diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h b/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h index edcc15d7fa..93355ad8a3 100644 --- a/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h +++ b/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h @@ -1,5 +1,5 @@ /* Definition of `struct stat' used in the kernel - 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. @@ -47,3 +47,6 @@ struct kernel_stat #define _HAVE_STAT___UNUSED5 #define _HAVE_STAT64___UNUSED5 }; + +#define XSTAT_IS_XSTAT64 0 +#define STATFS_IS_STATFS64 0 diff --git a/sysdeps/unix/sysv/linux/microblaze/ld.abilist b/sysdeps/unix/sysv/linux/microblaze/ld.abilist index f486acb399..aa0d71150a 100644 --- a/sysdeps/unix/sysv/linux/microblaze/ld.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/ld.abilist @@ -1,5 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A -GLIBC_2.18 __libc_memalign F GLIBC_2.18 __libc_stack_end D 0x4 GLIBC_2.18 __stack_chk_guard D 0x4 GLIBC_2.18 __tls_get_addr F diff --git a/sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist index 76d989d468..bc5edf6352 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/microblaze/libanl.abilist b/sysdeps/unix/sysv/linux/microblaze/libanl.abilist index cb616b1c3e..67c7554803 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libanl.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 gai_cancel F GLIBC_2.18 gai_error F GLIBC_2.18 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 0a08bba592..daed511f00 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 _Exit F GLIBC_2.18 _IO_2_1_stderr_ D 0x98 GLIBC_2.18 _IO_2_1_stdin_ D 0x98 @@ -2079,11 +2078,55 @@ GLIBC_2.18 xdrstdio_create F GLIBC_2.18 xencrypt F GLIBC_2.18 xprt_register F GLIBC_2.18 xprt_unregister 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 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 diff --git a/sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist b/sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist index 75fa78890a..4b37b33ee5 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 crypt F GLIBC_2.18 crypt_r F GLIBC_2.18 encrypt F diff --git a/sysdeps/unix/sysv/linux/microblaze/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/libdl.abilist index 7cad5061b0..46b5716dbe 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libdl.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libdl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 dladdr F GLIBC_2.18 dladdr1 F GLIBC_2.18 dlclose F diff --git a/sysdeps/unix/sysv/linux/microblaze/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/libm.abilist index 149fd4f2be..4a2c2e669e 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 _LIB_VERSION D 0x4 GLIBC_2.18 __acos_finite F GLIBC_2.18 __acosf_finite F @@ -367,8 +366,402 @@ GLIBC_2.18 y1l F GLIBC_2.18 yn F GLIBC_2.18 ynf F GLIBC_2.18 ynl 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 __iseqsig F +GLIBC_2.25 __iseqsigf 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 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 diff --git a/sysdeps/unix/sysv/linux/microblaze/libnsl.abilist b/sysdeps/unix/sysv/linux/microblaze/libnsl.abilist index 959b74b90e..48a9e04eb8 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __free_fdresult F GLIBC_2.18 __nis_default_access F GLIBC_2.18 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist index 00d948b60a..5067375d23 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 _IO_flockfile F GLIBC_2.18 _IO_ftrylockfile F GLIBC_2.18 _IO_funlockfile F @@ -223,3 +222,24 @@ GLIBC_2.18 vfork F GLIBC_2.18 wait F GLIBC_2.18 waitpid F GLIBC_2.18 write 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/microblaze/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/libresolv.abilist index 765bc12438..b04f0397c8 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __b64_ntop F GLIBC_2.18 __b64_pton F GLIBC_2.18 __dn_comp F diff --git a/sysdeps/unix/sysv/linux/microblaze/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/librt.abilist index 9f6ecb0770..fb85d8729e 100644 --- a/sysdeps/unix/sysv/linux/microblaze/librt.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __mq_open_2 F GLIBC_2.18 aio_cancel F GLIBC_2.18 aio_cancel64 F diff --git a/sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist b/sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist index 6387ad13a8..511767701c 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 td_init F GLIBC_2.18 td_log F GLIBC_2.18 td_symbol_list F diff --git a/sysdeps/unix/sysv/linux/microblaze/libutil.abilist b/sysdeps/unix/sysv/linux/microblaze/libutil.abilist index af2c3048cc..0da0a40c22 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libutil.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 forkpty F GLIBC_2.18 login F GLIBC_2.18 login_tty F diff --git a/sysdeps/unix/sysv/linux/microblaze/localplt.data b/sysdeps/unix/sysv/linux/microblaze/localplt.data index 176d61818e..8ca23897df 100644 --- a/sysdeps/unix/sysv/linux/microblaze/localplt.data +++ b/sysdeps/unix/sysv/linux/microblaze/localplt.data @@ -5,13 +5,16 @@ libc.so: malloc libc.so: memalign libc.so: realloc libm.so: matherr -libpthread.so: __errno_location -# The dynamic loader needs __tls_get_addr for TLS, and uses __libc_memalign -# internally to allocate aligned TLS storage. The other malloc family of -# functions are expected to allow user symbol interposition. -ld.so: __tls_get_addr -ld.so: __libc_memalign +# The dynamic loader needs __tls_get_addr for TLS. +ld.so: __tls_get_addr ? +# 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/microblaze/mmap.S b/sysdeps/unix/sysv/linux/microblaze/mmap.S deleted file mode 100644 index 057217acff..0000000000 --- a/sysdeps/unix/sysv/linux/microblaze/mmap.S +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright (C) 2009-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 <sysdep.h> - -#define EINVAL 22 - .text -ENTRY (__mmap) - addik r3,r0,-EINVAL - andi r4,r10,0xfff - bnei r4,L(skip) - addik r12,r0,SYS_ify(mmap2) - sra r10,r10 - sra r10,r10 - sra r10,r10 - sra r10,r10 - sra r10,r10 - sra r10,r10 - sra r10,r10 - sra r10,r10 - sra r10,r10 - sra r10,r10 - sra r10,r10 - sra r10,r10 ; /* mmap2 takes the offset in pages. */ - brki r14,8 - nop -L(skip): - addik r4,r0,-4095 - cmpu r4,r4,r3 - bgei r4,SYSCALL_ERROR_LABEL - rtsd r15,8 - nop -PSEUDO_END (__mmap) - -weak_alias (__mmap, mmap) diff --git a/sysdeps/unix/sysv/linux/microblaze/msgctl.c b/sysdeps/unix/sysv/linux/microblaze/msgctl.c deleted file mode 100644 index d65a5b93d6..0000000000 --- a/sysdeps/unix/sysv/linux/microblaze/msgctl.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/arm/msgctl.c> diff --git a/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S b/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S index 65cc3823ac..74bc1cdf74 100644 --- a/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S +++ b/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S @@ -1 +1,49 @@ -#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S> +/* vfork ABI-compatibility entry points for libpthread. + 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 + 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 <shlib-compat.h> + +/* libpthread used to have its own vfork implementation that differed + from libc's only in having a pointless micro-optimization. There + is no longer any use to having a separate copy in libpthread, but + the historical ABI requires it. For static linking, there is no + need to provide anything here--the libc version will be linked in. + For shared library ABI compatibility, there must be __vfork and + vfork symbols in libpthread.so. + + As of GCC 7, microblaze can *not* rely on the compiler to generate + a tail call from this vfork to __libc_vfork. */ + +#if (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \ + || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)) + +ENTRY (vfork_compat) + bri __libc_vfork@PLT +END (vfork_compat) + +#endif + +#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) +compat_symbol (libpthread, vfork_compat, vfork, GLIBC_2_0) +#endif + +#if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20) +strong_alias (vfork_compat, vfork_compat2) +compat_symbol (libpthread, vfork_compat2, __vfork, GLIBC_2_1_2) +#endif diff --git a/sysdeps/unix/sysv/linux/microblaze/semctl.c b/sysdeps/unix/sysv/linux/microblaze/semctl.c deleted file mode 100644 index 4cb834ad97..0000000000 --- a/sysdeps/unix/sysv/linux/microblaze/semctl.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/arm/semctl.c> diff --git a/sysdeps/unix/sysv/linux/microblaze/setgroups.c b/sysdeps/unix/sysv/linux/microblaze/setgroups.c deleted file mode 100644 index cb9a7708e3..0000000000 --- a/sysdeps/unix/sysv/linux/microblaze/setgroups.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/setgroups.c> diff --git a/sysdeps/unix/sysv/linux/microblaze/shmctl.c b/sysdeps/unix/sysv/linux/microblaze/shmctl.c deleted file mode 100644 index f73ed6f246..0000000000 --- a/sysdeps/unix/sysv/linux/microblaze/shmctl.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/arm/shmctl.c> diff --git a/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h b/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h index 8e2775219c..c99d0d7300 100644 --- a/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h @@ -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. @@ -16,10 +16,5 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#define SIGCONTEXT int _code, struct ucontext * -#define SIGCONTEXT_EXTRA_ARGS _code, +#define SIGCONTEXT int _code, ucontext_t * #define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.regs.pc) -#define GET_FRAME(ctx) ((void *) (ctx)->uc_mcontext.regs.sp) -#define GET_STACK(ctx) ((void *) (ctx)->uc_mcontext.regs.sp) -#define CALL_SIGHANDLER(handler, signo, ctx) \ - (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) diff --git a/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h b/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h index 7541301c19..17c52519e7 100644 --- a/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h +++ b/sysdeps/unix/sysv/linux/microblaze/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. diff --git a/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h b/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h new file mode 100644 index 0000000000..1f6312c81d --- /dev/null +++ b/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h @@ -0,0 +1,92 @@ +/* Data structures for user-level context switching. MicroBlaze version. + 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 + 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 _SYS_UCONTEXT_H +#define _SYS_UCONTEXT_H 1 + +#include <features.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 + +typedef struct + { + struct + { + unsigned long int __ctx(r0); + unsigned long int __ctx(r1); + unsigned long int __ctx(r2); + unsigned long int __ctx(r3); + unsigned long int __ctx(r4); + unsigned long int __ctx(r5); + unsigned long int __ctx(r6); + unsigned long int __ctx(r7); + unsigned long int __ctx(r8); + unsigned long int __ctx(r9); + unsigned long int __ctx(r10); + unsigned long int __ctx(r11); + unsigned long int __ctx(r12); + unsigned long int __ctx(r13); + unsigned long int __ctx(r14); + unsigned long int __ctx(r15); + unsigned long int __ctx(r16); + unsigned long int __ctx(r17); + unsigned long int __ctx(r18); + unsigned long int __ctx(r19); + unsigned long int __ctx(r20); + unsigned long int __ctx(r21); + unsigned long int __ctx(r22); + unsigned long int __ctx(r23); + unsigned long int __ctx(r24); + unsigned long int __ctx(r25); + unsigned long int __ctx(r26); + unsigned long int __ctx(r27); + unsigned long int __ctx(r28); + unsigned long int __ctx(r29); + unsigned long int __ctx(r30); + unsigned long int __ctx(r31); + unsigned long int __ctx(pc); + unsigned long int __ctx(msr); + unsigned long int __ctx(ear); + unsigned long int __ctx(esr); + unsigned long int __ctx(fsr); + int __ctx(pt_mode); + } __ctx(regs); + unsigned long int __ctx(oldmask); + } mcontext_t; + +/* Userlevel context. */ +typedef struct ucontext_t + { + unsigned long int __ctx(uc_flags); + struct ucontext_t *uc_link; + stack_t uc_stack; + mcontext_t uc_mcontext; + sigset_t uc_sigmask; + } ucontext_t; + +#undef __ctx + +#endif /* sys/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/microblaze/sys/user.h b/sysdeps/unix/sysv/linux/microblaze/sys/user.h index 7b23e12419..fa09c5dbf2 100644 --- a/sysdeps/unix/sysv/linux/microblaze/sys/user.h +++ b/sysdeps/unix/sysv/linux/microblaze/sys/user.h @@ -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. diff --git a/sysdeps/unix/sysv/linux/microblaze/syscall.S b/sysdeps/unix/sysv/linux/microblaze/syscall.S index 527e43b08b..ece52e766c 100644 --- a/sysdeps/unix/sysv/linux/microblaze/syscall.S +++ b/sysdeps/unix/sysv/linux/microblaze/syscall.S @@ -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. diff --git a/sysdeps/unix/sysv/linux/microblaze/syscalls.list b/sysdeps/unix/sysv/linux/microblaze/syscalls.list index da0fd4ec98..932c9cccc8 100644 --- a/sysdeps/unix/sysv/linux/microblaze/syscalls.list +++ b/sysdeps/unix/sysv/linux/microblaze/syscalls.list @@ -5,15 +5,3 @@ cacheflush EXTRA cacheflush i:iiii __cacheflush cacheflush prlimit64 EXTRA prlimit64 i:iipp prlimit64 fanotify_mark EXTRA fanotify_mark i:iiiiis fanotify_mark personality EXTRA personality Ei:i __personality personality - -# Semaphore and shm system calls. msgctl, shmctl, and semctl have C -# wrappers (to set __IPC_64). -msgget - msgget i:ii __msgget msgget -msgrcv - msgrcv Ci:ibnii __msgrcv msgrcv -msgsnd - msgsnd Ci:ibni __msgsnd msgsnd -shmat - shmat i:ipi __shmat shmat -shmdt - shmdt i:s __shmdt shmdt -shmget - shmget i:iii __shmget shmget -semop - semop i:ipi __semop semop -semtimedop - semtimedop i:ipip semtimedop -semget - semget i:iii __semget semget diff --git a/sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h b/sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h deleted file mode 100644 index 2fc5c49f2a..0000000000 --- a/sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h +++ /dev/null @@ -1,158 +0,0 @@ -/* Copyright (C) 2014-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 <sysdep.h> -#include <tls.h> -#ifndef __ASSEMBLER__ -# include <nptl/pthreadP.h> -#endif - -#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt) - -# if !IS_IN (librt) || !defined(PIC) -# define AC_STACK_SIZE 16 /* space for r15, async_cancel arg and 2 temp words */ -# define AC_SET_GOT /* empty */ -# define AC_RESTORE_GOT /* empty */ -# else -# define AC_STACK_SIZE 20 /* extra 4 bytes for r20 */ -# define AC_SET_GOT \ - swi r20, r1, AC_STACK_SIZE-4; \ - mfs r20, rpc; \ - addik r20, r20, _GLOBAL_OFFSET_TABLE_+8; -# define AC_RESTORE_GOT \ - lwi r20, r1, AC_STACK_SIZE-4; -# endif - -# undef PSEUDO -# define PSEUDO(name, syscall_name, args) \ - .text; \ - ENTRY (name) \ - SINGLE_THREAD_P(r12); \ - bnei r12, L(pseudo_cancel); \ - .globl __##syscall_name##_nocancel; \ - .type __##syscall_name##_nocancel,@function; \ -__##syscall_name##_nocancel: \ - DO_CALL (syscall_name, args); \ - addik r4, r0, -4095; \ - cmpu r4, r4, r3; \ - bgei r4, SYSCALL_ERROR_LABEL; \ - rtsd r15, 8; \ - nop; \ - .size __##syscall_name##_nocancel, .-__##syscall_name##_nocancel; \ -L(pseudo_cancel): \ - addik r1, r1, -AC_STACK_SIZE; \ - swi r15, r1, 0; \ - AC_SET_GOT \ - DOCARGS_##args \ - CENABLE; \ - swi r3, r1, 8; \ - UNDOCARGS_##args \ - DO_CALL (syscall_name, args); \ - swi r3, r1, 12; \ - lwi r5, r1, 8; \ - CDISABLE; \ - lwi r3, r1, 12; \ - lwi r15, r1, 0; \ - AC_RESTORE_GOT \ - addik r1, r1, AC_STACK_SIZE; \ - addik r4, r0, -4095; \ - cmpu r4, r4, r3; \ - bgei r4, SYSCALL_ERROR_LABEL; \ - rtsd r15, 8; \ - nop; - -/* - * Macros to save/restore syscall arguments across CENABLE - * The arguments are saved into the caller's stack (original r1 + 4) - */ - -# define DOCARGS_0 -# define DOCARGS_1 swi r5, r1, AC_STACK_SIZE + 4; -# define DOCARGS_2 swi r6, r1, AC_STACK_SIZE + 8; DOCARGS_1 -# define DOCARGS_3 swi r7, r1, AC_STACK_SIZE + 12; DOCARGS_2 -# define DOCARGS_4 swi r8, r1, AC_STACK_SIZE + 16; DOCARGS_3 -# define DOCARGS_5 swi r9, r1, AC_STACK_SIZE + 20; DOCARGS_4 -# define DOCARGS_6 swi r10, r1, AC_STACK_SIZE + 24; DOCARGS_5 - -# define UNDOCARGS_0 -# define UNDOCARGS_1 lwi r5, r1, AC_STACK_SIZE + 4; -# define UNDOCARGS_2 UNDOCARGS_1 lwi r6, r1, AC_STACK_SIZE + 8; -# define UNDOCARGS_3 UNDOCARGS_2 lwi r7, r1, AC_STACK_SIZE + 12; -# define UNDOCARGS_4 UNDOCARGS_3 lwi r8, r1, AC_STACK_SIZE + 16; -# define UNDOCARGS_5 UNDOCARGS_4 lwi r9, r1, AC_STACK_SIZE + 20; -# define UNDOCARGS_6 UNDOCARGS_5 lwi r10, r1, AC_STACK_SIZE + 24; - -# ifdef PIC -# define PSEUDO_JMP(sym) brlid r15, sym##@PLTPC; addk r0, r0, r0 -# else -# define PSEUDO_JMP(sym) brlid r15, sym; addk r0, r0, r0 -# endif - -# if IS_IN (libpthread) -# define CENABLE PSEUDO_JMP (__pthread_enable_asynccancel) -# define CDISABLE PSEUDO_JMP (__pthread_disable_asynccancel) -# define __local_multiple_threads __pthread_multiple_threads -# elif IS_IN (libc) -# define CENABLE PSEUDO_JMP (__libc_enable_asynccancel) -# define CDISABLE PSEUDO_JMP (__libc_disable_asynccancel) -# define __local_multiple_threads __libc_multiple_threads -# elif IS_IN (librt) -# define CENABLE PSEUDO_JMP (__librt_enable_asynccancel) -# define CDISABLE PSEUDO_JMP (__librt_disable_asynccancel) -# else -# error Unsupported library -# endif - - -# if IS_IN (libpthread) || IS_IN (libc) -# ifndef __ASSEMBLER__ -extern int __local_multiple_threads attribute_hidden; -# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1) -# else -# if !defined PIC -# define SINGLE_THREAD_P(reg) lwi reg, r0, __local_multiple_threads; -# else -# define SINGLE_THREAD_P(reg) \ - mfs reg, rpc; \ - addik reg, reg, _GLOBAL_OFFSET_TABLE_+8; \ - lwi reg, reg, __local_multiple_threads@GOT; \ - lwi reg, reg, 0; -# endif -# endif -# else -# ifndef __ASSEMBLER__ -# define SINGLE_THREAD_P \ - __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ - header.multiple_threads) == 0, 1) -# else -# define SINGLE_THREAD_P(reg) \ - lwi reg, r0, MULTIPLE_THREADS_OFFSET(reg) -# endif -# 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/microblaze/sysdep.S b/sysdeps/unix/sysv/linux/microblaze/sysdep.S index 51c26e44b5..3f8591c0e4 100644 --- a/sysdeps/unix/sysv/linux/microblaze/sysdep.S +++ b/sysdeps/unix/sysv/linux/microblaze/sysdep.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. diff --git a/sysdeps/unix/sysv/linux/microblaze/sysdep.h b/sysdeps/unix/sysv/linux/microblaze/sysdep.h index abc13c25ca..7b05047ad4 100644 --- a/sysdeps/unix/sysv/linux/microblaze/sysdep.h +++ b/sysdeps/unix/sysv/linux/microblaze/sysdep.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -209,70 +209,70 @@ SYSCALL_ERROR_LABEL_DCL: \ # define inline_syscall0(name,dummy) \ ({ \ - register long ret __asm__("r3"); \ + register long __ret __asm__("r3"); \ register long __r12 __asm__("r12") = name; \ __asm__ __volatile__( "brki r14,8; nop;" \ - : "=r"(ret) \ + : "=r"(__ret) \ : "r"(__r12) \ - : SYSCALL_CLOBBERS_0 ); ret; \ + : SYSCALL_CLOBBERS_0 ); __ret; \ }) # define inline_syscall1(name,arg1) \ ({ \ - register long ret __asm__("r3"); \ + register long __ret __asm__("r3"); \ register long __r12 __asm__("r12") = name; \ register long __r5 __asm__("r5") = (long)(arg1); \ __asm__ __volatile__( "brki r14,8; nop;" \ - : "=r"(ret) \ + : "=r"(__ret) \ : "r"(__r5), "r"(__r12) \ - : SYSCALL_CLOBBERS_1 ); ret; \ + : SYSCALL_CLOBBERS_1 ); __ret; \ }) # define inline_syscall2(name,arg1,arg2) \ ({ \ - register long ret __asm__("r3"); \ + register long __ret __asm__("r3"); \ register long __r12 __asm__("r12") = name; \ register long __r5 __asm__("r5") = (long)(arg1); \ register long __r6 __asm__("r6") = (long)(arg2); \ __asm__ __volatile__( "brki r14,8; nop;" \ - : "=r"(ret) \ + : "=r"(__ret) \ : "r"(__r5), "r"(__r6), "r"(__r12) \ - : SYSCALL_CLOBBERS_2 ); ret; \ + : SYSCALL_CLOBBERS_2 ); __ret; \ }) # define inline_syscall3(name,arg1,arg2,arg3) \ ({ \ - register long ret __asm__("r3"); \ + register long __ret __asm__("r3"); \ register long __r12 __asm__("r12") = name; \ register long __r5 __asm__("r5") = (long)(arg1); \ register long __r6 __asm__("r6") = (long)(arg2); \ register long __r7 __asm__("r7") = (long)(arg3); \ __asm__ __volatile__( "brki r14,8; nop;" \ - : "=r"(ret) \ + : "=r"(__ret) \ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r12) \ - : SYSCALL_CLOBBERS_3 ); ret; \ + : SYSCALL_CLOBBERS_3 ); __ret; \ }) # define inline_syscall4(name,arg1,arg2,arg3,arg4) \ ({ \ - register long ret __asm__("r3"); \ + register long __ret __asm__("r3"); \ register long __r12 __asm__("r12") = name; \ register long __r5 __asm__("r5") = (long)(arg1); \ register long __r6 __asm__("r6") = (long)(arg2); \ register long __r7 __asm__("r7") = (long)(arg3); \ register long __r8 __asm__("r8") = (long)(arg4); \ __asm__ __volatile__( "brki r14,8; nop;" \ - : "=r"(ret) \ + : "=r"(__ret) \ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r8),"r"(__r12) \ - : SYSCALL_CLOBBERS_4 ); ret; \ + : SYSCALL_CLOBBERS_4 ); __ret; \ }) # define inline_syscall5(name,arg1,arg2,arg3,arg4,arg5) \ ({ \ - register long ret __asm__("r3"); \ + register long __ret __asm__("r3"); \ register long __r12 __asm__("r12") = name; \ register long __r5 __asm__("r5") = (long)(arg1); \ register long __r6 __asm__("r6") = (long)(arg2); \ @@ -280,15 +280,15 @@ SYSCALL_ERROR_LABEL_DCL: \ register long __r8 __asm__("r8") = (long)(arg4); \ register long __r9 __asm__("r9") = (long)(arg5); \ __asm__ __volatile__( "brki r14,8; nop;" \ - : "=r"(ret) \ + : "=r"(__ret) \ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r8),"r"(__r9), "r"(__r12) \ - : SYSCALL_CLOBBERS_5 ); ret; \ + : SYSCALL_CLOBBERS_5 ); __ret; \ }) # define inline_syscall6(name,arg1,arg2,arg3,arg4,arg5,arg6) \ ({ \ - register long ret __asm__("r3"); \ + register long __ret __asm__("r3"); \ register long __r12 __asm__("r12") = name; \ register long __r5 __asm__("r5") = (long)(arg1); \ register long __r6 __asm__("r6") = (long)(arg2); \ @@ -297,10 +297,10 @@ SYSCALL_ERROR_LABEL_DCL: \ register long __r9 __asm__("r9") = (long)(arg5); \ register long __r10 __asm__("r10") = (long)(arg6); \ __asm__ __volatile__( "brki r14,8; nop;" \ - : "=r"(ret) \ + : "=r"(__ret) \ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r8),"r"(__r9), "r"(__r10), \ "r"(__r12) \ - : SYSCALL_CLOBBERS_6 ); ret; \ + : SYSCALL_CLOBBERS_6 ); __ret; \ }) @@ -308,6 +308,8 @@ SYSCALL_ERROR_LABEL_DCL: \ # define PTR_MANGLE(var) (void) (var) # define PTR_DEMANGLE(var) (void) (var) +# define SINGLE_THREAD_BY_GLOBAL 1 + #endif /* not __ASSEMBLER__ */ #endif /* _LINUX_MICROBLAZE_SYSDEP_H */ diff --git a/sysdeps/unix/sysv/linux/microblaze/vfork.S b/sysdeps/unix/sysv/linux/microblaze/vfork.S index 9592cb4f28..01b0037b23 100644 --- a/sysdeps/unix/sysv/linux/microblaze/vfork.S +++ b/sysdeps/unix/sysv/linux/microblaze/vfork.S @@ -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. @@ -43,3 +43,4 @@ PSEUDO_END (__vfork) libc_hidden_def (__vfork) weak_alias (__vfork, vfork) +strong_alias (__vfork, __libc_vfork) |