[git commit nptl_glibc_sync] compile fixes for i386 nptl

Austin Foxley austinf at cetoncorp.com
Wed Feb 10 14:24:03 UTC 2010


commit: http://git.uclibc.org/uClibc/commit/?id=f14c584876271f474025fc06b3dc66ce798bcacb
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/nptl_glibc_sync

Signed-off-by: Austin Foxley <austinf at cetoncorp.com>
---
 .../unix/sysv => libc/sysdeps}/linux/i386/sysdep.h |    4 +-
 libpthread/nptl/pthreadP.h                         |    6 +-
 .../nptl/sysdeps/unix/sysv/linux/Makefile.in       |    3 +-
 .../unix/sysv/linux/i386/i486/lowlevellock.S       |    1 +
 .../unix/sysv/linux/i386/i486/lowlevelrobustlock.S |    1 +
 .../sysv/linux/i386/i486/pthread_cond_broadcast.S  |    1 +
 .../sysv/linux/i386/i486/pthread_cond_signal.S     |    1 +
 .../sysv/linux/i386/i486/pthread_rwlock_rdlock.S   |    1 +
 .../linux/i386/i486/pthread_rwlock_timedrdlock.S   |    1 +
 .../linux/i386/i486/pthread_rwlock_timedwrlock.S   |    1 +
 .../sysv/linux/i386/i486/pthread_rwlock_unlock.S   |    1 +
 .../sysv/linux/i386/i486/pthread_rwlock_wrlock.S   |    1 +
 .../nptl/sysdeps/unix/sysv/linux/i386/not-cancel.h |  105 --------------------
 .../sysdeps/unix/sysv/linux/i386/pthread_once.S    |    1 +
 .../nptl/sysdeps/unix/sysv/linux/lowlevellock.c    |    1 +
 libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c  |    1 +
 16 files changed, 18 insertions(+), 112 deletions(-)
 rename {libpthread/nptl/sysdeps/unix/sysv => libc/sysdeps}/linux/i386/sysdep.h (98%)
 delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/i386/not-cancel.h

diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/sysdep.h b/libc/sysdeps/linux/i386/sysdep.h
similarity index 98%
rename from libpthread/nptl/sysdeps/unix/sysv/linux/i386/sysdep.h
rename to libc/sysdeps/linux/i386/sysdep.h
index 674d5c6..ffbde7d 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/libc/sysdeps/linux/i386/sysdep.h
@@ -318,13 +318,13 @@
 #  define PTR_DEMANGLE(reg)	rorl $9, reg;				      \
 				xorl %gs:POINTER_GUARD, reg
 # else
-#  define PTR_MANGLE(var)	asm ("xorl %%gs:%c2, %0\n"		      \
+#  define PTR_MANGLE(var)	__asm__ ("xorl %%gs:%c2, %0\n"		      \
 				     "roll $9, %0"			      \
 				     : "=r" (var)			      \
 				     : "0" (var),			      \
 				       "i" (offsetof (tcbhead_t,	      \
 						      pointer_guard)))
-#  define PTR_DEMANGLE(var)	asm ("rorl $9, %0\n"			      \
+#  define PTR_DEMANGLE(var)	__asm__ ("rorl $9, %0\n"			      \
 				     "xorl %%gs:%c2, %0"		      \
 				     : "=r" (var)			      \
 				     : "0" (var),			      \
diff --git a/libpthread/nptl/pthreadP.h b/libpthread/nptl/pthreadP.h
index 8124c66..85601d4 100644
--- a/libpthread/nptl/pthreadP.h
+++ b/libpthread/nptl/pthreadP.h
@@ -371,13 +371,11 @@ hidden_proto (__nptl_death_event)
 #ifdef TLS_MULTIPLE_THREADS_IN_TCB
 extern void __libc_pthread_init (unsigned long int *ptr,
 				 void (*reclaim) (void),
-				 const struct pthread_functions *functions)
-     internal_function;
+				 const struct pthread_functions *functions);
 #else
 extern int *__libc_pthread_init (unsigned long int *ptr,
 				 void (*reclaim) (void),
-				 const struct pthread_functions *functions)
-     internal_function;
+				 const struct pthread_functions *functions);
 
 /* Variable set to a nonzero value if more than one thread runs or ran.  */
 extern int __pthread_multiple_threads attribute_hidden;
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.in b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.in
index dd456a1..faa8ea5 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.in
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.in
@@ -61,7 +61,8 @@ libpthread_CSRC := $(filter-out $(SH_PTHREAD_SPECIFIC),$(libpthread_CSRC))
 endif
 
 ifeq ($(TARGET_ARCH),i386)
-X86_PTHREAD_SPECIFIC := sem_post.c sem_wait.c sem_timedwait.c sem_trywait.c
+X86_PTHREAD_SPECIFIC := sem_post.c sem_wait.c sem_timedwait.c sem_trywait.c \
+	lowlevelrobustlock.c
 libpthread_CSRC := $(filter-out $(X86_PTHREAD_SPECIFIC),$(libpthread_CSRC))
 endif
 
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
index 61255a0..aff01e9 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
@@ -21,6 +21,7 @@
 #include <pthread-errnos.h>
 #include <bits/kernel-features.h>
 #include <lowlevellock.h>
+#include <tcb-offsets.h>
 
 	.text
 
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
index 5967634..1d03800 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
@@ -22,6 +22,7 @@
 #include <lowlevellock.h>
 #include <lowlevelrobustlock.h>
 #include <bits/kernel-features.h>
+#include <tls.h>
 
 	.text
 
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
index 669b96a..0413cc1 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
@@ -23,6 +23,7 @@
 #include <bits/kernel-features.h>
 #include <pthread-pi-defines.h>
 #include <pthread-errnos.h>
+#include <tls.h>
 
 	.text
 
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
index 54e80d0..2f3c9bc 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
@@ -23,6 +23,7 @@
 #include <bits/kernel-features.h>
 #include <pthread-pi-defines.h>
 #include <pthread-errnos.h>
+#include <tls.h>
 
 
 	.text
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
index d181393..6205a60 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
@@ -22,6 +22,7 @@
 #include <lowlevelrwlock.h>
 #include <pthread-errnos.h>
 #include <bits/kernel-features.h>
+#include <tls.h>
 
 
 	.text
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
index 1ffdf33..be4530e 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
@@ -22,6 +22,7 @@
 #include <lowlevelrwlock.h>
 #include <pthread-errnos.h>
 #include <bits/kernel-features.h>
+#include <tls.h>
 
 
 	.text
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
index 5826f02..61431ab 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
@@ -22,6 +22,7 @@
 #include <lowlevelrwlock.h>
 #include <pthread-errnos.h>
 #include <bits/kernel-features.h>
+#include <tls.h>
 
 
 	.text
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
index 0130261..426ffdc 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
@@ -21,6 +21,7 @@
 #include <lowlevellock.h>
 #include <lowlevelrwlock.h>
 #include <bits/kernel-features.h>
+#include <tls.h>
 
 
 	.text
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
index f69c49b..0414ba0 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
@@ -22,6 +22,7 @@
 #include <lowlevelrwlock.h>
 #include <pthread-errnos.h>
 #include <bits/kernel-features.h>
+#include <tls.h>
 
 
 	.text
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/not-cancel.h b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/not-cancel.h
deleted file mode 100644
index 6557359..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/not-cancel.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Uncancelable versions of cancelable interfaces.  Linux/NPTL version.
-   Copyright (C) 2003, 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper at 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, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <sysdep.h>
-
-#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-extern int __open_nocancel (const char *, int, ...) attribute_hidden;
-extern int __close_nocancel (int) attribute_hidden;
-extern int __read_nocancel (int, void *, size_t) attribute_hidden;
-extern int __write_nocancel (int, const void *, size_t) attribute_hidden;
-extern pid_t __waitpid_nocancel (pid_t, int *, int) attribute_hidden;
-extern int __openat_nocancel (int fd, const char *fname, int oflag,
-				mode_t mode) attribute_hidden;
-extern int __openat64_nocancel (int fd, const char *fname, int oflag,
-				  mode_t mode) attribute_hidden;
-#else
-# define __open_nocancel(name, ...) __open (name, __VA_ARGS__)
-# define __close_nocancel(fd) __close (fd)
-# define __read_nocancel(fd, buf, len) __read (fd, buf, len)
-# define __write_nocancel(fd, buf, len) __write (fd, buf, len)
-# define __waitpid_nocancel(pid, stat_loc, options) \
-  __waitpid (pid, stat_loc, options)
-# define __openat_nocancel(fd, fname, oflag, mode) \
-  openat (fd, fname, oflag, mode)
-# define __openat64_nocancel(fd, fname, oflag, mode) \
-  openat64 (fd, fname, oflag, mode)
-#endif
-
-/* Uncancelable open.  */
-#define open_not_cancel(name, flags, mode) \
-   __open_nocancel (name, flags, mode)
-#define open_not_cancel_2(name, flags) \
-   __open_nocancel (name, flags)
-
-/* Uncancelable openat.  */
-#define openat_not_cancel(fd, fname, oflag, mode) \
-  __openat_nocancel (fd, fname, oflag, mode)
-#define openat_not_cancel_3(fd, fname, oflag) \
-  __openat_nocancel (fd, fname, oflag, 0)
-#define openat64_not_cancel(fd, fname, oflag, mode) \
-  __openat64_nocancel (fd, fname, oflag, mode)
-#define openat64_not_cancel_3(fd, fname, oflag) \
-  __openat64_nocancel (fd, fname, oflag, 0)
-
-/* Uncancelable close.  */
-#define close_not_cancel(fd) \
-  __close_nocancel (fd)
-#define close_not_cancel_no_status(fd) \
-  (void) ({ INTERNAL_SYSCALL_DECL (err);				      \
-	    INTERNAL_SYSCALL (close, err, 1, (fd)); })
-
-/* Uncancelable read.  */
-#define read_not_cancel(fd, buf, n) \
-  __read_nocancel (fd, buf, n)
-
-/* Uncancelable write.  */
-#define write_not_cancel(fd, buf, n) \
-  __write_nocancel (fd, buf, n)
-
-/* Uncancelable writev.  */
-#define writev_not_cancel_no_status(fd, iov, n) \
-  (void) ({ INTERNAL_SYSCALL_DECL (err);				      \
-	    INTERNAL_SYSCALL (writev, err, 3, (fd), (iov), (n)); })
-
-/* Uncancelable fcntl.  */
-#define fcntl_not_cancel(fd, cmd, val) \
-  __fcntl_nocancel (fd, cmd, val)
-
-/* Uncancelable waitpid.  */
-#ifdef __NR_waitpid
-# define waitpid_not_cancel(pid, stat_loc, options) \
-  __waitpid_nocancel (pid, stat_loc, options)
-#else
-# define waitpid_not_cancel(pid, stat_loc, options) \
-  INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL)
-#endif
-
-/* Uncancelable pause.  */
-#define pause_not_cancel() \
-  __pause_nocancel ()
-
-/* Uncancelable nanosleep.  */
-#define nanosleep_not_cancel(requested_time, remaining) \
-  __nanosleep_nocancel (requested_time, remaining)
-
-/* Uncancelable sigsuspend.  */
-#define sigsuspend_not_cancel(set) \
-  __sigsuspend_nocancel (set)
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S
index 9a3b363..409df15 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S
@@ -21,6 +21,7 @@
 #include <sysdep.h>
 #include <bits/kernel-features.h>
 #include <lowlevellock.h>
+#include <tls.h>
 
 
 	.comm	__fork_generation, 4, 4
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c b/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c
index 643f4ed..e07d788 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c
@@ -23,6 +23,7 @@
 #include <lowlevellock.h>
 #include <sys/time.h>
 #include <tls.h>
+#include <tcb-offsets.h>
 
 
 void
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c b/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c
index a1e228e..3e1b70f 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c
@@ -19,6 +19,7 @@
 
 #include <unistd.h>
 
+extern int __libc_fork (void);
 
 pid_t
 __fork (void)
-- 
1.6.3.3



More information about the uClibc-cvs mailing list