123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347 |
- 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)
|