diff options
Diffstat (limited to 'toolchain/uclibc/patches/0.9.34-git/0003-linuxthreads-remove-unused-s390-code.patch')
-rw-r--r-- | toolchain/uclibc/patches/0.9.34-git/0003-linuxthreads-remove-unused-s390-code.patch | 1347 |
1 files changed, 0 insertions, 1347 deletions
diff --git a/toolchain/uclibc/patches/0.9.34-git/0003-linuxthreads-remove-unused-s390-code.patch b/toolchain/uclibc/patches/0.9.34-git/0003-linuxthreads-remove-unused-s390-code.patch deleted file mode 100644 index b5712393d..000000000 --- a/toolchain/uclibc/patches/0.9.34-git/0003-linuxthreads-remove-unused-s390-code.patch +++ /dev/null @@ -1,1347 +0,0 @@ -From 0072d1730591edbbcee79f93d54b66ffbd57a02b Mon Sep 17 00:00:00 2001 -From: Waldemar Brodkorb <wbx@openadk.org> -Date: Sat, 6 Sep 2014 14:45:42 +0200 -Subject: [PATCH 3/6] linuxthreads: remove unused s390 code - -Cleanup linuxthreads by removing unused s390 code. - -Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> ---- - libc/stdlib/system.c | 3 - - libpthread/linuxthreads/sysdeps/s390/pspinlock.c | 90 ------------ - .../linuxthreads/sysdeps/s390/s390-32/pt-machine.h | 119 ---------------- - .../linuxthreads/sysdeps/s390/s390-64/pt-machine.h | 124 ----------------- - .../linuxthreads/sysdeps/s390/tcb-offsets.sym | 4 - - libpthread/linuxthreads/sysdeps/s390/tls.h | 144 ------------------- - .../sysdeps/unix/sysv/linux/s390/bits/typesizes.h | 71 ---------- - .../unix/sysv/linux/s390/s390-32/pt-initfini.c | 153 --------------------- - .../unix/sysv/linux/s390/s390-32/sysdep-cancel.h | 136 ------------------ - .../sysdeps/unix/sysv/linux/s390/s390-32/vfork.S | 68 --------- - .../unix/sysv/linux/s390/s390-64/pt-initfini.c | 136 ------------------ - .../unix/sysv/linux/s390/s390-64/pt-sigsuspend.c | 1 - - .../unix/sysv/linux/s390/s390-64/sysdep-cancel.h | 115 ---------------- - .../sysdeps/unix/sysv/linux/s390/s390-64/vfork.S | 53 ------- - 14 files changed, 1217 deletions(-) - delete mode 100644 libpthread/linuxthreads/sysdeps/s390/pspinlock.c - delete mode 100644 libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h - delete mode 100644 libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h - delete mode 100644 libpthread/linuxthreads/sysdeps/s390/tcb-offsets.sym - delete mode 100644 libpthread/linuxthreads/sysdeps/s390/tls.h - delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h - delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c - delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h - delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S - delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c - delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c - delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h - delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S - -diff --git a/libc/stdlib/system.c b/libc/stdlib/system.c -index 8c5d25d..05b6738 100644 ---- a/libc/stdlib/system.c -+++ b/libc/stdlib/system.c -@@ -91,9 +91,6 @@ libc_hidden_proto(waitpid) - #elif defined __sparc__ - # define FORK() \ - INLINE_CLONE_SYSCALL (CLONE_PARENT_SETTID | SIGCHLD, 0, &pid, NULL, NULL) --#elif defined __s390__ --# define FORK() \ -- INLINE_SYSCALL (clone, 3, 0, CLONE_PARENT_SETTID | SIGCHLD, &pid) - #else - # define FORK() \ - INLINE_SYSCALL (clone, 3, CLONE_PARENT_SETTID | SIGCHLD, 0, &pid) -diff --git a/libpthread/linuxthreads/sysdeps/s390/pspinlock.c b/libpthread/linuxthreads/sysdeps/s390/pspinlock.c -deleted file mode 100644 -index be75786..0000000 ---- a/libpthread/linuxthreads/sysdeps/s390/pspinlock.c -+++ /dev/null -@@ -1,90 +0,0 @@ --/* POSIX spinlock implementation. S/390 version. -- Copyright (C) 2000, 2004 Free Software Foundation, Inc. -- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -- 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; see the file COPYING.LIB. If -- not, see <http://www.gnu.org/licenses/>. */ -- --#include <errno.h> --#include <pthread.h> --#include "internals.h" -- --/* This implementation is similar to the one used in the Linux kernel. -- But the kernel is byte instructions for the memory access. This is -- faster but unusable here. The problem is that only 128 -- threads/processes could use the spinlock at the same time. If (by -- a design error in the program) a thread/process would hold the -- spinlock for a time long enough to accumulate 128 waiting -- processes, the next one will find a positive value in the spinlock -- and assume it is unlocked. We cannot accept that. */ -- --int --__pthread_spin_lock (pthread_spinlock_t *lock) --{ -- __asm__ __volatile__(" basr 1,0\n" -- "0: slr 0,0\n" -- " cs 0,1,%1\n" -- " jl 0b\n" -- : "=m" (*lock) -- : "m" (*lock) : "0", "1", "cc" ); -- return 0; --} --weak_alias (__pthread_spin_lock, pthread_spin_lock) -- --int --__pthread_spin_trylock (pthread_spinlock_t *lock) --{ -- int oldval; -- -- __asm__ __volatile__(" slr %1,%1\n" -- " basr 1,0\n" -- "0: cs %1,1,%0" -- : "=m" (*lock), "=&d" (oldval) -- : "m" (*lock) : "1", "cc" ); -- return oldval == 0 ? 0 : EBUSY; --} --weak_alias (__pthread_spin_trylock, pthread_spin_trylock) -- -- --int --__pthread_spin_unlock (pthread_spinlock_t *lock) --{ -- __asm__ __volatile__(" xc 0(4,%0),0(%0)\n" -- " bcr 15,0" -- : : "a" (lock) : "memory" ); -- return 0; --} --weak_alias (__pthread_spin_unlock, pthread_spin_unlock) -- -- --int --__pthread_spin_init (pthread_spinlock_t *lock, int pshared) --{ -- /* We can ignore the `pshared' parameter. Since we are busy-waiting -- all processes which can access the memory location `lock' points -- to can use the spinlock. */ -- *lock = 0; -- return 0; --} --weak_alias (__pthread_spin_init, pthread_spin_init) -- -- --int --__pthread_spin_destroy (pthread_spinlock_t *lock) --{ -- /* Nothing to do. */ -- return 0; --} --weak_alias (__pthread_spin_destroy, pthread_spin_destroy) -diff --git a/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h b/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h -deleted file mode 100644 -index 51505a9..0000000 ---- a/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h -+++ /dev/null -@@ -1,119 +0,0 @@ --/* Machine-dependent pthreads configuration and inline functions. -- S390 version. -- Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -- 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; see the file COPYING.LIB. If -- not, see <http://www.gnu.org/licenses/>. */ -- --#ifndef _PT_MACHINE_H --#define _PT_MACHINE_H 1 -- --#ifndef PT_EI --# define PT_EI __extern_always_inline --#endif -- --extern long int testandset (int *spinlock); --extern int __compare_and_swap (long int *p, long int oldval, long int newval); -- --/* For multiprocessor systems, we want to ensure all memory accesses -- are completed before we reset a lock. On other systems, we still -- need to make sure that the compiler has flushed everything to memory. */ --#define MEMORY_BARRIER() __asm__ __volatile__ ("bcr 15,0" : : : "memory") -- --/* Spinlock implementation; required. */ --PT_EI long int --testandset (int *spinlock) --{ -- int ret; -- -- __asm__ __volatile__( -- " la 1,%1\n" -- " lhi 0,1\n" -- " l %0,%1\n" -- "0: cs %0,0,0(1)\n" -- " jl 0b" -- : "=&d" (ret), "+m" (*spinlock) -- : : "0", "1", "cc"); -- -- return ret; --} -- -- --/* Get some notion of the current stack. Need not be exactly the top -- of the stack, just something somewhere in the current frame. */ --#define CURRENT_STACK_FRAME stack_pointer --register char * stack_pointer __asm__ ("15"); -- --#ifdef __UCLIBC_HAS_TLS__ --/* Return the thread descriptor for the current thread. */ --# define THREAD_SELF ((pthread_descr) __builtin_thread_pointer ()) -- --/* Initialize the thread-unique value. */ --#define INIT_THREAD_SELF(descr, nr) __builtin_set_thread_pointer (descr) --#else --/* Return the thread descriptor for the current thread. -- S/390 registers uses access register 0 as "thread register". */ --#define THREAD_SELF ({ \ -- register pthread_descr __self; \ -- __asm__ ("ear %0,%%a0" : "=d" (__self) ); \ -- __self; \ --}) -- --/* Initialize the thread-unique value. */ --#define INIT_THREAD_SELF(descr, nr) ({ \ -- __asm__ ("sar %%a0,%0" : : "d" (descr) ); \ --}) --#endif -- --/* Access to data in the thread descriptor is easy. */ --#define THREAD_GETMEM(descr, member) \ -- ((void) sizeof (descr), THREAD_SELF->member) --#define THREAD_GETMEM_NC(descr, member) \ -- ((void) sizeof (descr), THREAD_SELF->member) --#define THREAD_SETMEM(descr, member, value) \ -- ((void) sizeof (descr), THREAD_SELF->member = (value)) --#define THREAD_SETMEM_NC(descr, member, value) \ -- ((void) sizeof (descr), THREAD_SELF->member = (value)) -- --/* We want the OS to assign stack addresses. */ --#define FLOATING_STACKS 1 -- --/* Maximum size of the stack if the rlimit is unlimited. */ --#define ARCH_STACK_MAX_SIZE 8*1024*1024 -- --/* Compare-and-swap for semaphores. */ -- --#define HAS_COMPARE_AND_SWAP -- --PT_EI int --__compare_and_swap(long int *p, long int oldval, long int newval) --{ -- int retval; -- -- __asm__ __volatile__( -- " la 1,%1\n" -- " lr 0,%2\n" -- " cs 0,%3,0(1)\n" -- " ipm %0\n" -- " srl %0,28\n" -- "0:" -- : "=&d" (retval), "+m" (*p) -- : "d" (oldval) , "d" (newval) -- : "cc", "0", "1" ); -- return retval == 0; --} -- --#endif /* pt-machine.h */ -diff --git a/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h b/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h -deleted file mode 100644 -index 4bff85a..0000000 ---- a/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h -+++ /dev/null -@@ -1,124 +0,0 @@ --/* Machine-dependent pthreads configuration and inline functions. -- 64 bit S/390 version. -- Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. -- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -- 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; see the file COPYING.LIB. If -- not, see <http://www.gnu.org/licenses/>. */ -- --#ifndef _PT_MACHINE_H --#define _PT_MACHINE_H 1 -- --#ifndef PT_EI --# define PT_EI __extern_always_inline --#endif -- --extern long int testandset (int *spinlock); --extern int __compare_and_swap (long int *p, long int oldval, long int newval); -- --/* For multiprocessor systems, we want to ensure all memory accesses -- are completed before we reset a lock. On other systems, we still -- need to make sure that the compiler has flushed everything to memory. */ --#define MEMORY_BARRIER() __asm__ __volatile__ ("bcr 15,0" : : : "memory") -- --/* Spinlock implementation; required. */ --PT_EI long int --testandset (int *spinlock) --{ -- int ret; -- -- __asm__ __volatile__( -- " la 1,%1\n" -- " lhi 0,1\n" -- " l %0,%1\n" -- "0: cs %0,0,0(1)\n" -- " jl 0b" -- : "=&d" (ret), "+m" (*spinlock) -- : : "0", "1", "cc"); -- -- return ret; --} -- -- --/* Get some notion of the current stack. Need not be exactly the top -- of the stack, just something somewhere in the current frame. */ --#define CURRENT_STACK_FRAME stack_pointer --register char * stack_pointer __asm__ ("15"); -- --#ifdef __UCLIBC_HAS_TLS__ --/* Return the thread descriptor for the current thread. */ --# define THREAD_SELF ((pthread_descr) __builtin_thread_pointer ()) -- --/* Initialize the thread-unique value. */ --#define INIT_THREAD_SELF(descr, nr) __builtin_set_thread_pointer (descr) --#else --/* Return the thread descriptor for the current thread. -- 64 bit S/390 uses access register 0 and 1 as "thread register". */ --#define THREAD_SELF ({ \ -- register pthread_descr __self; \ -- __asm__ (" ear %0,%%a0\n" \ -- " sllg %0,%0,32\n" \ -- " ear %0,%%a1\n" \ -- : "=d" (__self) ); \ -- __self; \ --}) -- --/* Initialize the thread-unique value. */ --#define INIT_THREAD_SELF(descr, nr) ({ \ -- __asm__ (" sar %%a1,%0\n" \ -- " srlg 0,%0,32\n" \ -- " sar %%a0,0\n" \ -- : : "d" (descr) : "0" ); \ --}) --#endif -- --/* Access to data in the thread descriptor is easy. */ --#define THREAD_GETMEM(descr, member) \ -- ((void) sizeof (descr), THREAD_SELF->member) --#define THREAD_GETMEM_NC(descr, member) \ -- ((void) sizeof (descr), THREAD_SELF->member) --#define THREAD_SETMEM(descr, member, value) \ -- ((void) sizeof (descr), THREAD_SELF->member = (value)) --#define THREAD_SETMEM_NC(descr, member, value) \ -- ((void) sizeof (descr), THREAD_SELF->member = (value)) -- --/* We want the OS to assign stack addresses. */ --#define FLOATING_STACKS 1 -- --/* Maximum size of the stack if the rlimit is unlimited. */ --#define ARCH_STACK_MAX_SIZE 8*1024*1024 -- --/* Compare-and-swap for semaphores. */ -- --#define HAS_COMPARE_AND_SWAP -- --PT_EI int --__compare_and_swap(long int *p, long int oldval, long int newval) --{ -- int retval; -- -- __asm__ __volatile__( -- " lgr 0,%2\n" -- " csg 0,%3,%1\n" -- " ipm %0\n" -- " srl %0,28\n" -- "0:" -- : "=&d" (retval), "+m" (*p) -- : "d" (oldval) , "d" (newval) -- : "cc", "0"); -- return retval == 0; --} -- --#endif /* pt-machine.h */ -diff --git a/libpthread/linuxthreads/sysdeps/s390/tcb-offsets.sym b/libpthread/linuxthreads/sysdeps/s390/tcb-offsets.sym -deleted file mode 100644 -index aee6be2..0000000 ---- a/libpthread/linuxthreads/sysdeps/s390/tcb-offsets.sym -+++ /dev/null -@@ -1,4 +0,0 @@ --#include <sysdep.h> --#include <tls.h> -- --MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads) -diff --git a/libpthread/linuxthreads/sysdeps/s390/tls.h b/libpthread/linuxthreads/sysdeps/s390/tls.h -deleted file mode 100644 -index d987bdb..0000000 ---- a/libpthread/linuxthreads/sysdeps/s390/tls.h -+++ /dev/null -@@ -1,144 +0,0 @@ --/* Definitions for thread-local data handling. linuxthreads/s390 version. -- Copyright (C) 2002, 2003, 2005 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 _TLS_H --#define _TLS_H -- --#ifndef __ASSEMBLER__ -- --# include <pt-machine.h> --# include <stdbool.h> --# include <stddef.h> -- --/* Type for the dtv. */ --typedef union dtv --{ -- size_t counter; -- struct -- { -- void *val; -- bool is_static; -- } pointer; --} dtv_t; -- --typedef struct --{ -- void *tcb; /* Pointer to the TCB. Not necessary the -- thread descriptor used by libpthread. */ -- dtv_t *dtv; -- void *self; /* Pointer to the thread descriptor. */ -- int multiple_threads; --} tcbhead_t; -- --#else /* __ASSEMBLER__ */ --# include <tcb-offsets.h> --#endif /* __ASSEMBLER__ */ -- --/* TLS is always supported if the tools support it. There are no -- kernel dependencies. To avoid bothering with the TLS support code -- at all, use configure --without-tls. -- -- We need USE_TLS to be consistently defined, for ldsodefs.h -- conditionals. */ -- --#ifdef HAVE_TLS_SUPPORT -- --/* Signal that TLS support is available. */ --# define USE_TLS 1 -- --# ifndef __ASSEMBLER__ --/* Get system call information. */ --# include <sysdep.h> -- -- --/* Get the thread descriptor definition. */ --# include <linuxthreads/descr.h> -- --/* This is the size of the initial TCB. */ --# define TLS_INIT_TCB_SIZE sizeof (tcbhead_t) -- --/* Alignment requirements for the initial TCB. */ --# define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t) -- --/* This is the size of the TCB. */ --# define TLS_TCB_SIZE sizeof (struct _pthread_descr_struct) -- --/* Alignment requirements for the TCB. */ --# define TLS_TCB_ALIGN __alignof__ (struct _pthread_descr_struct) -- --/* The TCB can have any size and the memory following the address the -- thread pointer points to is unspecified. Allocate the TCB there. */ --# define TLS_TCB_AT_TP 1 -- -- --/* Install the dtv pointer. The pointer passed is to the element with -- index -1 which contain the length. */ --# define INSTALL_DTV(descr, dtvp) \ -- ((tcbhead_t *) (descr))->dtv = (dtvp) + 1 -- --/* Install new dtv for current thread. */ --# define INSTALL_NEW_DTV(dtv) \ -- (((tcbhead_t *) __builtin_thread_pointer ())->dtv = (dtv)) -- --/* Return dtv of given thread descriptor. */ --# define GET_DTV(descr) \ -- (((tcbhead_t *) (descr))->dtv) -- --/* Code to initially initialize the thread pointer. This might need -- special attention since 'errno' is not yet available and if the -- operation can cause a failure 'errno' must not be touched. -- -- The value of this macro is null if successful, or an error string. */ --# define TLS_INIT_TP(descr, secondcall) \ -- ({ \ -- void *_descr = (descr); \ -- tcbhead_t *head = _descr; \ -- \ -- head->tcb = _descr; \ -- /* For now the thread descriptor is at the same address. */ \ -- head->self = _descr; \ -- \ -- __builtin_set_thread_pointer (_descr); \ -- NULL; \ -- }) -- --/* Return the address of the dtv for the current thread. */ --# define THREAD_DTV() \ -- (((tcbhead_t *) __builtin_thread_pointer ())->dtv) -- --# endif /* __ASSEMBLER__ */ -- --#else /* HAVE_TLS_SUPPORT && (FLOATING_STACKS || !IS_IN_libpthread) */ -- --# ifndef __ASSEMBLER__ -- --/* Get the thread descriptor definition. */ --# include <linuxthreads/descr.h> -- --# define NONTLS_INIT_TP \ -- do { \ -- static const tcbhead_t nontls_init_tp \ -- = { .multiple_threads = 0 }; \ -- INIT_THREAD_SELF (&nontls_init_tp, 0); \ -- } while (0) -- --# endif /* __ASSEMBLER__ */ -- --#endif /* HAVE_TLS_SUPPORT && (FLOATING_STACKS || !IS_IN_libpthread) */ -- --#endif /* tls.h */ -diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h -deleted file mode 100644 -index 6b58825..0000000 ---- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h -+++ /dev/null -@@ -1,71 +0,0 @@ --/* bits/typesizes.h -- underlying types for *_t. Linux/s390 version. -- Copyright (C) 2003 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 _BITS_TYPES_H --# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead." --#endif -- --#ifndef _BITS_TYPESIZES_H --#define _BITS_TYPESIZES_H 1 -- --/* See <bits/types.h> for the meaning of these macros. This file exists so -- that <bits/types.h> need not vary across different GNU platforms. */ -- --#define __DEV_T_TYPE __UQUAD_TYPE --#define __UID_T_TYPE __U32_TYPE --#define __GID_T_TYPE __U32_TYPE --#define __INO_T_TYPE __ULONGWORD_TYPE --#define __INO64_T_TYPE __UQUAD_TYPE --#define __MODE_T_TYPE __U32_TYPE --#define __NLINK_T_TYPE __UWORD_TYPE --#define __OFF_T_TYPE __SLONGWORD_TYPE --#define __OFF64_T_TYPE __SQUAD_TYPE --#define __PID_T_TYPE __S32_TYPE --#define __RLIM_T_TYPE __ULONGWORD_TYPE --#define __RLIM64_T_TYPE __UQUAD_TYPE --#define __BLKCNT_T_TYPE __SLONGWORD_TYPE --#define __BLKCNT64_T_TYPE __SQUAD_TYPE --#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE --#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE --#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE --#define __FSFILCNT64_T_TYPE __UQUAD_TYPE --#define __ID_T_TYPE __U32_TYPE --#define __CLOCK_T_TYPE __SLONGWORD_TYPE --#define __TIME_T_TYPE __SLONGWORD_TYPE --#define __USECONDS_T_TYPE __U32_TYPE --#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE --#define __DADDR_T_TYPE __S32_TYPE --#define __SWBLK_T_TYPE __SLONGWORD_TYPE --#define __KEY_T_TYPE __S32_TYPE --#define __CLOCKID_T_TYPE __S32_TYPE --#define __TIMER_T_TYPE __S32_TYPE --#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE --#define __FSID_T_TYPE struct { int __val[2]; } --#if defined __GNUC__ && __GNUC__ <= 2 --/* Compatibility with g++ 2.95.x. */ --#define __SSIZE_T_TYPE __SWORD_TYPE --#else --/* size_t is unsigned long int on s390 -m31. */ --#define __SSIZE_T_TYPE __SLONGWORD_TYPE --#endif -- --/* Number of descriptors that can fit in an `fd_set'. */ --#define __FD_SETSIZE 1024 -- -- --#endif /* bits/typesizes.h */ -diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c -deleted file mode 100644 -index cde4183..0000000 ---- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c -+++ /dev/null -@@ -1,153 +0,0 @@ --/* Special .init and .fini section support for S/390. -- Copyright (C) 2000, 2001 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. -- -- In addition to the permissions in the GNU Lesser General Public -- License, the Free Software Foundation gives you unlimited -- permission to link the compiled version of this file with other -- programs, and to distribute those programs without any restriction -- coming from the use of this file. (The Lesser General Public -- License restrictions do apply in other respects; for example, they -- cover modification of the file, and distribution when not linked -- into another program.) -- -- 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; see the file COPYING.LIB. If not, -- see <http://www.gnu.org/licenses/>. */ -- --/* This file is compiled into assembly code which is then munged by a sed -- script into two files: crti.s and crtn.s. -- -- * crti.s puts a function prologue at the beginning of the -- .init and .fini sections and defines global symbols for -- those addresses, so they can be called as functions. -- -- * crtn.s puts the corresponding function epilogues -- in the .init and .fini sections. */ -- --__asm__ ("\ --\n\ --#include \"defs.h\"\n\ --\n\ --/*@HEADER_ENDS*/\n\ --\n\ --/*@TESTS_BEGIN*/\n\ --\n\ --/*@TESTS_END*/\n\ --\n\ --/*@_init_PROLOG_BEGINS*/\n\ --\n\ -- .section .init\n\ --#NO_APP\n\ -- .align 4\n\ --.globl _init\n\ -- .type _init,@function\n\ --_init:\n\ --# leaf function 0\n\ --# automatics 0\n\ --# outgoing args 0\n\ --# need frame pointer 0\n\ --# call alloca 0\n\ --# has varargs 0\n\ --# incoming args (stack) 0\n\ --# function length 36\n\ -- STM 6,15,24(15)\n\ -- BRAS 13,.LTN1_0\n\ --.LT1_0:\n\ --.LC13:\n\ -- .long __pthread_initialize_minimal@PLT-.LT1_0\n\ --.LC14:\n\ -- .long __gmon_start__@GOT\n\ --.LC15:\n\ -- .long _GLOBAL_OFFSET_TABLE_-.LT1_0\n\ --.LTN1_0:\n\ -- LR 1,15\n\ -- AHI 15,-96\n\ -- ST 1,0(15)\n\ -- L 12,.LC15-.LT1_0(13)\n\ -- AR 12,13\n\ -- L 1,.LC13-.LT1_0(13)\n\ -- LA 1,0(1,13)\n\ -- BASR 14,1\n\ -- L 1,.LC14-.LT1_0(13)\n\ -- L 1,0(1,12)\n\ -- LTR 1,1\n\ -- JE .L22\n\ -- BASR 14,1\n\ --.L22:\n\ --#APP\n\ -- .align 4,0x07\n\ -- END_INIT\n\ --\n\ --/*@_init_PROLOG_ENDS*/\n\ --\n\ --/*@_init_EPILOG_BEGINS*/\n\ -- .align 4\n\ -- .section .init\n\ --#NO_APP\n\ -- .align 4\n\ -- L 4,152(15)\n\ -- LM 6,15,120(15)\n\ -- BR 4\n\ --#APP\n\ -- END_INIT\n\ --\n\ --/*@_init_EPILOG_ENDS*/\n\ --\n\ --/*@_fini_PROLOG_BEGINS*/\n\ -- .section .fini\n\ --#NO_APP\n\ -- .align 4\n\ --.globl _fini\n\ -- .type _fini,@function\n\ --_fini:\n\ --# leaf function 0\n\ --# automatics 0\n\ --# outgoing args 0\n\ --# need frame pointer 0\n\ --# call alloca 0\n\ --# has varargs 0\n\ --# incoming args (stack) 0\n\ --# function length 30\n\ -- STM 6,15,24(15)\n\ -- BRAS 13,.LTN2_0\n\ --.LT2_0:\n\ --.LC17:\n\ -- .long _GLOBAL_OFFSET_TABLE_-.LT2_0\n\ --.LTN2_0:\n\ -- LR 1,15\n\ -- AHI 15,-96\n\ -- ST 1,0(15)\n\ -- L 12,.LC17-.LT2_0(13)\n\ -- AR 12,13\n\ --#APP\n\ -- .align 4,0x07\n\ -- END_FINI\n\ --\n\ --/*@_fini_PROLOG_ENDS*/\n\ --\n\ --/*@_fini_EPILOG_BEGINS*/\n\ -- .align 4\n\ -- .section .fini\n\ --#NO_APP\n\ -- .align 4\n\ -- L 4,152(15)\n\ -- LM 6,15,120(15)\n\ -- BR 4\n\ --#APP\n\ -- END_FINI\n\ --\n\ --/*@_fini_EPILOG_ENDS*/\n\ --\n\ --/*@TRAILER_BEGINS*/\ --"); -diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h -deleted file mode 100644 -index 2431129..0000000 ---- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h -+++ /dev/null -@@ -1,136 +0,0 @@ --/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. -- -- 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 <linuxthreads/internals.h> --#endif -- --#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt -- --# if !defined NOT_IN_libc || defined IS_IN_libpthread -- --# define PSEUDO_CANCEL(name, syscall_name, args) \ --L(pseudo_cancel): \ -- STM_##args \ -- stm %r12,%r15,48(%r15); \ -- lr %r14,%r15; \ -- ahi %r15,-96; \ -- st %r14,0(%r15); \ -- basr %r13,0; \ --0: l %r1,1f-0b(%r13); \ -- bas %r14,0(%r1,%r13); \ -- lr %r0,%r2; \ -- LM_##args \ -- DO_CALL(syscall_name, args); \ -- l %r1,2f-0b(%r13); \ -- lr %r12,%r2; \ -- lr %r2,%r0; \ -- bas %r14,0(%r1,%r13); \ -- lr %r2,%r12; \ -- lm %r12,%r15,48+96(%r15); \ -- j L(pseudo_check); \ --1: .long CENABLE-0b; \ --2: .long CDISABLE-0b; -- --# else /* !libc.so && !libpthread.so */ -- --# define PSEUDO_CANCEL(name, syscall_name, args) \ --L(pseudo_cancel): \ -- STM_##args \ -- stm %r11,%r15,44(%r15); \ -- lr %r14,%r15; \ -- ahi %r15,-96; \ -- st %r14,0(%r15); \ -- basr %r13,0; \ --0: l %r12,3f-0b(%r13); \ -- l %r1,1f-0b(%r13); \ -- la %r12,0(%r12,%r13); \ -- bas %r14,0(%r1,%r13); \ -- lr %r0,%r2; \ -- LM_##args \ -- DO_CALL(syscall_name, args); \ -- l %r1,2f-0b(%r13); \ -- lr %r11,%r2; \ -- lr %r2,%r0; \ -- bas %r14,0(%r1,%r13); \ -- lr %r2,%r11; \ -- lm %r11,%r15,44+96(%r15); \ -- j L(pseudo_check); \ --1: .long CENABLE@PLT-0b; \ --2: .long CDISABLE@PLT-0b; \ --3: .long _GLOBAL_OFFSET_TABLE_-0b; -- --# endif -- --# undef PSEUDO --# define PSEUDO(name, syscall_name, args) \ -- .text; \ --PSEUDO_CANCEL(name, syscall_name, args) \ --ENTRY(name) \ -- SINGLE_THREAD_P(%r1) \ -- jne L(pseudo_cancel); \ -- DO_CALL(syscall_name, args); \ --L(pseudo_check): \ -- lhi %r4,-4095; \ -- clr %r2,%r4; \ -- jnl SYSCALL_ERROR_LABEL; \ --L(pseudo_end): -- --# ifdef IS_IN_libpthread --# define CENABLE __pthread_enable_asynccancel --# define CDISABLE __pthread_disable_asynccancel --# elif !defined NOT_IN_libc --# define CENABLE __libc_enable_asynccancel --# define CDISABLE __libc_disable_asynccancel --# else --# define CENABLE __librt_enable_asynccancel --# define CDISABLE __librt_disable_asynccancel --# endif -- --#define STM_0 /* Nothing */ --#define STM_1 st %r2,8(%r15); --#define STM_2 stm %r2,%r3,8(%r15); --#define STM_3 stm %r2,%r4,8(%r15); --#define STM_4 stm %r2,%r5,8(%r15); --#define STM_5 stm %r2,%r5,8(%r15); -- --#define LM_0 /* Nothing */ --#define LM_1 l %r2,8+96(%r15); --#define LM_2 lm %r2,%r3,8+96(%r15); --#define LM_3 lm %r2,%r4,8+96(%r15); --#define LM_4 lm %r2,%r5,8+96(%r15); --#define LM_5 lm %r2,%r5,8+96(%r15); -- --# ifndef __ASSEMBLER__ --# define SINGLE_THREAD_P \ -- __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ -- p_header.data.multiple_threads) == 0, 1) --# else --# define SINGLE_THREAD_P(reg) \ -- ear reg,%a0; \ -- icm reg,15,MULTIPLE_THREADS_OFFSET(reg); --# endif -- --#elif !defined __ASSEMBLER__ -- --/* This code should never be used but we define it anyhow. */ --# define SINGLE_THREAD_P (1) -- --#endif -diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S -deleted file mode 100644 -index 078c730..0000000 ---- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S -+++ /dev/null -@@ -1,68 +0,0 @@ --/* Copyright (C) 2003 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com> -- -- 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> --#define _ERRNO_H 1 --#include <bits/errno.h> -- --/* Clone the calling process, but without copying the whole address space. -- The calling process is suspended until the new process exits or is -- replaced by a call to `execve'. Return -1 for errors, 0 to the new process, -- and the process ID of the new process to the old process. */ -- --ENTRY (__vfork) -- basr %r1,0 --0: --#ifdef SHARED -- al %r1,4f-0b(%r1) -- l %r1,0(%r1) -- ltr %r1,%r1 --#else -- icm %r1,15,4f-0b(%r1) --#endif -- jne 1f -- -- /* Do vfork system call. */ -- svc SYS_ify (vfork) -- -- /* Check for error. */ -- lhi %r4,-4095 -- clr %r2,%r4 -- jnl SYSCALL_ERROR_LABEL -- -- /* Normal return. */ -- br %r14 --1: -- basr %r1,0 --2: -- al %r1,3f-2b(%r1) -- br %r1 --3: -- .long HIDDEN_JUMPTARGET(fork)-2b --4: --#ifdef SHARED -- .long __libc_pthread_functions-0b --#else -- .weak pthread_create -- .long pthread_create --#endif --PSEUDO_END(__vfork) -- --libc_hidden_def (__vfork) -- --weak_alias (__vfork, vfork) -diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c -deleted file mode 100644 -index 136ce54..0000000 ---- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c -+++ /dev/null -@@ -1,136 +0,0 @@ --/* Special .init and .fini section support for 64 bit S/390. -- Copyright (C) 2001 Free Software Foundation, Inc. -- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -- 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. -- -- In addition to the permissions in the GNU Lesser General Public -- License, the Free Software Foundation gives you unlimited -- permission to link the compiled version of this file with other -- programs, and to distribute those programs without any restriction -- coming from the use of this file. (The Lesser General Public -- License restrictions do apply in other respects; for example, they -- cover modification of the file, and distribution when not linked -- into another program.) -- -- 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; see the file COPYING.LIB. If not, -- see <http://www.gnu.org/licenses/>. */ -- --/* This file is compiled into assembly code which is then munged by a sed -- script into two files: crti.s and crtn.s. -- -- * crti.s puts a function prologue at the beginning of the -- .init and .fini sections and defines global symbols for -- those addresses, so they can be called as functions. -- -- * crtn.s puts the corresponding function epilogues -- in the .init and .fini sections. */ -- --__asm__ ("\ --\n\ --#include \"defs.h\"\n\ --\n\ --/*@HEADER_ENDS*/\n\ --\n\ --/*@TESTS_BEGIN*/\n\ --\n\ --/*@TESTS_END*/\n\ --\n\ --/*@_init_PROLOG_BEGINS*/\n\ --\n\ -- .section .init\n\ --#NO_APP\n\ -- .align 4\n\ --.globl _init\n\ -- .type _init,@function\n\ --_init:\n\ --# leaf function 0\n\ --# automatics 0\n\ --# outgoing args 0\n\ --# need frame pointer 0\n\ --# call alloca 0\n\ --# has varargs 0\n\ --# incoming args (stack) 0\n\ --# function length 36\n\ -- STMG 6,15,48(15)\n\ -- LGR 1,15\n\ -- AGHI 15,-160\n\ -- STG 1,0(15)\n\ -- LARL 12,_GLOBAL_OFFSET_TABLE_\n\ -- BRASL 14,__pthread_initialize_minimal@PLT\n\ -- LARL 1,__gmon_start__@GOTENT\n\ -- LG 1,0(1)\n\ -- LTGR 1,1\n\ -- JE .L22\n\ -- BASR 14,1\n\ --.L22:\n\ --#APP\n\ -- .align 4,0x07\n\ -- END_INIT\n\ --\n\ --/*@_init_PROLOG_ENDS*/\n\ --\n\ --/*@_init_EPILOG_BEGINS*/\n\ -- .align 4\n\ -- .section .init\n\ --#NO_APP\n\ -- .align 4\n\ -- LG 4,272(15)\n\ -- LMG 6,15,208(15)\n\ -- BR 4\n\ --#APP\n\ -- END_INIT\n\ --\n\ --/*@_init_EPILOG_ENDS*/\n\ --\n\ --/*@_fini_PROLOG_BEGINS*/\n\ -- .section .fini\n\ --#NO_APP\n\ -- .align 4\n\ --.globl _fini\n\ -- .type _fini,@function\n\ --_fini:\n\ --# leaf function 0\n\ --# automatics 0\n\ --# outgoing args 0\n\ --# need frame pointer 0\n\ --# call alloca 0\n\ --# has varargs 0\n\ --# incoming args (stack) 0\n\ --# function length 30\n\ -- STMG 6,15,48(15)\n\ -- LGR 1,15\n\ -- AGHI 15,-160\n\ -- STG 1,0(15)\n\ -- LARL 12,_GLOBAL_OFFSET_TABLE_\n\ --#APP\n\ -- .align 4,0x07\n\ -- END_FINI\n\ --\n\ --/*@_fini_PROLOG_ENDS*/\n\ --\n\ --/*@_fini_EPILOG_BEGINS*/\n\ -- .align 4\n\ -- .section .fini\n\ --#NO_APP\n\ -- .align 4\n\ -- LG 4,272(15)\n\ -- LMG 6,15,208(15)\n\ -- BR 4\n\ --#APP\n\ -- END_FINI\n\ --\n\ --/*@_fini_EPILOG_ENDS*/\n\ --\n\ --/*@TRAILER_BEGINS*/\n\ -- "); -diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c -deleted file mode 100644 -index d57283a..0000000 ---- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c -+++ /dev/null -@@ -1 +0,0 @@ --#include "../../ia64/pt-sigsuspend.c" -diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h -deleted file mode 100644 -index cf3124e..0000000 ---- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h -+++ /dev/null -@@ -1,115 +0,0 @@ --/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. -- -- 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 <linuxthreads/internals.h> --#endif -- --#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt -- --# undef PSEUDO --# define PSEUDO(name, syscall_name, args) \ -- .text; \ --L(pseudo_cancel): \ -- STM_##args \ -- stmg %r13,%r15,104(%r15); \ -- lgr %r14,%r15; \ -- aghi %r15,-160; \ -- stg %r14,0(%r15); \ -- brasl %r14,CENABLE; \ -- lgr %r0,%r2; \ -- LM_##args \ -- DO_CALL(syscall_name, args); \ -- lgr %r13,%r2; \ -- lgr %r2,%r0; \ -- brasl %r14,CDISABLE; \ -- lgr %r2,%r13; \ -- lmg %r13,%r15,104+160(%r15); \ -- j L(pseudo_check); \ --ENTRY(name) \ -- SINGLE_THREAD_P \ -- jne L(pseudo_cancel); \ -- DO_CALL(syscall_name, args); \ --L(pseudo_check): \ -- lghi %r4,-4095; \ -- clgr %r2,%r4; \ -- jgnl SYSCALL_ERROR_LABEL; \ --L(pseudo_end): -- --# ifdef IS_IN_libpthread --# define CENABLE __pthread_enable_asynccancel --# define CDISABLE __pthread_disable_asynccancel --# define __local_multiple_threads __pthread_multiple_threads --# elif !defined NOT_IN_libc --# define CENABLE __libc_enable_asynccancel --# define CDISABLE __libc_disable_asynccancel --# define __local_multiple_threads __libc_multiple_threads --# else --# define CENABLE __librt_enable_asynccancel@PLT --# define CDISABLE __librt_disable_asynccancel@PLT --# endif -- --#define STM_0 /* Nothing */ --#define STM_1 stg %r2,16(%r15); --#define STM_2 stmg %r2,%r3,16(%r15); --#define STM_3 stmg %r2,%r4,16(%r15); --#define STM_4 stmg %r2,%r5,16(%r15); --#define STM_5 stmg %r2,%r5,16(%r15); -- --#define LM_0 /* Nothing */ --#define LM_1 lg %r2,16+160(%r15); --#define LM_2 lmg %r2,%r3,16+160(%r15); --#define LM_3 lmg %r2,%r4,16+160(%r15); --#define LM_4 lmg %r2,%r5,16+160(%r15); --#define LM_5 lmg %r2,%r5,16+160(%r15); -- --# if !defined NOT_IN_libc || defined IS_IN_libpthread --# ifndef __ASSEMBLER__ --extern int __local_multiple_threads attribute_hidden; --# define SINGLE_THREAD_P \ -- __builtin_expect (__local_multiple_threads == 0, 1) --# else --# define SINGLE_THREAD_P \ -- larl %r1,__local_multiple_threads; \ -- icm %r0,15,0(%r1); --# endif -- --# else -- --# ifndef __ASSEMBLER__ --# define SINGLE_THREAD_P \ -- __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ -- p_header.data.multiple_threads) == 0, 1) --# else --# define SINGLE_THREAD_P \ -- ear %r1,%a0; \ -- sllg %r1,%r1,32; \ -- ear %r1,%a1; \ -- icm %r1,15,MULTIPLE_THREADS_OFFSET(%r1); --# endif -- --# endif -- --#elif !defined __ASSEMBLER__ -- --/* This code should never be used but we define it anyhow. */ --# define SINGLE_THREAD_P (1) -- --#endif -diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S -deleted file mode 100644 -index 109d4f6..0000000 ---- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S -+++ /dev/null -@@ -1,53 +0,0 @@ --/* Copyright (C) 2003 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com> -- -- 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> --#define _ERRNO_H 1 --#include <bits/errno.h> -- --/* Clone the calling process, but without copying the whole address space. -- The calling process is suspended until the new process exits or is -- replaced by a call to `execve'. Return -1 for errors, 0 to the new process, -- and the process ID of the new process to the old process. */ -- --ENTRY (__vfork) --#ifdef SHARED -- larl %r1,__libc_pthread_functions -- lg %r1,0(%r1) --#else -- .weak pthread_create -- larl %r1,pthread_create --#endif -- ltgr %r1,%r1 -- jgne HIDDEN_JUMPTARGET(fork) -- -- /* Do vfork system call. */ -- svc SYS_ify (vfork) -- -- /* Check for error. */ -- lghi %r4,-4095 -- clgr %r2,%r4 -- jgnl SYSCALL_ERROR_LABEL -- -- /* Normal return. */ -- br %r14 --PSEUDO_END(__vfork) -- --libc_hidden_def (__vfork) -- --weak_alias (__vfork, vfork) --- -1.8.5.2 (Apple Git-48) - |