summaryrefslogtreecommitdiff
path: root/nptl/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-04-01 01:24:00 +0000
committerUlrich Drepper <drepper@redhat.com>2003-04-01 01:24:00 +0000
commit211d90c524db8fcc32a134eaf80d969eff8c3862 (patch)
tree167181f1688e516846554fa6468efbc01a915de8 /nptl/sysdeps
parent42b2395dcee5be5a4c2eb0faba8e78f682ab68ad (diff)
downloadglibc-211d90c524db8fcc32a134eaf80d969eff8c3862.tar.gz
Update.
* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock): Use atomic_exchange_and_add instead of __lll_add. (__lll_mutex_timedlock): Likewise. Patch by Ian Wienand. 2003-03-24 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (SINGLE_THREAD_P): Fix typo. * tst-cancel-wrappers.sh: Handle '.'ed symbols. 2003-03-31 Ulrich Drepper <drepper@redhat.com> * Makefile (tests): Add tst-align. * tst-align.c: New file. * sysdeps/i386/Makefile: Define CFLAGS-tst-align. * sysdeps/x86_64/Makefile: Likewise. * tst-tsd2.c: Add casts to avoid warnings.
Diffstat (limited to 'nptl/sysdeps')
-rw-r--r--nptl/sysdeps/i386/Makefile4
-rw-r--r--nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h4
-rw-r--r--nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h2
-rw-r--r--nptl/sysdeps/x86_64/Makefile4
4 files changed, 11 insertions, 3 deletions
diff --git a/nptl/sysdeps/i386/Makefile b/nptl/sysdeps/i386/Makefile
index 24990a2b7e..a18c1bc8f1 100644
--- a/nptl/sysdeps/i386/Makefile
+++ b/nptl/sysdeps/i386/Makefile
@@ -19,3 +19,7 @@
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
endif
+
+ifeq ($(subdir),nptl)
+CFLAGS-tst-align.c += -malign-double
+endif
diff --git a/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h
index 8fa96ed6a2..24cbfe8cc3 100644
--- a/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h
@@ -103,7 +103,7 @@ static inline void
__attribute__ ((always_inline))
__lll_mutex_lock (int *futex)
{
- int val = __lll_add (futex, 1);
+ int val = atomic_exchange_and_add (futex, 1);
if (__builtin_expect (val != 0, 0))
__lll_lock_wait (futex, val);
@@ -119,7 +119,7 @@ static inline int
__attribute__ ((always_inline))
__lll_mutex_timedlock (int *futex, const struct timespec *abstime)
{
- int val = __lll_add (futex, 1);
+ int val = atomic_exchange_and_add (futex, 1);
int result = 0;
if (__builtin_expect (val != 0, 0))
diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
index 7c9147e3cc..5483586c7b 100644
--- a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
+++ b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
@@ -91,7 +91,7 @@
# else
# define SINGLE_THREAD_P \
lwz 10,MULTIPLE_THREADS_OFFSET(13); \
- cmpdi 10,0
+ cmpwi 10,0
# endif
#elif !defined __ASSEMBLER__
diff --git a/nptl/sysdeps/x86_64/Makefile b/nptl/sysdeps/x86_64/Makefile
index 24990a2b7e..a18c1bc8f1 100644
--- a/nptl/sysdeps/x86_64/Makefile
+++ b/nptl/sysdeps/x86_64/Makefile
@@ -19,3 +19,7 @@
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
endif
+
+ifeq ($(subdir),nptl)
+CFLAGS-tst-align.c += -malign-double
+endif