summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/microblaze
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/microblaze')
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/Makefile3
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/arch-fork.h27
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/mman.h6
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/brk.c2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/clock-compat.c (renamed from sysdeps/unix/sysv/linux/microblaze/futimesat.c)23
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/clone.S3
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/fcntl.c1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/getsysstats.c2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/jmp_buf-macros.h6
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/kernel-features.h58
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/kernel_stat.h5
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/ld.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/libanl.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/libc.abilist49
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/libdl.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/libm.abilist397
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/libnsl.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/libpthread.abilist22
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/libresolv.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/librt.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/libutil.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/localplt.data15
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/mmap.S50
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/msgctl.c1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/pt-vfork.S50
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/semctl.c1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/setgroups.c1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/shmctl.c1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h9
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sys/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h92
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/syscalls.list12
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h158
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sysdep.h46
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/vfork.S3
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)