about summary refs log tree commit diff
path: root/linuxthreads
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2005-05-24 06:18:37 +0000
committerRoland McGrath <roland@gnu.org>2005-05-24 06:18:37 +0000
commitce9b3bc17a7abc5b729b9e2cc72eb207a3617328 (patch)
tree7ccac7afcfaae36311c75b36001588534184718f /linuxthreads
parent88b8441a81c7bc9414a97a0a123c09b6c724f80a (diff)
downloadglibc-ce9b3bc17a7abc5b729b9e2cc72eb207a3617328.tar.gz
glibc-ce9b3bc17a7abc5b729b9e2cc72eb207a3617328.tar.xz
glibc-ce9b3bc17a7abc5b729b9e2cc72eb207a3617328.zip
Move arm port to ports repository cvs/fedora-glibc-20050524T1606
2005-05-23  Roland McGrath  <roland@redhat.com>

	* sysdeps/arm, sysdeps/unix/arm, sysdeps/unix/sysv/linux/arm:
	Subdirectories moved to ports repository.
	* configure.in (base_machine): Remove arm* and thumb* patterns.
	* shlib-versions (arm.*-.*-linux.*): Remove this pattern.
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/sysdeps/arm/pspinlock.c82
-rw-r--r--linuxthreads/sysdeps/arm/pt-machine.h55
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h145
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S80
5 files changed, 5 insertions, 362 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index b37a40c3e7..24dbbd8f42 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,8 @@
+2005-05-23  Roland McGrath  <roland@redhat.com>
+
+	* sysdeps/arm, sysdeps/unix/sysv/linux/arm: Subdirectories moved to
+	ports repository.
+
 2005-05-23  Jakub Jelinek  <jakub@redhat.com>
 
 	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
diff --git a/linuxthreads/sysdeps/arm/pspinlock.c b/linuxthreads/sysdeps/arm/pspinlock.c
deleted file mode 100644
index 665e270b69..0000000000
--- a/linuxthreads/sysdeps/arm/pspinlock.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* POSIX spinlock implementation.  Arm version.
-   Copyright (C) 2000 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; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include "internals.h"
-
-
-int
-__pthread_spin_lock (pthread_spinlock_t *lock)
-{
-  unsigned int val;
-
-  do
-    asm volatile ("swp %0, %1, [%2]"
-		  : "=r" (val)
-		  : "0" (1), "r" (lock)
-		  : "memory");
-  while (val != 0);
-
-  return 0;
-}
-weak_alias (__pthread_spin_lock, pthread_spin_lock)
-
-
-int
-__pthread_spin_trylock (pthread_spinlock_t *lock)
-{
-  unsigned int val;
-
-  asm volatile ("swp %0, %1, [%2]"
-		: "=r" (val)
-		: "0" (1), "r" (lock)
-		: "memory");
-
-  return val ? EBUSY : 0;
-}
-weak_alias (__pthread_spin_trylock, pthread_spin_trylock)
-
-
-int
-__pthread_spin_unlock (pthread_spinlock_t *lock)
-{
-  return *lock = 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.  */
-  return *lock = 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/linuxthreads/sysdeps/arm/pt-machine.h b/linuxthreads/sysdeps/arm/pt-machine.h
deleted file mode 100644
index a4c2f314cb..0000000000
--- a/linuxthreads/sysdeps/arm/pt-machine.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Machine-dependent pthreads configuration and inline functions.
-   ARM version.
-   Copyright (C) 1997, 1998, 2000, 2002, 2003 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Philip Blundell <philb@gnu.org>.
-
-   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,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#ifndef _PT_MACHINE_H
-#define _PT_MACHINE_H   1
-
-#ifndef PT_EI
-# define PT_EI extern inline __attribute__ ((always_inline))
-#endif
-
-extern long int testandset (int *spinlock);
-extern int __compare_and_swap (long int *p, long int oldval, long int newval);
-
-/* This will not work on ARM1 or ARM2 because SWP is lacking on those
-   machines.  Unfortunately we have no way to detect this at compile
-   time; let's hope nobody tries to use one.  */
-
-/* Spinlock implementation; required.  */
-PT_EI long int
-testandset (int *spinlock)
-{
-  register unsigned int ret;
-
-  __asm__ __volatile__("swp %0, %1, [%2]"
-		       : "=r"(ret)
-		       : "0"(1), "r"(spinlock));
-
-  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__ ("sp");
-
-#endif /* pt-machine.h */
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h b/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
deleted file mode 100644
index 019bd54913..0000000000
--- a/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Phil Blundell <pb@nexus.co.uk>, 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, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <sysdep.h>
-#ifndef __ASSEMBLER__
-# include <linuxthreads/internals.h>
-#endif
-
-#if !defined NOT_IN_libc || defined IS_IN_libpthread
-
-/* We push lr onto the stack, so we have to use ldmib instead of ldmia
-   to find the saved arguments.  */
-# ifdef PIC
-#  undef DOARGS_5
-#  undef DOARGS_6
-#  undef DOARGS_7
-#  define DOARGS_5 str r4, [sp, $-4]!; ldr r4, [sp, $8];
-#  define DOARGS_6 mov ip, sp; stmfd sp!, {r4, r5}; ldmib ip, {r4, r5};
-#  define DOARGS_7 mov ip, sp; stmfd sp!, {r4, r5, r6}; ldmib ip, {r4, r5, r6};
-# endif
-
-# undef PSEUDO_RET
-# define PSEUDO_RET						        \
-    ldrcc pc, [sp], $4;						        \
-    ldr	lr, [sp], $4;							\
-    b PLTJMP(SYSCALL_ERROR)
-
-# undef PSEUDO
-# define PSEUDO(name, syscall_name, args)				\
-  .section ".text";							\
-    PSEUDO_PROLOGUE;							\
-  ENTRY (name);								\
-    SINGLE_THREAD_P_INT;						\
-    bne .Lpseudo_cancel;						\
-    DO_CALL (syscall_name, args);					\
-    cmn r0, $4096;							\
-    PSEUDO_RET_MOV;							\
-  .Lpseudo_cancel:							\
-    MAYBE_SAVE_LR;							\
-    DOCARGS_##args;	/* save syscall args around CENABLE.  */	\
-    CENABLE;								\
-    mov ip, r0;		/* put mask in safe place.  */			\
-    UNDOCARGS_##args;	/* restore syscall args.  */			\
-    swi SYS_ify (syscall_name);	/* do the call.  */			\
-    str r0, [sp, $-4]!; /* save syscall return value.  */		\
-    mov r0, ip;		/* get mask back.  */				\
-    CDISABLE;								\
-    ldr r0, [sp], $4;	/* retrieve return value.  */			\
-    UNDOC2ARGS_##args;	/* fix register damage.  */			\
-    cmn r0, $4096;
-
-# define DOCARGS_0
-# define UNDOCARGS_0
-# define UNDOC2ARGS_0
-
-# define DOCARGS_1	str r0, [sp, #-4]!;
-# define UNDOCARGS_1	ldr r0, [sp], #4;
-# define UNDOC2ARGS_1
-
-# define DOCARGS_2	str r1, [sp, #-4]!; str r0, [sp, #-4]!;
-# define UNDOCARGS_2	ldr r0, [sp], #4; ldr r1, [sp], #4;
-# define UNDOC2ARGS_2
-
-# define DOCARGS_3	str r2, [sp, #-4]!; str r1, [sp, #-4]!; str r0, [sp, #-4]!;
-# define UNDOCARGS_3	ldr r0, [sp], #4; ldr r1, [sp], #4; ldr r2, [sp], #4
-# define UNDOC2ARGS_3
-
-# define DOCARGS_4	stmfd sp!, {r0-r3}
-# define UNDOCARGS_4	ldmfd sp!, {r0-r3}
-# define UNDOC2ARGS_4
-
-# define DOCARGS_5	stmfd sp!, {r0-r3}
-# define UNDOCARGS_5	ldmfd sp, {r0-r3}; str r4, [sp, #-4]!; ldr r4, [sp, #24]
-# define UNDOC2ARGS_5   ldr r4, [sp], #20
-
-# ifdef IS_IN_libpthread
-#  define CENABLE	bl PLTJMP(__pthread_enable_asynccancel)
-#  define CDISABLE	bl PLTJMP(__pthread_disable_asynccancel)
-#  define __local_multiple_threads __pthread_multiple_threads
-# else
-#  define CENABLE	bl PLTJMP(__libc_enable_asynccancel)
-#  define CDISABLE	bl PLTJMP(__libc_disable_asynccancel)
-#  define __local_multiple_threads __libc_multiple_threads
-# endif
-
-# ifndef __ASSEMBLER__
-extern int __local_multiple_threads attribute_hidden;
-#  define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1)
-# else
-#  if !defined PIC
-#   define SINGLE_THREAD_P_INT						\
-  ldr ip, =__local_multiple_threads;					\
-  ldr ip, [ip];								\
-  teq ip, #0;
-#   define SINGLE_THREAD_P SINGLE_THREAD_P_INT
-#   define MAYBE_SAVE_LR						\
-  str lr, [sp, $-4]!;
-#   define PSEUDO_RET_MOV						\
-  RETINSTR(cc, lr);							\
-  b PLTJMP(SYSCALL_ERROR)
-#   define PSEUDO_PROLOGUE
-#  else
-#   define SINGLE_THREAD_P_PIC(reg)					\
-  ldr ip, 1b;								\
-  ldr reg, 2b;								\
-3:									\
-  add ip, pc, ip;							\
-  ldr ip, [ip, reg];							\
-  teq ip, #0;
-#   define SINGLE_THREAD_P_INT						\
-  str lr, [sp, $-4]!;							\
-  SINGLE_THREAD_P_PIC(lr)
-#   define SINGLE_THREAD_P						\
-  SINGLE_THREAD_P_INT;							\
-  ldr lr, [sp], $4
-#   define PSEUDO_PROLOGUE						\
-  1:  .word _GLOBAL_OFFSET_TABLE_ - 3f - 8;				\
-  2:  .word __local_multiple_threads(GOTOFF);
-#   define MAYBE_SAVE_LR	/* lr already saved */
-#   define PSEUDO_RET_MOV PSEUDO_RET
-#  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/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S b/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S
deleted file mode 100644
index 2708c701eb..0000000000
--- a/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Philip Blundell <philb@gnu.org>.
-
-   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, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <sysdep-cancel.h>
-#define _ERRNO_H	1
-#include <bits/errno.h>
-#include <kernel-features.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.  */
-
-	PSEUDO_PROLOGUE
-
-ENTRY (__vfork)
-
-#ifdef __NR_vfork
-
-#ifdef SHARED
-	ldr	ip, 1f
-	ldr	r0, 2f
-3:	add	ip, pc, ip
-	ldr	r0, [ip, r0]
-#else
-	ldr	r0, 1f
-#endif
-	movs	r0, r0
-	bne	HIDDEN_JUMPTARGET (__fork)
-		
-	swi	__NR_vfork
-	cmn	a1, #4096
-	RETINSTR(cc, lr)
-
-#ifndef __ASSUME_VFORK_SYSCALL
-	/* Check if vfork syscall is known at all.  */
-	cmn	a1, #ENOSYS
-	bne	PLTJMP(C_SYMBOL_NAME(__syscall_error))
-#endif
-
-#endif
-
-#ifndef __ASSUME_VFORK_SYSCALL
-	/* If we don't have vfork, fork is close enough.  */
-	swi	__NR_fork
-	cmn	a1, #4096
-	RETINSTR(cc, lr)
-#elif !defined __NR_vfork
-# error "__NR_vfork not available and __ASSUME_VFORK_SYSCALL defined"
-#endif
-    	b	PLTJMP(C_SYMBOL_NAME(__syscall_error))
-
-#ifdef SHARED
-1:	.word	_GLOBAL_OFFSET_TABLE_ - 3b - 8
-2:	.word	__libc_pthread_functions(GOTOFF)
-#else
-	.weak	pthread_create
-1:	.word	pthread_create
-#endif
-
-PSEUDO_END (__vfork)
-libc_hidden_def (__vfork)
-
-weak_alias (__vfork, vfork)