about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/s390
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-02-07 17:54:45 +0000
committerUlrich Drepper <drepper@redhat.com>2002-02-07 17:54:45 +0000
commitd555194cb3d236bda07fa9ef08f4f7020421763a (patch)
treefcd827d43fd1fb19dd29e7f8c44f92396a95301d /sysdeps/unix/sysv/linux/s390
parentd4468ab7887325daf8bcdc8d7591238f3adcc70b (diff)
downloadglibc-d555194cb3d236bda07fa9ef08f4f7020421763a.tar.gz
glibc-d555194cb3d236bda07fa9ef08f4f7020421763a.tar.xz
glibc-d555194cb3d236bda07fa9ef08f4f7020421763a.zip
Update.
2002-02-07  Andreas Schwab  <schwab@suse.de>

	* configure.in: Fix check for -zcombreloc.

2002-02-06  H.J. Lu  <hjl@gnu.org>

	* config.h.in (HAVE_BUILTIN_MEMSET): New.
	* configure.in: Check if __builtin_memset really works.
	* elf/rtld.c (_dl_start): Check HAVE_BUILTIN_MEMSET instead of
	__GNUC_PREREQ (2, 96) before using __builtin_memset.

2002-02-06  Jakub Jelinek  <jakub@redhat.com>

	* io/bug-ftw3.c (main): Don't try the test if root.

2002-02-06  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* sysdeps/unix/sysv/linux/s390/brk.c (__brk): Correct inline assembly
	constraints.
	* sysdeps/unix/sysv/linux/s390/s390-32/bits/resource.h (RLIMIT_LOCKS):
	Add RLIMIT_LOCKS and adjust RLIMIT_NLIMITS.
	* sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h (RLIMIT_LOCKS):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/clone.S (clone): Make clone
	a weak alias for __clone.
	* sysdeps/unix/sysv/linux/s390/s390-64/clone.S (clone): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h: Fix typo.
	* sysdeps/unix/sysv/linux/s390/s390-64/Makefile: Add framestate.
	* sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
	* sysdeps/unix/sysv/linux/s390/s390-64/mmap.S (__mmap64): Make __mmap
	a weak alias for __mmap64.

	* sysdeps/mips/atomicity.h (exchange_and_add): Not use branch likely.
	* sysdeps/unix/sysv/linux/mips/sys/tas.h (_test_and_set): Likewise.
	* sysdeps/generic/dl-tls.c: Don't read TLS header if TLS is not needed.
Diffstat (limited to 'sysdeps/unix/sysv/linux/s390')
-rw-r--r--sysdeps/unix/sysv/linux/s390/brk.c7
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/bits/resource.h8
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/clone.S1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/Makefile8
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/Versions7
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h9
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/clone.S1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/mmap.S2
9 files changed, 36 insertions, 11 deletions
diff --git a/sysdeps/unix/sysv/linux/s390/brk.c b/sysdeps/unix/sysv/linux/s390/brk.c
index f2baf2af71..ae6af21784 100644
--- a/sysdeps/unix/sysv/linux/s390/brk.c
+++ b/sysdeps/unix/sysv/linux/s390/brk.c
@@ -35,14 +35,13 @@ __brk (void *addr)
   void *newbrk;
 
   {
-    register long r0 asm ("2");
     register void *__addr asm("2") = addr;
 
     asm ("svc  %b1\n\t"		/* call sys_brk */
-	 : "=d" (r0)
+	 : "=d" (__addr)
 	 : "I" (SYS_ify(brk)), "r" (__addr)
-	 : _svc_clobber );
-    newbrk = (void *) r0;
+	 : "cc", "memory" );
+    newbrk = __addr;
   }
   __curbrk = newbrk;
 
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/bits/resource.h b/sysdeps/unix/sysv/linux/s390/s390-32/bits/resource.h
index 36b5355f71..204c293584 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/bits/resource.h
@@ -1,5 +1,5 @@
 /* Bit values & structures for resource limits.  Linux version.
-   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2001, 2002 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
@@ -76,7 +76,11 @@ enum __rlimit_resource
   RLIMIT_MEMLOCK = 8,
 #define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
 
-  RLIMIT_NLIMITS = 10,
+  /* Maximum number of file locks.  */
+  RLIMIT_LOCKS = 10,
+#define RLIMIT_LOCKS RLIMIT_LOCKS
+
+  RLIMIT_NLIMITS = 11,
   RLIM_NLIMITS = RLIMIT_NLIMITS
 #define RLIMIT_NLIMITS RLIMIT_NLIMITS
 #define RLIM_NLIMITS RLIM_NLIMITS
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/clone.S b/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
index 4131ce2a51..c93570ed72 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
@@ -65,3 +65,4 @@ thread_start:
 .L1:	.long   _exit - .L0
 #endif
 PSEUDO_END (__clone)
+weak_alias (__clone, clone)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h b/sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h
index 5500adff8b..d913dbb617 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h
@@ -1,5 +1,5 @@
 /* Low-level statistical profiling support function.  Linux/s390 version.
-   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2001, 2002 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,5 +23,5 @@
 static void
 profil_counter (int signo, SIGCONTEXT scp)
 {
-  profile_count((void *) ((unsigned long) GET_PC (scp) & 0x7fffffffUL));
+  profil_count((void *) ((unsigned long) GET_PC (scp) & 0x7fffffffUL));
 }
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Makefile b/sysdeps/unix/sysv/linux/s390/s390-64/Makefile
index e3c048b5a4..e4ed635725 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/Makefile
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/Makefile
@@ -2,3 +2,11 @@ ifeq ($(subdir),misc)
 sysdep_routines += setfsgid setfsuid setresgid setresuid
 sysdep_headers += sys/elf.h
 endif
+
+ifeq ($(subdir),elf)
+ifeq (yes,$(build-shared))
+# This is needed to support g++ v2 and v3.
+sysdep_routines += framestate
+shared-only-routines += framestate
+endif
+endif
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
new file mode 100644
index 0000000000..83092db48e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
@@ -0,0 +1,7 @@
+libc {
+  GLIBC_2.2 {
+    # Exception handling support functions from libgcc
+    __register_frame; __register_frame_table; __deregister_frame;
+    __frame_state_for; __register_frame_info_table;
+  }
+}
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h b/sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h
index 3ff76479e1..1df6871813 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h
@@ -1,5 +1,5 @@
 /* Bit values & structures for resource limits.  64 bit S/390 version.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002 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
@@ -76,7 +76,12 @@ enum __rlimit_resource
   RLIMIT_AS = 9,
 #define RLIMIT_AS RLIMIT_AS
 
-  RLIM_NLIMITS = 10
+  /* Maximum number of file locks.  */
+  RLIMIT_LOCKS = 10,
+#define RLIMIT_LOCKS RLIMIT_LOCKS
+
+  RLIMIT_NLIMITS = 11,
+  RLIM_NLIMITS = RLIMIT_NLIMITS
 #define RLIMIT_NLIMITS RLIMIT_NLIMITS
 #define RLIM_NLIMITS RLIM_NLIMITS
 };
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S b/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
index f409fb5d02..992cb2f10f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
@@ -53,3 +53,4 @@ thread_start:
 #endif
 	jg	_exit@PLT	/* branch to _exit -> thread termination */
 PSEUDO_END (__clone)
+weak_alias (__clone, clone)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/mmap.S b/sysdeps/unix/sysv/linux/s390/s390-64/mmap.S
index 6002fd12c0..23205901d4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/mmap.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/mmap.S
@@ -64,4 +64,4 @@ PSEUDO_END (__mmap)
 
 weak_alias (__mmap, mmap)
 weak_alias (__mmap, mmap64)
-
+weak_alias (__mmap, __mmap64)