[PATCH] PPC64 nptl fixes
Steven Munroe <[email protected]>
| Newsgroups | gmane.comp.lib.phil |
|---|---|
| Organization | IBM Linux Developement |
| Message-ID | <[email protected]> |
Finally have a working nplt enabled kernel to test with. With nplt-0.32 found only two problems. The nptl/tst-cancel-wrappers.sh did not handle the PPC64 '.'ed symbols. Copied the ([.]|) fix from linuxthreads. Plus sysdep-cancel.h contained a word/doubleword typo that I fixed. The symbol header.multiple_threads is an int so should be Compare Word Immediate (cmpwi). With this patch PPC64 builds and runs make check successfully (--disable-check-abi). 2003-03-24 Steven Munroe <[email protected]> * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (SINGLE_THREAD_P): Fix typo. * tst-cancel-wrappers.sh: Handle '.'ed symbols. -- Steven Munroe [email protected] Linux on PowerPC-64 Development GLIBC for PowerPC-64 Development
ppc64-nptl32-20030328.patch
(text/plain, 1.2 KB)
diff -rupP nptl-0.32/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h libc23/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
--- nptl-0.32/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h 2003-03-20 02:53:02.000000000 -0600
+++ libc23/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h 2003-03-31 10:01:23.000000000 -0600
@@ -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 -rupP nptl-0.32/nptl/tst-cancel-wrappers.sh libc23/nptl/tst-cancel-wrappers.sh
--- nptl-0.32/nptl/tst-cancel-wrappers.sh 2003-01-06 18:02:26.000000000 -0600
+++ libc23/nptl/tst-cancel-wrappers.sh 2003-03-31 10:50:28.000000000 -0600
@@ -82,9 +82,9 @@ C["__xpg_sigpause"]=1
{
if (C[$1] && $2 ~ /^[TW]$/)
seen=$1
- else if ($1 ~ /^__(libc|pthread)_enable_asynccancel$/ && $2 == "U")
+ else if ($1 ~ /^([.]|)__(libc|pthread)_enable_asynccancel$/ && $2 == "U")
seen_enable=1
- else if ($1 ~ /^__(libc|pthread)_disable_asynccancel$/ && $2 == "U")
+ else if ($1 ~ /^([.]|)__(libc|pthread)_disable_asynccancel$/ && $2 == "U")
seen_disable=1
}
END {