HPPA: Transition to new non-addon NPTL.

Merge roland/nptl-hppa to master, update and test for hppa-linux-gnu.

This commit squashes and commits the work done by Roland McGrath on
roland/nptl-hppa to migrate hppa to the new non-addon NPTL. Some
additional tweaks were required for tcb-offsets.sym to work correctly
along with clone.S (unique to hppa).
This commit is contained in:
Carlos O'Donell 2014-09-07 16:18:06 -04:00
parent 21c83793a2
commit d83f0734e1
19 changed files with 42 additions and 29 deletions

View File

@ -1,3 +1,41 @@
2014-09-07 Roland McGrath <roland@hack.frob.com>
Carlos O'Donell <carlos@systemhalted.org>
* sysdeps/unix/sysv/linux/hppa/nptl/libc-lowlevellock.c: File removed.
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h: Moved ...
* sysdeps/unix/sysv/linux/hppa/lowlevellock.h: ... here.
* sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S: Moved ...
* sysdeps/unix/sysv/linux/hppa/pt-vfork.S: ... here.
* sysdeps/unix/sysv/linux/hppa/nptl/pthread.h: Moved ...
* sysdeps/unix/sysv/linux/hppa/pthread.h: ... here.
* sysdeps/unix/sysv/linux/hppa/nptl/pthreadP.h: Moved ...
* sysdeps/unix/sysv/linux/hppa/pthreadP.h: ... here.
* sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_broadcast.c: Moved ...
* sysdeps/unix/sysv/linux/hppa/pthread_cond_broadcast.c: ... here.
* sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_destroy.c: Moved ...
* sysdeps/unix/sysv/linux/hppa/pthread_cond_destroy.c: ... here.
* sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_init.c: Moved ...
* sysdeps/unix/sysv/linux/hppa/pthread_cond_init.c: ... here.
* sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_signal.c: Moved ...
* sysdeps/unix/sysv/linux/hppa/pthread_cond_signal.c: ... here.
* sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_timedwait.c: Moved ...
* sysdeps/unix/sysv/linux/hppa/pthread_cond_timedwait.c: ... here.
* sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_wait.c: Moved ...
* sysdeps/unix/sysv/linux/hppa/pthread_cond_wait.c: ... here.
* sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Moved ...
* sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h: ... here.
* sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h: Moved ...
* sysdeps/hppa/nptl/bits/pthreadtypes.h: ... here.
* sysdeps/unix/sysv/linux/hppa/nptl/bits/semaphore.h: Moved ...
* sysdeps/hppa/nptl/bits/semaphore.h: ... here.
* sysdeps/unix/sysv/linux/hppa/clone.S: Include <tcb-offsets.h>.
Deconditionalize the code that was previously under [RESET_PID].
* sysdeps/unix/sysv/linux/hppa/nptl/clone.S: File removed.
* sysdeps/unix/sysv/linux/hppa/arch-fork.h: New file.
* sysdeps/unix/sysv/linux/hppa/nptl/fork.c: File removed.
* sysdeps/hppa/nptl/tcb-offsets.sym: Include pthread.h and don't
include sysdep.h.
2014-09-08 Allan McRae <allan@archlinux.org>
* version.h (RELEASE): Set to "development".

View File

@ -1,4 +1,4 @@
#include <sysdep.h>
#include <pthread.h>
#include <tls.h>
RESULT offsetof (struct pthread, result)

View File

@ -1,4 +1,5 @@
/* Copyright (C) 2005-2014 Free Software Foundation, Inc.
/* ARCH_FORK definition for Linux fork implementation. HPPA version.
Copyright (C) 2005-2014 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
@ -29,5 +30,3 @@
INLINE_SYSCALL (clone, 5, \
CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
NULL, NULL, NULL, &THREAD_SELF->tid)
#include <nptl/sysdeps/unix/sysv/linux/fork.c>

View File

@ -24,6 +24,7 @@
#include <sysdep.h>
#define _ERRNO_H 1
#include <bits/errno.h>
#include <tcb-offsets.h>
/* Non-thread code calls __clone with the following parameters:
int clone(int (*fn)(void *arg),
@ -131,7 +132,6 @@ ENTRY(__clone)
ldwm -64(%sp), %r4
.LthreadStart:
#ifdef RESET_PID
# define CLONE_VM_BIT 23 /* 0x00000100 */
# define CLONE_THREAD_BIT 15 /* 0x00010000 */
/* Load original clone flags.
@ -150,7 +150,6 @@ ENTRY(__clone)
stw %ret0, PID_THREAD_OFFSET(%r26)
stw %ret0, TID_THREAD_OFFSET(%r26)
1:
#endif
/* Load up the arguments. */
ldw -60(%sp), %arg0
ldw -64(%sp), %r22

View File

@ -1,3 +0,0 @@
#define RESET_PID
#include <tcb-offsets.h>
#include "../clone.S"

View File

@ -1,20 +0,0 @@
/* low level locking for pthread library. Generic futex-using version.
Copyright (C) 2003-2014 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.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 "lowlevellock.c"