r6181 - in glibc-package/trunk/debian: . patches/powerpc
Author: adconrad
Date: 2014-06-19 12:32:17 +0000 (Thu, 19 Jun 2014)
New Revision: 6181
Modified:
glibc-package/trunk/debian/changelog
glibc-package/trunk/debian/patches/powerpc/local-powerpc8xx-dcbz.diff
Log:
debian/patches/powerpc/local-powerpc8xx-dcbz.diff: Restrict the trap
to 32-bit builds, since the Freescale 8xx CPUs aren't 64-bit capable.
Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog 2014-06-19 10:19:40 UTC (rev 6180)
+++ glibc-package/trunk/debian/changelog 2014-06-19 12:32:17 UTC (rev 6181)
@@ -10,6 +10,8 @@
[ Adam Conrad ]
* debian/control.in/main: glibc-source Conflics/Replaces eglibc-source.
+ * debian/patches/powerpc/local-powerpc8xx-dcbz.diff: Restrict the trap
+ to 32-bit builds, since the Freescale 8xx CPUs aren't 64-bit capable.
-- Aurelien Jarno <aurel32@debian.org> Tue, 17 Jun 2014 20:33:56 +0200
Modified: glibc-package/trunk/debian/patches/powerpc/local-powerpc8xx-dcbz.diff
===================================================================
--- glibc-package/trunk/debian/patches/powerpc/local-powerpc8xx-dcbz.diff 2014-06-19 10:19:40 UTC (rev 6180)
+++ glibc-package/trunk/debian/patches/powerpc/local-powerpc8xx-dcbz.diff 2014-06-19 12:32:17 UTC (rev 6181)
@@ -1,6 +1,6 @@
--- a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
-@@ -25,9 +25,21 @@
+@@ -25,10 +25,28 @@
/* Scan the Aux Vector for the "Data Cache Block Size" entry. If found
verify that the static extern __cache_line_size is defined by checking
for not NULL. If it is defined then assign the cache block size
@@ -11,21 +11,29 @@
+ correctly. That requires reading SPR, which is a privileged
+ operation. Fortunately 2.2.18 and later emulates PowerPC mfspr
+ reads from the PVR register. */
- #define DL_PLATFORM_AUXV \
++#ifndef __powerpc64__
++ #define DL_PLATFORM_AUXV \
++ case AT_DCACHEBSIZE: \
++ { \
++ unsigned pvr = 0; \
++ asm ("mfspr %0, 287" : "=r" (pvr)); \
++ if ((pvr & 0xffff0000) == 0x00500000) \
++ break; \
++ } \
++ __cache_line_size = av->a_un.a_val; \
++ break;
++#else
+-#define DL_PLATFORM_AUXV \
++ #define DL_PLATFORM_AUXV \
case AT_DCACHEBSIZE: \
-+ if (__LINUX_KERNEL_VERSION >= 0x020218) \
-+ { \
-+ unsigned pvr = 0; \
-+ asm ("mfspr %0, 287" : "=r" (pvr)); \
-+ if ((pvr & 0xffff0000) == 0x00500000) \
-+ break; \
-+ } \
__cache_line_size = av->a_un.a_val; \
break;
++#endif
+ #include <sysdeps/unix/sysv/linux/dl-sysdep.c>
--- a/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
-@@ -68,11 +68,24 @@
+@@ -68,11 +68,25 @@
rtld_fini = NULL;
}
@@ -40,14 +48,15 @@
switch (av->a_type)
{
case AT_DCACHEBSIZE:
-+ if (__LINUX_KERNEL_VERSION >= 0x020218)
-+ {
-+ unsigned pvr = 0;
-+
-+ asm ("mfspr %0, 287" : "=r" (pvr) :);
-+ if ((pvr & 0xffff0000) == 0x00500000)
-+ break;
-+ }
++#ifndef __powerpc64__
++ {
++ unsigned pvr = 0;
++
++ asm ("mfspr %0, 287" : "=r" (pvr) :);
++ if ((pvr & 0xffff0000) == 0x00500000)
++ break;
++ }
++#endif
__cache_line_size = av->a_un.a_val;
break;
}
Reply to: