diff mbox

[uclibc-ng-devel] uClibc-ng - small C library for embedded systems branch master updated. v1.0.18-4-gd4d4f37

Message ID 20161004232022.D7770101A7@helium.openadk.org
State Not Applicable
Headers show

Commit Message

wbx Oct. 4, 2016, 11:20 p.m. UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".

The branch, master has been updated
       via  d4d4f37fda7fa57e57132ff2f0d735ce7cc2178e (commit)
       via  6884573b944c79b7d0049334eaa78dae2692b874 (commit)
      from  15186b99774df74cf8ab02acd1a3f0ffd4c54ca1 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit d4d4f37fda7fa57e57132ff2f0d735ce7cc2178e
Author: Waldemar Brodkorb <wbx@uclibc-ng.org>
Date:   Wed Sep 28 12:29:56 2016 +0200

    cleanup ppc port
    
    Remove powerpc64 bits as we only support powerpc32.

commit 6884573b944c79b7d0049334eaa78dae2692b874
Author: Waldemar Brodkorb <wbx@uclibc-ng.org>
Date:   Wed Sep 28 11:57:15 2016 +0200

    remove linux kernel 2.4 modules support

-----------------------------------------------------------------------

Summary of changes:
 extra/Configs/Config.in                            |  10 --
 libc/sysdeps/linux/common/Makefile.in              |   2 -
 libc/sysdeps/linux/common/create_module.c          |  52 ---------
 libc/sysdeps/linux/common/get_kernel_syms.c        |  16 ---
 libc/sysdeps/linux/common/query_module.c           |  16 ---
 libc/sysdeps/linux/common/stubs.c                  |   8 --
 libc/sysdeps/linux/powerpc/bits/syscalls.h         |   3 +-
 .../nptl/sysdeps/unix/sysv/linux/powerpc/clone.S   |  10 +-
 .../unix/sysv/linux/powerpc/powerpc32/clone.S      |   9 --
 .../sysv/linux/powerpc/powerpc32/sysdep-cancel.h   | 118 --------------------
 .../unix/sysv/linux/powerpc/powerpc32/vfork.S      |  57 ----------
 .../unix/sysv/linux/powerpc/powerpc64/clone.S      |   9 --
 .../sysv/linux/powerpc/powerpc64/sysdep-cancel.h   | 120 --------------------
 .../sysv/linux/powerpc/powerpc64/timer_create.c    |   1 -
 .../sysv/linux/powerpc/powerpc64/timer_delete.c    |   1 -
 .../sysv/linux/powerpc/powerpc64/timer_getoverr.c  |   1 -
 .../sysv/linux/powerpc/powerpc64/timer_gettime.c   |   1 -
 .../sysv/linux/powerpc/powerpc64/timer_settime.c   |   1 -
 .../unix/sysv/linux/powerpc/powerpc64/vfork.S      |  56 ----------
 .../unix/sysv/linux/powerpc/sysdep-cancel.h        | 121 ++++++++++++++++++++-
 .../nptl/sysdeps/unix/sysv/linux/powerpc/vfork.S   |  62 ++++++++++-
 21 files changed, 183 insertions(+), 491 deletions(-)
 delete mode 100644 libc/sysdeps/linux/common/create_module.c
 delete mode 100644 libc/sysdeps/linux/common/get_kernel_syms.c
 delete mode 100644 libc/sysdeps/linux/common/query_module.c
 delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
 delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
 delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
 delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
 delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
 delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c
 delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c
 delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c
 delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c
 delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c
 delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S



hooks/post-receive
diff mbox

Patch

diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index c5e54e1..c8a7497 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -1005,16 +1005,6 @@  config UCLIBC_LINUX_MODULE_26
 
 	  Say N if you do not use kernel modules.
 
-config UCLIBC_LINUX_MODULE_24
-	bool "Linux kernel module functions (<2.6)"
-	depends on !TARGET_bfin && !TARGET_c6x
-	help
-	  create_module, query_module
-	  are used in linux (prior to 2.6) for loadable kernel modules.
-
-	  Say N if you do not use kernel modules, or you only support
-	  Linux 2.6+.
-
 config UCLIBC_LINUX_SPECIFIC
 	bool "Linux specific functions"
 	default y
diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in
index 6c35bff..3855e85 100644
--- a/libc/sysdeps/linux/common/Makefile.in
+++ b/libc/sysdeps/linux/common/Makefile.in
@@ -16,8 +16,6 @@  CSRC-y := $(filter-out llseek.c $(CSRC_LFS),$(CSRC-y))
 CSRC-$(UCLIBC_HAS_LFS) += llseek.c $(CSRC_LFS)
 CSRC-$(findstring y,$(UCLIBC_HAS_SSP)$(UCLIBC_HAS_FORTIFY)) += ssp.c
 CSRC-$(UCLIBC_LINUX_MODULE_26) += delete_module.c init_module.c
-CSRC-$(UCLIBC_LINUX_MODULE_24) += create_module.c query_module.c \
-	get_kernel_syms.c
 # we need these internally: fstatfs.c statfs.c
 CSRC-$(UCLIBC_LINUX_SPECIFIC) += \
 	bdflush.c \
diff --git a/libc/sysdeps/linux/common/create_module.c b/libc/sysdeps/linux/common/create_module.c
deleted file mode 100644
index 5bded56..0000000
--- a/libc/sysdeps/linux/common/create_module.c
+++ /dev/null
@@ -1,52 +0,0 @@ 
-/* vi: set sw=4 ts=4: */
-/*
- * create_module syscall for uClibc
- *
- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <features.h>
-#define __need_size_t
-#include <stddef.h>
-#include <errno.h>
-#include <sys/syscall.h>
-
-#ifdef __NR_create_module
-
-unsigned long create_module(const char *name, size_t size);
-
-#if defined(__UCLIBC_BROKEN_CREATE_MODULE__)
-# define __NR___create_module  __NR_create_module
-static __inline__ _syscall2(long, __create_module, const char *, name, size_t, size)
-/* By checking the value of errno, we know if we have been fooled
- * by the syscall2 macro making a very high address look like a
- * negative, so we fix it up here.  */
-unsigned long create_module(const char *name, size_t size)
-{
-	long ret = __create_module(name, size);
-
-	/* Jump through hoops to fixup error return codes */
-	if (ret == -1 && errno > 125) {
-		ret = -errno;
-		__set_errno(0);
-	}
-	return ret;
-}
-#elif defined(__UCLIBC_SLIGHTLY_BROKEN_CREATE_MODULE__)
-# define __NR___create_module  __NR_create_module
-/* Alpha doesn't have the same problem, exactly, but a bug in older
-   kernels fails to clear the error flag.  Clear it here explicitly.  */
-static __inline__ _syscall4(unsigned long, __create_module, const char *, name,
-			size_t, size, size_t, dummy, size_t, err)
-unsigned long create_module(const char *name, size_t size)
-{
-	return __create_module(name, size, 0, 0);
-}
-#else
-/* Sparc, MIPS, etc don't mistake return values for errors. */
-_syscall2(unsigned long, create_module, const char *, name, size_t, size)
-#endif
-
-#endif
diff --git a/libc/sysdeps/linux/common/get_kernel_syms.c b/libc/sysdeps/linux/common/get_kernel_syms.c
deleted file mode 100644
index 740b8d3..0000000
--- a/libc/sysdeps/linux/common/get_kernel_syms.c
+++ /dev/null
@@ -1,16 +0,0 @@ 
-/* vi: set sw=4 ts=4: */
-/*
- * get_kernel_syms() for uClibc
- *
- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <sys/syscall.h>
-
-#ifdef __NR_get_kernel_syms
-struct kernel_sym;
-int get_kernel_syms(struct kernel_sym *table);
-_syscall1(int, get_kernel_syms, struct kernel_sym *, table)
-#endif
diff --git a/libc/sysdeps/linux/common/query_module.c b/libc/sysdeps/linux/common/query_module.c
deleted file mode 100644
index 7c168df..0000000
--- a/libc/sysdeps/linux/common/query_module.c
+++ /dev/null
@@ -1,16 +0,0 @@ 
-/* vi: set sw=4 ts=4: */
-/*
- * query_module() for uClibc
- *
- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <sys/syscall.h>
-int query_module(const char *name attribute_unused, int which attribute_unused,
-				 void *buf attribute_unused, size_t bufsize attribute_unused, size_t * ret attribute_unused);
-#ifdef __NR_query_module
-_syscall5(int, query_module, const char *, name, int, which,
-		  void *, buf, size_t, bufsize, size_t *, ret)
-#endif
diff --git a/libc/sysdeps/linux/common/stubs.c b/libc/sysdeps/linux/common/stubs.c
index 19a3371..b80b54b 100644
--- a/libc/sysdeps/linux/common/stubs.c
+++ b/libc/sysdeps/linux/common/stubs.c
@@ -86,10 +86,6 @@  make_stub(capset)
 make_stub(connect)
 #endif
 
-#if !defined __NR_create_module && defined __UCLIBC_LINUX_MODULE_24__
-make_stub(create_module)
-#endif
-
 #if !defined __NR_delete_module && defined __UCLIBC_LINUX_MODULE_26__
 make_stub(delete_module)
 #endif
@@ -273,10 +269,6 @@  make_stub(ppoll)
 make_stub(prctl)
 #endif
 
-#if !defined __NR_query_module && defined __UCLIBC_LINUX_MODULE_24__
-make_stub(query_module)
-#endif
-
 #if !defined __NR_readahead && defined __UCLIBC_LINUX_SPECIFIC__
 make_stub(readahead)
 #endif
diff --git a/libc/sysdeps/linux/powerpc/bits/syscalls.h b/libc/sysdeps/linux/powerpc/bits/syscalls.h
index d0f78c3..728b361 100644
--- a/libc/sysdeps/linux/powerpc/bits/syscalls.h
+++ b/libc/sysdeps/linux/powerpc/bits/syscalls.h
@@ -137,7 +137,8 @@ 
    "sc; bnslr+" sequence) and CR (where only CR0.SO is clobbered to signal
    an error return status).  */
 
-# define INTERNAL_SYSCALL_DECL(err) long int err
+# undef INTERNAL_SYSCALL_DECL
+# define INTERNAL_SYSCALL_DECL(err) long int err __attribute__((unused))
 
 # define INTERNAL_SYSCALL_NCS(name, err, nr, args...)			\
 (__extension__ \
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/clone.S b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/clone.S
index 91c939e..675a997 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/clone.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/clone.S
@@ -1,5 +1,9 @@ 
-#if defined __powerpc64__
-# include "powerpc64/clone.S"
+/* We want an #include_next, but we are the main source file.
+   So, #include ourselves and in that incarnation we can use #include_next.  */
+#ifndef INCLUDED_SELF
+# define INCLUDED_SELF
+# include <clone.S>
 #else
-# include "powerpc32/clone.S"
+# define RESET_PID
+# include_next <clone.S>
 #endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
deleted file mode 100644
index 675a997..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
+++ /dev/null
@@ -1,9 +0,0 @@ 
-/* We want an #include_next, but we are the main source file.
-   So, #include ourselves and in that incarnation we can use #include_next.  */
-#ifndef INCLUDED_SELF
-# define INCLUDED_SELF
-# include <clone.S>
-#else
-# define RESET_PID
-# include_next <clone.S>
-#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
deleted file mode 100644
index c163dcd..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
+++ /dev/null
@@ -1,118 +0,0 @@ 
-/* Cancellable system call stubs.  Linux/PowerPC version.
-   Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Franz Sirl <Franz.Sirl-kernel@lauterbach.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 <pthreadP.h>
-#endif
-
-#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-
-# undef PSEUDO
-# define PSEUDO(name, syscall_name, args)				\
-  .section ".text";							\
-  ENTRY (name)								\
-    SINGLE_THREAD_P;							\
-    bne- .Lpseudo_cancel;						\
-  .type __##syscall_name##_nocancel,@function;				\
-  .globl __##syscall_name##_nocancel;					\
-  __##syscall_name##_nocancel:						\
-    DO_CALL (SYS_ify (syscall_name));					\
-    PSEUDO_RET;								\
-  .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel;	\
-  .Lpseudo_cancel:							\
-    stwu 1,-48(1);							\
-    cfi_adjust_cfa_offset (48);						\
-    mflr 9;								\
-    stw 9,52(1);							\
-    cfi_offset (lr, 4);							\
-    DOCARGS_##args;	/* save syscall args around CENABLE.  */	\
-    CENABLE;								\
-    stw 3,16(1);	/* store CENABLE return value (MASK).  */	\
-    UNDOCARGS_##args;	/* restore syscall args.  */			\
-    DO_CALL (SYS_ify (syscall_name));					\
-    mfcr 0;		/* save CR/R3 around CDISABLE.  */		\
-    stw 3,8(1);								\
-    stw 0,12(1);							\
-    lwz 3,16(1);	/* pass MASK to CDISABLE.  */			\
-    CDISABLE;								\
-    lwz 4,52(1);							\
-    lwz 0,12(1);	/* restore CR/R3. */				\
-    lwz 3,8(1);								\
-    mtlr 4;								\
-    mtcr 0;								\
-    addi 1,1,48;
-
-# define DOCARGS_0
-# define UNDOCARGS_0
-
-# define DOCARGS_1	stw 3,20(1); DOCARGS_0
-# define UNDOCARGS_1	lwz 3,20(1); UNDOCARGS_0
-
-# define DOCARGS_2	stw 4,24(1); DOCARGS_1
-# define UNDOCARGS_2	lwz 4,24(1); UNDOCARGS_1
-
-# define DOCARGS_3	stw 5,28(1); DOCARGS_2
-# define UNDOCARGS_3	lwz 5,28(1); UNDOCARGS_2
-
-# define DOCARGS_4	stw 6,32(1); DOCARGS_3
-# define UNDOCARGS_4	lwz 6,32(1); UNDOCARGS_3
-
-# define DOCARGS_5	stw 7,36(1); DOCARGS_4
-# define UNDOCARGS_5	lwz 7,36(1); UNDOCARGS_4
-
-# define DOCARGS_6	stw 8,40(1); DOCARGS_5
-# define UNDOCARGS_6	lwz 8,40(1); UNDOCARGS_5
-
-# ifdef IS_IN_libpthread
-#  define CENABLE	bl __pthread_enable_asynccancel@local
-#  define CDISABLE	bl __pthread_disable_asynccancel@local
-# elif !defined NOT_IN_libc
-#  define CENABLE	bl __libc_enable_asynccancel@local
-#  define CDISABLE	bl __libc_disable_asynccancel@local
-# elif defined IS_IN_librt
-#  define CENABLE	bl __librt_enable_asynccancel@local
-#  define CDISABLE	bl __librt_disable_asynccancel@local
-# else
-#  error Unsupported library
-# endif
-
-# ifndef __ASSEMBLER__
-#  define SINGLE_THREAD_P						\
-  __builtin_expect (THREAD_GETMEM (THREAD_SELF,				\
-				   header.multiple_threads) == 0, 1)
-# else
-#  define SINGLE_THREAD_P						\
-  lwz 10,MULTIPLE_THREADS_OFFSET(2);					\
-  cmpwi 10,0
-# endif
-
-#elif !defined __ASSEMBLER__
-
-# define SINGLE_THREAD_P (1)
-# define NO_CANCELLATION 1
-
-#endif
-
-#ifndef __ASSEMBLER__
-# define RTLD_SINGLE_THREAD_P \
-  __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
-				   header.multiple_threads) == 0, 1)
-#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
deleted file mode 100644
index 28c59fd..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
+++ /dev/null
@@ -1,57 +0,0 @@ 
-/* Copyright (C) 2004 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
-
-   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>
-#define _ERRNO_H	1
-#include <bits/errno.h>
-#include <bits/kernel-features.h>
-#include <tcb-offsets.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)
-	lwz	0,PID(2)
-	cmpwi	0,0,0
-	neg	0,0
-	bne-	0,1f
-	lis	0,0x8000
-1:	stw	0,PID(2)
-
-	DO_CALL (SYS_ify (vfork))
-
-	cmpwi	1,3,0
-	beqlr-	1
-
-	lwz	0,PID(2)
-	/* Cannot use clrlwi. here, because cr0 needs to be preserved
-	   until PSEUDO_RET.  */
-	clrlwi	4,0,1
-	cmpwi	1,4,0
-	beq-	1,1f
-	neg	4,0
-1:	stw	4,PID(2)
-
-	PSEUDO_RET
-
-PSEUDO_END (__vfork)
-libc_hidden_def (__vfork)
-weak_alias (__vfork, vfork)
-libc_hidden_weak(vfork)
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
deleted file mode 100644
index 675a997..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
+++ /dev/null
@@ -1,9 +0,0 @@ 
-/* We want an #include_next, but we are the main source file.
-   So, #include ourselves and in that incarnation we can use #include_next.  */
-#ifndef INCLUDED_SELF
-# define INCLUDED_SELF
-# include <clone.S>
-#else
-# define RESET_PID
-# include_next <clone.S>
-#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
deleted file mode 100644
index 534281a..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
+++ /dev/null
@@ -1,120 +0,0 @@ 
-/* Cancellable system call stubs.  Linux/PowerPC64 version.
-   Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Franz Sirl <Franz.Sirl-kernel@lauterbach.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 <pthreadP.h>
-#endif
-
-#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-
-# define DASHDASHPFX(str) __##str
-
-# undef PSEUDO
-# define PSEUDO(name, syscall_name, args)				\
-  .section ".text";							\
-  ENTRY (name)								\
-    SINGLE_THREAD_P;							\
-    bne- .Lpseudo_cancel;						\
-  .type DASHDASHPFX(syscall_name##_nocancel),@function;			\
-  .globl DASHDASHPFX(syscall_name##_nocancel);				\
-  DASHDASHPFX(syscall_name##_nocancel):					\
-    DO_CALL (SYS_ify (syscall_name));					\
-    PSEUDO_RET;								\
-  .size DASHDASHPFX(syscall_name##_nocancel),.-DASHDASHPFX(syscall_name##_nocancel);	\
-  .Lpseudo_cancel:							\
-    stdu 1,-128(1);							\
-    cfi_adjust_cfa_offset (128);					\
-    mflr 9;								\
-    std  9,128+16(1);							\
-    cfi_offset (lr, 16);						\
-    DOCARGS_##args;	/* save syscall args around CENABLE.  */	\
-    CENABLE;								\
-    std  3,72(1);	/* store CENABLE return value (MASK).  */	\
-    UNDOCARGS_##args;	/* restore syscall args.  */			\
-    DO_CALL (SYS_ify (syscall_name));					\
-    mfcr 0;		/* save CR/R3 around CDISABLE.  */		\
-    std  3,64(1);							\
-    std  0,8(1);							\
-    ld   3,72(1);	/* pass MASK to CDISABLE.  */			\
-    CDISABLE;								\
-    ld   9,128+16(1);							\
-    ld   0,8(1);	/* restore CR/R3. */				\
-    ld   3,64(1);							\
-    mtlr 9;								\
-    mtcr 0;								\
-    addi 1,1,128;
-
-# define DOCARGS_0
-# define UNDOCARGS_0
-
-# define DOCARGS_1	std 3,80(1); DOCARGS_0
-# define UNDOCARGS_1	ld 3,80(1); UNDOCARGS_0
-
-# define DOCARGS_2	std 4,88(1); DOCARGS_1
-# define UNDOCARGS_2	ld 4,88(1); UNDOCARGS_1
-
-# define DOCARGS_3	std 5,96(1); DOCARGS_2
-# define UNDOCARGS_3	ld 5,96(1); UNDOCARGS_2
-
-# define DOCARGS_4	std 6,104(1); DOCARGS_3
-# define UNDOCARGS_4	ld 6,104(1); UNDOCARGS_3
-
-# define DOCARGS_5	std 7,112(1); DOCARGS_4
-# define UNDOCARGS_5	ld 7,112(1); UNDOCARGS_4
-
-# define DOCARGS_6	std 8,120(1); DOCARGS_5
-# define UNDOCARGS_6	ld 8,120(1); UNDOCARGS_5
-
-# ifdef IS_IN_libpthread
-#  define CENABLE	bl JUMPTARGET(__pthread_enable_asynccancel)
-#  define CDISABLE	bl JUMPTARGET(__pthread_disable_asynccancel)
-# elif !defined NOT_IN_libc
-#  define CENABLE	bl JUMPTARGET(__libc_enable_asynccancel)
-#  define CDISABLE	bl JUMPTARGET(__libc_disable_asynccancel)
-# elif defined IS_IN_librt
-#  define CENABLE	bl JUMPTARGET(__librt_enable_asynccancel)
-#  define CDISABLE	bl JUMPTARGET(__librt_disable_asynccancel)
-# else
-#  error Unsupported library
-# endif
-
-# ifndef __ASSEMBLER__
-#  define SINGLE_THREAD_P						\
-  __builtin_expect (THREAD_GETMEM (THREAD_SELF,				\
-				   header.multiple_threads) == 0, 1)
-# else
-#   define SINGLE_THREAD_P						\
-  lwz   10,MULTIPLE_THREADS_OFFSET(13);				\
-  cmpwi 10,0
-# endif
-
-#elif !defined __ASSEMBLER__
-
-# define SINGLE_THREAD_P (1)
-# define NO_CANCELLATION 1
-
-#endif
-
-#ifndef __ASSEMBLER__
-# define RTLD_SINGLE_THREAD_P \
-  __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
-				   header.multiple_threads) == 0, 1)
-#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c
deleted file mode 100644
index 172223a..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c
+++ /dev/null
@@ -1 +0,0 @@ 
-#include "../x86_64/timer_create.c"
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c
deleted file mode 100644
index 537516e..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c
+++ /dev/null
@@ -1 +0,0 @@ 
-#include "../x86_64/timer_delete.c"
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c
deleted file mode 100644
index 3f21a73..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c
+++ /dev/null
@@ -1 +0,0 @@ 
-#include "../x86_64/timer_getoverr.c"
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c
deleted file mode 100644
index a50143a..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c
+++ /dev/null
@@ -1 +0,0 @@ 
-#include "../x86_64/timer_gettime.c"
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c
deleted file mode 100644
index 37baeff..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c
+++ /dev/null
@@ -1 +0,0 @@ 
-#include "../x86_64/timer_settime.c"
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
deleted file mode 100644
index a86ab52..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
+++ /dev/null
@@ -1,56 +0,0 @@ 
-/* Copyright (C) 2004 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
-
-   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>
-#define _ERRNO_H	1
-#include <bits/errno.h>
-#include <bits/kernel-features.h>
-#include <tcb-offsets.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)
-	lwz	0,PID(13)
-	cmpwi	0,0,0
-	neg	0,0
-	bne-	0,1f
-	lis	0,0x8000
-1:	stw	0,PID(13)
-
-	DO_CALL (SYS_ify (vfork))
-
-	cmpwi	1,3,0
-	beqlr-	1
-
-	lwz	0,PID(13)
-	clrlwi	4,0,1
-	cmpwi	1,4,0
-	beq-	1,1f
-	neg	4,0
-1:	stw	4,PID(13)
-
-	PSEUDO_RET
-
-PSEUDO_END (__vfork)
-libc_hidden_def (__vfork)
-weak_alias (__vfork, vfork)
-libc_hidden_weak(vfork)
-
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h
index dab7e0b..c163dcd 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h
@@ -1,5 +1,118 @@ 
-#if defined(__powerpc64__)
-#include "powerpc64/sysdep-cancel.h"
-#else
-#include "powerpc32/sysdep-cancel.h"
+/* Cancellable system call stubs.  Linux/PowerPC version.
+   Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Franz Sirl <Franz.Sirl-kernel@lauterbach.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 <pthreadP.h>
+#endif
+
+#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args)				\
+  .section ".text";							\
+  ENTRY (name)								\
+    SINGLE_THREAD_P;							\
+    bne- .Lpseudo_cancel;						\
+  .type __##syscall_name##_nocancel,@function;				\
+  .globl __##syscall_name##_nocancel;					\
+  __##syscall_name##_nocancel:						\
+    DO_CALL (SYS_ify (syscall_name));					\
+    PSEUDO_RET;								\
+  .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel;	\
+  .Lpseudo_cancel:							\
+    stwu 1,-48(1);							\
+    cfi_adjust_cfa_offset (48);						\
+    mflr 9;								\
+    stw 9,52(1);							\
+    cfi_offset (lr, 4);							\
+    DOCARGS_##args;	/* save syscall args around CENABLE.  */	\
+    CENABLE;								\
+    stw 3,16(1);	/* store CENABLE return value (MASK).  */	\
+    UNDOCARGS_##args;	/* restore syscall args.  */			\
+    DO_CALL (SYS_ify (syscall_name));					\
+    mfcr 0;		/* save CR/R3 around CDISABLE.  */		\
+    stw 3,8(1);								\
+    stw 0,12(1);							\
+    lwz 3,16(1);	/* pass MASK to CDISABLE.  */			\
+    CDISABLE;								\
+    lwz 4,52(1);							\
+    lwz 0,12(1);	/* restore CR/R3. */				\
+    lwz 3,8(1);								\
+    mtlr 4;								\
+    mtcr 0;								\
+    addi 1,1,48;
+
+# define DOCARGS_0
+# define UNDOCARGS_0
+
+# define DOCARGS_1	stw 3,20(1); DOCARGS_0
+# define UNDOCARGS_1	lwz 3,20(1); UNDOCARGS_0
+
+# define DOCARGS_2	stw 4,24(1); DOCARGS_1
+# define UNDOCARGS_2	lwz 4,24(1); UNDOCARGS_1
+
+# define DOCARGS_3	stw 5,28(1); DOCARGS_2
+# define UNDOCARGS_3	lwz 5,28(1); UNDOCARGS_2
+
+# define DOCARGS_4	stw 6,32(1); DOCARGS_3
+# define UNDOCARGS_4	lwz 6,32(1); UNDOCARGS_3
+
+# define DOCARGS_5	stw 7,36(1); DOCARGS_4
+# define UNDOCARGS_5	lwz 7,36(1); UNDOCARGS_4
+
+# define DOCARGS_6	stw 8,40(1); DOCARGS_5
+# define UNDOCARGS_6	lwz 8,40(1); UNDOCARGS_5
+
+# ifdef IS_IN_libpthread
+#  define CENABLE	bl __pthread_enable_asynccancel@local
+#  define CDISABLE	bl __pthread_disable_asynccancel@local
+# elif !defined NOT_IN_libc
+#  define CENABLE	bl __libc_enable_asynccancel@local
+#  define CDISABLE	bl __libc_disable_asynccancel@local
+# elif defined IS_IN_librt
+#  define CENABLE	bl __librt_enable_asynccancel@local
+#  define CDISABLE	bl __librt_disable_asynccancel@local
+# else
+#  error Unsupported library
+# endif
+
+# ifndef __ASSEMBLER__
+#  define SINGLE_THREAD_P						\
+  __builtin_expect (THREAD_GETMEM (THREAD_SELF,				\
+				   header.multiple_threads) == 0, 1)
+# else
+#  define SINGLE_THREAD_P						\
+  lwz 10,MULTIPLE_THREADS_OFFSET(2);					\
+  cmpwi 10,0
+# endif
+
+#elif !defined __ASSEMBLER__
+
+# define SINGLE_THREAD_P (1)
+# define NO_CANCELLATION 1
+
+#endif
+
+#ifndef __ASSEMBLER__
+# define RTLD_SINGLE_THREAD_P \
+  __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+				   header.multiple_threads) == 0, 1)
 #endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/vfork.S b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/vfork.S
index 27d2902..28c59fd 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/vfork.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/vfork.S
@@ -1,5 +1,57 @@ 
-#if defined __powerpc64__
-# include "powerpc64/vfork.S"
-#else
-# include "powerpc32/vfork.S"
-#endif
+/* Copyright (C) 2004 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
+
+   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>
+#define _ERRNO_H	1
+#include <bits/errno.h>
+#include <bits/kernel-features.h>
+#include <tcb-offsets.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)
+	lwz	0,PID(2)
+	cmpwi	0,0,0
+	neg	0,0
+	bne-	0,1f
+	lis	0,0x8000
+1:	stw	0,PID(2)
+
+	DO_CALL (SYS_ify (vfork))
+
+	cmpwi	1,3,0
+	beqlr-	1
+
+	lwz	0,PID(2)
+	/* Cannot use clrlwi. here, because cr0 needs to be preserved
+	   until PSEUDO_RET.  */
+	clrlwi	4,0,1
+	cmpwi	1,4,0
+	beq-	1,1f
+	neg	4,0
+1:	stw	4,PID(2)
+
+	PSEUDO_RET
+
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+weak_alias (__vfork, vfork)
+libc_hidden_weak(vfork)