about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/s390
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-08-17 00:37:19 +0000
committerUlrich Drepper <drepper@redhat.com>2003-08-17 00:37:19 +0000
commit137ffcdc6effa6b3a750b1d0c228dae61b96adbc (patch)
treefcccdc24bd598da4d8c6dcf8ceb34abf4d7b6da0 /sysdeps/unix/sysv/linux/s390
parent36a8cf1e48eda7d925454c3882dfc34ff0b887f3 (diff)
downloadglibc-137ffcdc6effa6b3a750b1d0c228dae61b96adbc.tar.gz
glibc-137ffcdc6effa6b3a750b1d0c228dae61b96adbc.tar.xz
glibc-137ffcdc6effa6b3a750b1d0c228dae61b96adbc.zip
Update.
2003-08-16  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/powerpc/powerpc32/sysdep.h (PSEUDO_ERRVAL,
	PSEUDO_RET_ERRVAL, ret_ERRVAL, PSEUDO_END_ERRVAL): Define.
	* sysdeps/powerpc/powerpc64/sysdep.h (PSEUDO_ERRVAL,
	PSEUDO_RET_ERRVAL, ret_ERRVAL, PSEUDO_END_ERRVAL): Define.
	* sysdeps/unix/alpha/sysdep.h (PSEUDO_ERRVAL,
	ret_ERRVAL, PSEUDO_END_ERRVAL): Define.
	* sysdeps/unix/mips/sysdep.h (PSEUDO_ERRVAL,
	ret_ERRVAL, PSEUDO_END_ERRVAL): Define.
	* sysdeps/unix/sparc/sysdep.h (PSEUDO_ERRVAL,
	ret_ERRVAL): Define.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (PSEUDO_ERRVAL,
	PSEUDO_END_ERRVAL, ret_ERRVAL): Define.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (PSEUDO_ERRVAL,
	PSEUDO_END_ERRVAL, ret_ERRVAL): Define.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h (PSEUDO_ERRVAL):
	Define.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h (PSEUDO_ERRVAL,
	PSEUDO_END_ERRVAL, ret_ERRVAL): Define.
	* sysdeps/unix/sysdep.h (PSEUDO_END_ERRVAL): Define.

	* sysdeps/unix/sysv/linux/syscalls.list (posix_fadvise64,
	posix_fadvise64_64): Remove.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list (posix_fadvise64): Add
	V flag.
	* sysdeps/unix/sysv/linux/ia64/syscalls.list (posix_fadvise64):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list
	(posix_fadvise64): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
	(posix_fadvise64): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
	(posix_fadvise64): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/syscalls.list (posix_fadvise64):
	Likewise.
	* sysdeps/unix/sysv/linux/i386/posix_fadvise64_64.S: Moved to...
	* sysdeps/unix/sysv/linux/i386/posix_fadvise64.S: ...here.
	(__posix_fadvise64_l64): Fix a typo in fadvise64 syscall invocation.
	(__posix_fadvise64_l32): New function.
	* sysdeps/unix/sysv/linux/i386/Makefile: Revert last change.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions (libc): Export
	posix_fadvise64@@GLIBC_2.3.3.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions (libc): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions (libc): Likewise.
	* sysdeps/unix/sysv/linux/posix_fadvise.c (posix_fadvise): Return
	error value.
	* sysdeps/unix/sysv/linux/posix_fadvise64.c: New file.

	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
	(SYSCALL_ERROR_HANDLER): Use TLS errno/__libc_errno if USE___THREAD.

2003-08-15  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/sparc32/dl-machine.h (WEAKADDR): Remove.
	(elf_machine_matches_host): Remove weak extern stuff.
	Use GL(dl_hwcap) unconditionally and GL(dl_hwcap_mask) if SHARED.
	(elf_machine_runtime_setup, sparc_fixup_plt): Remove weak extern
	stuff.  Use GL(dl_hwcap) unconditionally.
Diffstat (limited to 'sysdeps/unix/sysv/linux/s390')
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/Versions3
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h14
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h15
4 files changed, 33 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/Versions b/sysdeps/unix/sysv/linux/s390/s390-32/Versions
index 3c45a30778..da461a57a0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/Versions
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/Versions
@@ -23,5 +23,8 @@ libc {
     # v*
     versionsort64;
   }
+  GLIBC_2.3.3 {
+    posix_fadvise64;
+  }
 }
 
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
index 95cfd21857..d759e4a664 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
@@ -69,6 +69,17 @@
 #define PSEUDO_END_NOERRNO(name)					      \
   END (name)
 
+#undef PSEUDO_ERRVAL
+#define	PSEUDO_ERRVAL(name, syscall_name, args)				      \
+  .text;                                                                      \
+  ENTRY (name)							              \
+    DO_CALL (syscall_name, args);					      \
+    lcr %r2,%r2
+
+#undef PSEUDO_END_ERRVAL
+#define PSEUDO_END_ERRVAL(name)						      \
+  END (name)
+
 #ifndef PIC
 # define SYSCALL_ERROR_LABEL 0f
 # define SYSCALL_ERROR_HANDLER \
@@ -156,6 +167,9 @@
 #define ret_NOERRNO							      \
     br      14
 
+#define ret_ERRVAL							      \
+    br      14
+
 #endif /* __ASSEMBLER__ */
 
 #undef INLINE_SYSCALL
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list b/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
index c2bf5c3307..e114994c0d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
@@ -10,7 +10,7 @@ getpeername	-	getpeername	i:ipp	__getpeername	getpeername
 ftruncate	-	ftruncate	2	__ftruncate	ftruncate ftruncate64 __ftruncate64
 truncate	-	truncate	2	truncate	truncate64
 getrlimit	-	getrlimit	2	__getrlimit	getrlimit getrlimit64
-posix_fadvise64	-	fadvise64	4	posix_fadvise64	posix_fadvise
+posix_fadvise64	-	fadvise64	Vi:iiii	posix_fadvise64	posix_fadvise
 setrlimit	-	setrlimit	2	__setrlimit	setrlimit setrlimit64
 vfork		-	vfork		0	__vfork		vfork
 
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
index 9abc06e229..2fb6e7a0cf 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
@@ -83,6 +83,18 @@
   SYSCALL_ERROR_HANDLER;						      \
   END (name)
 
+#undef PSEUDO_ERRVAL
+#define	PSEUDO_ERRVAL(name, syscall_name, args)				      \
+  .text;								      \
+  ENTRY (name)								      \
+    DO_CALL (syscall_name, args);					      \
+    lcgr %r2,%r2
+
+#undef PSEUDO_END_ERRVAL
+#define PSEUDO_END_ERRVAL(name)						      \
+  SYSCALL_ERROR_HANDLER;						      \
+  END (name)
+
 #ifndef PIC
 # define SYSCALL_ERROR_LABEL syscall_error
 # define SYSCALL_ERROR_HANDLER
@@ -158,6 +170,9 @@
 #define ret_NOERRNO							      \
     br	    14
 
+#define ret_ERRVAL							      \
+    br	    14
+
 #endif /* __ASSEMBLER__ */
 
 #undef INLINE_SYSCALL