[git commit master] compile fixes for i386 nptl
Austin Foxley
austinf at cetoncorp.com
Fri Apr 23 14:31:55 UTC 2010
commit: http://git.uclibc.org/uClibc/commit/?id=f14c584876271f474025fc06b3dc66ce798bcacb
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/master
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