summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/sparc/sparc64
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/sparc64')
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/Makefile5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/Versions8
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/brk.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/c++-types.data (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/c++-types.data)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/configure15
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/ld.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libBrokenLocale.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libanl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist)3
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libdl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libm.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libnsl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libpthread.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libresolv.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/librt.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libthread_db.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libutil.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/nptl/localplt.data)8
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c24
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h7
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c11
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/socket.S118
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h109
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h8
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S49
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c3
59 files changed, 254 insertions, 187 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile b/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
index 715af3df7b..7ea433f21f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
@@ -7,3 +7,8 @@ LD += -melf64_sparc
ifeq ($(subdir),stdlib)
sysdep_routines += __start_context
endif
+
+ifeq ($(subdir),nptl)
+CFLAGS-pause.c += -fexceptions
+CFLAGS-sigsuspend.c += -fexceptions
+endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
index cfcc15b119..fbea1bb2ef 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
@@ -9,3 +9,11 @@ libc {
wordexp;
}
}
+
+librt {
+ GLIBC_2.3.3 {
+ # Changed timer_t.
+ timer_create; timer_delete; timer_getoverrun; timer_gettime;
+ timer_settime;
+ }
+}
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
index 5885d84770..f33d25d908 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2014 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2015 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/sparc/sparc64/__start_context.S b/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
index 48e72fa823..d409c22b27 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2014 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2015 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/sparc/sparc64/brk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
index 567163f907..29b6e8703d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997.
@@ -89,7 +89,7 @@ ENTRY (__brk)
#endif
st %o0, [%g1]
#else
-#ifndef NOT_IN_libc
+#if IS_IN (libc)
call HIDDEN_JUMPTARGET(__errno_location)
#else
call __errno_location
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/c++-types.data b/sysdeps/unix/sysv/linux/sparc/sparc64/c++-types.data
index 5a04f4939a..5a04f4939a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/c++-types.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/c++-types.data
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
index 57d75d2d26..27c8b3d9dc 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu).
@@ -77,7 +77,6 @@ END(__clone)
.type __thread_start,@function
__thread_start:
-#ifdef RESET_PID
sethi %hi(CLONE_THREAD), %l0
andcc %g4, %l0, %g0
bne,pt %icc, 1f
@@ -89,7 +88,6 @@ __thread_start:
2: st %o0,[%g7 + PID]
st %o0,[%g7 + TID]
1:
-#endif
mov %g0, %fp /* terminate backtrace */
call %g2
mov %g3,%o0
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/configure b/sysdeps/unix/sysv/linux/sparc/sparc64/configure
new file mode 100644
index 0000000000..9e5ea3c86a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/configure
@@ -0,0 +1,15 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/sparc/sparc64.
+
+test -n "$libc_cv_slibdir" ||
+case "$prefix" in
+/usr | /usr/)
+ libc_cv_slibdir=/lib64
+ libc_cv_rtlddir=/lib64
+ if test "$libdir" = '${exec_prefix}/lib'; then
+ libdir='${exec_prefix}/lib64';
+ # Locale data can be shared between 32-bit and 64-bit libraries.
+ libc_cv_localedir='${exec_prefix}/lib/locale'
+ fi
+ ;;
+esac
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac b/sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac
new file mode 100644
index 0000000000..979bb8d923
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac
@@ -0,0 +1,4 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/sparc/sparc64.
+
+LIBC_SLIBDIR_RTLDDIR([lib64], [lib64])
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h b/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h
index 7409e0db88..a970de4308 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 1999-2014 Free Software Foundation, Inc.
+ Copyright (C) 1999-2015 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/sparc/sparc64/dl-fxstatat64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c
index 339e5f4335..330b33f7c7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c
@@ -1,6 +1 @@
-/* In this implementation we do not really care whether the call fails
- because of missing kernel support since we do not even call the
- function in this case. */
-#undef __ASSUME_ATFCTS
-#define __ASSUME_ATFCTS 1
#include "fxstatat.c"
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c b/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
index 99ee15cfba..27dfdbc8a0 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
@@ -1,5 +1,5 @@
/* Get frequency of the system processor. sparc64 version.
- Copyright (C) 2001-2014 Free Software Foundation, Inc.
+ Copyright (C) 2001-2015 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/sparc/sparc64/getcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S
index 7913b5673c..d3e08aeb7c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu).
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/ld.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist
index 9ad04eddad..9ad04eddad 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/ld.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist
index b7aa242c86..b7aa242c86 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libBrokenLocale.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist
index c9755d8a33..c9755d8a33 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 35987faa6e..fa70645c98 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1908,6 +1908,9 @@ GLIBC_2.2.4
GLIBC_2.2.6
GLIBC_2.2.6 A
__nanosleep F
+GLIBC_2.22
+ GLIBC_2.22 A
+ fmemopen F
GLIBC_2.3
GLIBC_2.3 A
__ctype_b_loc F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist
index 1df145f260..1df145f260 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
index 62e6b41edb..62e6b41edb 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 2b41d34225..2b41d34225 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist
index 4241e2d887..4241e2d887 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libnsl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index a84c113594..a84c113594 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index 808d0f2f74..808d0f2f74 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index d710117080..d710117080 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist
index f33138067c..f33138067c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libthread_db.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist
index 7422687e3c..7422687e3c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libutil.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 6f1769c026..633cfe4493 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -17,3 +17,11 @@ libc.so: malloc
libc.so: memalign
libc.so: realloc
libm.so: matherr
+# The dynamic loader uses __libc_memalign internally to allocate
+# aligned TLS storage. The other malloc family of functions are
+# expected to allow user symbol interposition.
+ld.so: __libc_memalign
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S b/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
index ab8c83788f..908715e8f1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu).
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c b/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
index 958b6cd0c2..5daba79d83 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2014 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>.
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c b/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c
index 766087ea9d..88a36dcf0f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c b/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c
index 36c947f7b0..169ac532b3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,24 +23,10 @@
#include <sys/syscall.h>
ssize_t
-__libc_msgrcv (msqid, msgp, msgsz, msgtyp, msgflg)
- int msqid;
- void *msgp;
- size_t msgsz;
- long int msgtyp;
- int msgflg;
+__libc_msgrcv (int msqid, void *msgp, size_t msgsz, long int msgtyp,
+ int msgflg)
{
- if (SINGLE_THREAD_P)
- return INLINE_SYSCALL (ipc, 6, IPCOP_msgrcv, msqid, msgsz, msgflg,
- msgp, msgtyp);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-
- ssize_t result = INLINE_SYSCALL (ipc, 6, IPCOP_msgrcv, msqid, msgsz, msgflg,
- msgp, msgtyp);
-
- LIBC_CANCEL_RESET (oldtype);
-
- return result;
+ return SYSCALL_CANCEL (ipc, IPCOP_msgrcv, msqid, msgsz, msgflg,
+ msgp, msgtyp);
}
weak_alias (__libc_msgrcv, msgrcv)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S b/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S
index 01967d6de4..b6f3604235 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, 1997.
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h b/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h
index 38f7270ac2..eb511013b5 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h
@@ -1,5 +1,5 @@
/* Low-level statistical profiling support function. Linux/Sparc64 version.
- Copyright (C) 1997-2014 Free Software Foundation, Inc.
+ Copyright (C) 1997-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,10 @@
#include <signal.h>
void
-profil_counter (int signo, struct sigcontext *si)
+__profil_counter (int signo, struct sigcontext *si)
{
profil_count ((void *) si->sigc_regs.tpc);
}
+#ifndef __profil_counter
+weak_alias (__profil_counter, profil_counter)
+#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h b/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h
index 3d44d636a9..2a79f2172a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 1999-2014 Free Software Foundation, Inc.
+ Copyright (C) 1999-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999.
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c b/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c
index fa541bfb80..2714728a63 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S
index b68e8288bd..ce4b2f0f07 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu).
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S b/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
index b0448b4cfb..a546935ffd 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu).
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions b/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions
new file mode 100644
index 0000000000..9333bbd7a3
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions
@@ -0,0 +1,5 @@
+libm=6 GLIBC_2.2
+libc=6 GLIBC_2.2
+ld=ld-linux.so.2 GLIBC_2.2
+libBrokenLocale=1 GLIBC_2.2
+libpthread=0 GLIBC_2.2
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c b/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c
index b844f38ecf..bb76b192fe 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
index 665e658cf9..34258e5cd0 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
@@ -1,5 +1,5 @@
/* POSIX.1 sigaction call for Linux/SPARC64.
- Copyright (C) 1997-2014 Free Software Foundation, Inc.
+ Copyright (C) 1997-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Miguel de Icaza <miguel@nuclecu.unam.mx> and
Jakub Jelinek <jj@ultra.linux.cz>.
@@ -63,15 +63,8 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
}
libc_hidden_def (__libc_sigaction)
-#ifdef WRAPPER_INCLUDE
-# include WRAPPER_INCLUDE
-#endif
+#include <nptl/sigaction.c>
-#ifndef LIBC_SIGACTION
-weak_alias (__libc_sigaction, __sigaction);
-libc_hidden_weak (__sigaction)
-weak_alias (__libc_sigaction, sigaction);
-#endif
static void
__rt_sigreturn_stub (void)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
index 6e505b596b..d0f18d3a87 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999.
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c
index 6e16bf90e6..61b5089d0e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2015 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/sparc/sparc64/sigprocmask.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
index 66065650be..74ccf55c53 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2015 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/sparc/sparc64/sizes.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
index 966996e9be..a4f87f574d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2015 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/sparc/sparc64/socket.S b/sysdeps/unix/sysv/linux/sparc/sparc64/socket.S
deleted file mode 100644
index d262e36883..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/socket.S
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep-cancel.h>
-#include <socketcall.h>
-
-#define P(a, b) P2(a, b)
-#define P2(a, b) a##b
-
-#ifndef NARGS
-#ifdef socket
-#error NARGS not defined
-#endif
-#define NARGS 3
-#endif
-
- .text
-/* The socket-oriented system calls are handled unusually in Linux.
- They are all gated through the single `socketcall' system call number.
- `socketcall' takes two arguments: the first is the subcode, specifying
- which socket function is being called; and the second is a pointer to
- the arguments to the specific function.
-
- The .S files for the other calls just #define socket and #include this. */
-
-#ifndef __socket
-# ifndef NO_WEAK_ALIAS
-# define __socket P(__,socket)
-# else
-# define __socket socket
-# endif
-#endif
-
- .globl __syscall_error
-ENTRY(__socket)
-
- /* Drop up to 6 arguments (recvfrom) into the memory allocated by
- the caller for varargs, since that's really what we have. */
- stx %o0, [%sp + STACK_BIAS + 128 + 0]
- stx %o1, [%sp + STACK_BIAS + 128 + 8]
-#if NARGS > 2
- stx %o2, [%sp + STACK_BIAS + 128 + 16]
-#if NARGS > 3
- stx %o3, [%sp + STACK_BIAS + 128 + 24]
-#if NARGS > 4
- stx %o4, [%sp + STACK_BIAS + 128 + 32]
-#if NARGS > 5
- stx %o5, [%sp + STACK_BIAS + 128 + 40]
-#endif
-#endif
-#endif
-#endif
-
-#if defined NEED_CANCELLATION && defined CENABLE
- SINGLE_THREAD_P
- cmp %g1, 0
- bne .Lsocket_cancel
-#endif
- mov P(SOCKOP_,socket), %o0 /* arg 1: socket subfunction */
- add %sp, STACK_BIAS + 128, %o1 /* arg 2: parameter block */
- LOADSYSCALL(socketcall)
- ta 0x6d
-
- bcc,pt %xcc, 1f
- mov %o7, %g1
- call __syscall_error
- mov %g1, %o7
-1: retl
- nop
-
-#if defined NEED_CANCELLATION && defined CENABLE
-.Lsocket_cancel:
- save %sp, -160, %sp
- cfi_def_cfa_register (%fp)
- cfi_window_save
- cfi_register (%o7, %i7)
- CENABLE
- nop
- mov %o0, %l0
- add %sp, 160 + STACK_BIAS + 128, %o1
- mov P(SOCKOP_,socket), %o0
- LOADSYSCALL(socketcall)
- ta 0x6d
-
- bcc,pt %xcc, 1f
- mov %o0, %l1
- CDISABLE;
- mov %l0, %o0;
- call __syscall_error;
- mov %l1, %o0;
- ba,pt %xcc, 2f
- mov -1, %l1;
-1: CDISABLE
- mov %l0, %o0
-2: jmpl %i7 + 8, %g0
- restore %g0, %l1, %o0
-#endif
-
-END(__socket)
-
-#ifndef NO_WEAK_ALIAS
-weak_alias (__socket, socket)
-#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c b/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c
index 14b1061ce6..a63cbc212a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2014 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>.
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
index a9eeac4e73..b24c45e023 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2015 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/sparc/sparc64/syscalls.list b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
index ca2953c6b9..3d1c1daac9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
@@ -4,7 +4,7 @@
select - select C:5 __select select
accept - accept C:3 __libc_accept __accept accept
bind - bind 3 __bind bind
-connect - connect C:3 __libc_connect __connect_internal __connect connect
+connect - connect C:3 __libc_connect __connect connect
getpeername - getpeername 3 __getpeername getpeername
getsockname - getsockname 3 __getsockname getsockname
getsockopt - getsockopt 5 __getsockopt getsockopt
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
new file mode 100644
index 0000000000..6e58765e46
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
@@ -0,0 +1,109 @@
+/* Copyright (C) 2002-2015 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <tls.h>
+#ifndef __ASSEMBLER__
+# include <nptl/pthreadP.h>
+#endif
+
+#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .text; \
+ .globl __syscall_error; \
+ENTRY(name) \
+ ld [%g7 + MULTIPLE_THREADS_OFFSET], %g1;\
+ brnz,pn %g1, 1f; \
+.type __##syscall_name##_nocancel,@function; \
+.globl __##syscall_name##_nocancel; \
+__##syscall_name##_nocancel: \
+ mov SYS_ify(syscall_name), %g1; \
+ ta 0x6d; \
+ bcc,pt %xcc, 8f; \
+ mov %o7, %g1; \
+ call __syscall_error; \
+ mov %g1, %o7; \
+8: jmpl %o7 + 8, %g0; \
+ nop; \
+.size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel;\
+1: save %sp, -192, %sp; \
+ cfi_def_cfa_register(%fp); \
+ cfi_window_save; \
+ cfi_register(%o7, %i7); \
+ CENABLE; \
+ nop; \
+ mov %o0, %l0; \
+ COPY_ARGS_##args \
+ mov SYS_ify(syscall_name), %g1; \
+ ta 0x6d; \
+ bcc,pt %xcc, 1f; \
+ mov %o0, %l1; \
+ CDISABLE; \
+ mov %l0, %o0; \
+ call __syscall_error; \
+ mov %l1, %o0; \
+ ba,pt %xcc, 2f; \
+ mov -1, %l1; \
+1: CDISABLE; \
+ mov %l0, %o0; \
+2: jmpl %i7 + 8, %g0; \
+ restore %g0, %l1, %o0;
+
+# if IS_IN (libpthread)
+# define CENABLE call __pthread_enable_asynccancel
+# define CDISABLE call __pthread_disable_asynccancel
+# elif IS_IN (libc)
+# define CENABLE call __libc_enable_asynccancel
+# define CDISABLE call __libc_disable_asynccancel
+# elif IS_IN (librt)
+# define CENABLE call __librt_enable_asynccancel
+# define CDISABLE call __librt_disable_asynccancel
+# else
+# error Unsupported library
+# endif
+
+#define COPY_ARGS_0 /* Nothing */
+#define COPY_ARGS_1 COPY_ARGS_0 mov %i0, %o0;
+#define COPY_ARGS_2 COPY_ARGS_1 mov %i1, %o1;
+#define COPY_ARGS_3 COPY_ARGS_2 mov %i2, %o2;
+#define COPY_ARGS_4 COPY_ARGS_3 mov %i3, %o3;
+#define COPY_ARGS_5 COPY_ARGS_4 mov %i4, %o4;
+#define COPY_ARGS_6 COPY_ARGS_5 mov %i5, %o5;
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P ld [%g7 + MULTIPLE_THREADS_OFFSET], %g1
+# 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/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
index 53df66e21b..5b76f15164 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997.
@@ -21,7 +21,7 @@
#include <sysdeps/unix/sysv/linux/sparc/sysdep.h>
-#ifdef IS_IN_rtld
+#if IS_IN (rtld)
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
#endif
#include <tls.h>
@@ -89,7 +89,7 @@ ENTRY(name); \
mov -1, %o0;
# elif defined _LIBC_REENTRANT
-# ifndef NOT_IN_libc
+# if IS_IN (libc)
# define SYSCALL_ERROR_ERRNO __libc_errno
# else
# define SYSCALL_ERROR_ERRNO errno
@@ -140,7 +140,7 @@ ENTRY(name); \
#define STACK_BIAS 2047
/* Pointer mangling support. */
-#if defined NOT_IN_libc && defined IS_IN_rtld
+#if IS_IN (rtld)
/* We cannot use the thread descriptor because in ld.so we use setjmp
earlier than the descriptor is initialized. */
#else
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c
new file mode 100644
index 0000000000..d307135003
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c
new file mode 100644
index 0000000000..2dd94f5c7a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
new file mode 100644
index 0000000000..22eaff5cda
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
new file mode 100644
index 0000000000..cea524bae5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c
new file mode 100644
index 0000000000..fa231149d5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h b/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h
index ee20237079..446f89d17a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2014 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>.
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S b/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
new file mode 100644
index 0000000000..6939ba3522
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
@@ -0,0 +1,49 @@
+/* Copyright (C) 2004-2015 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
+
+ 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 <tcb-offsets.h>
+
+ .text
+ .globl __syscall_error
+ENTRY(__vfork)
+ ld [%g7 + PID], %o5
+ sethi %hi(0x80000000), %o3
+ cmp %o5, 0
+ sub %g0, %o5, %o4
+ move %icc, %o3, %o4
+ st %o4, [%g7 + PID]
+
+ LOADSYSCALL(vfork)
+ ta 0x6d
+ bcc,pt %xcc, 2f
+ mov %o7, %g1
+ st %o5, [%g7 + PID]
+ call __syscall_error
+ mov %g1, %o7
+2: sub %o1, 1, %o1
+ andcc %o0, %o1, %o0
+ bne,a,pt %icc, 1f
+ st %o5, [%g7 + PID]
+1: retl
+ nop
+END(__vfork)
+
+libc_hidden_def (__vfork)
+weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c b/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
index aed2c9e529..4a9d891a1c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2014 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2015 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/sparc/sparc64/xstatconv.c b/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c
index 87cc988aa2..a9578a5008 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1991-2014 Free Software Foundation, Inc.
+ Copyright (C) 1991-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,6 @@
#include <sys/stat.h>
#include <kernel_stat.h>
#include <string.h>
-#include <kernel-features.h>
int
__xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)