about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/dl-tls.c2
-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
10 files changed, 37 insertions, 12 deletions
diff --git a/sysdeps/generic/dl-tls.c b/sysdeps/generic/dl-tls.c
index d5163c6325..5b4fdd8cf1 100644
--- a/sysdeps/generic/dl-tls.c
+++ b/sysdeps/generic/dl-tls.c
@@ -19,11 +19,11 @@
 
 #include <assert.h>
 
+#include <tls.h>
 
 /* We don't need any of this if TLS is not supported.  */
 #ifdef USE_TLS
 
-#include <tls.h>
 #include <dl-tls.h>
 #include <ldsodefs.h>
 
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)