|
From: <ges...@us...> - 2008-01-27 20:13:40
|
Revision: 1034
http://ipcop.svn.sourceforge.net/ipcop/?rev=1034&view=rev
Author: gespinasse
Date: 2008-01-27 12:13:46 -0800 (Sun, 27 Jan 2008)
Log Message:
-----------
Fix 2 errors in glibc-2.5 for alpha
Modified Paths:
--------------
ipcop/trunk/lfs/glibc
Added Paths:
-----------
ipcop/trunk/src/patches/glibc-2.5.1_ioperm_fix-1_alpha.patch
ipcop/trunk/src/patches/glibc-2.5.1_sigsuspend_alpha.patch
Modified: ipcop/trunk/lfs/glibc
===================================================================
--- ipcop/trunk/lfs/glibc 2008-01-26 23:25:08 UTC (rev 1033)
+++ ipcop/trunk/lfs/glibc 2008-01-27 20:13:46 UTC (rev 1034)
@@ -94,6 +94,8 @@
@$(PREBUILD)
@rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build && cd $(DIR_SRC) && tar -jxf $(DIR_DL)/$(DL_FILE)
cd $(DIR_APP) && patch -Np1 -i $(DIR_PATCHES)/$(THISAPP)_hwcap_mask.patch
+ cd $(DIR_APP) && patch -Np1 -i $(DIR_PATCHES)/$(THISAPP)_ioperm_fix-1_alpha.patch
+ cd $(DIR_APP) && patch -Np1 -i $(DIR_PATCHES)/$(THISAPP)_sigsuspend_alpha.patch
@mkdir $(DIR_SRC)/glibc-build
Added: ipcop/trunk/src/patches/glibc-2.5.1_ioperm_fix-1_alpha.patch
===================================================================
--- ipcop/trunk/src/patches/glibc-2.5.1_ioperm_fix-1_alpha.patch (rev 0)
+++ ipcop/trunk/src/patches/glibc-2.5.1_ioperm_fix-1_alpha.patch 2008-01-27 20:13:46 UTC (rev 1034)
@@ -0,0 +1,45 @@
+Submitted By: Joe Ciccone <jci...@li...>
+Date: 2006-06-25
+Initial Package Version: 2.4
+Origin: Joe Ciccone
+Upstream Status: Unknown
+Description: Fixes a build issue with alpha on some processors. The
+ instructions being modified are specific to ev56/ev6.
+
+--- glibc-2.4.orig/sysdeps/unix/sysv/linux/alpha/ioperm.c 2006-06-24 18:31:02.000000000 -0400
++++ glibc-2.4/sysdeps/unix/sysv/linux/alpha/ioperm.c 2006-06-24 18:32:15.000000000 -0400
+@@ -173,13 +173,13 @@
+ static inline void
+ stb_mb(unsigned char val, unsigned long addr)
+ {
+- __asm__("stb %1,%0; mb" : "=m"(*(vucp)addr) : "r"(val));
++ __asm__(".arch ev6; stb %1,%0; mb" : "=m"(*(vucp)addr) : "r"(val));
+ }
+
+ static inline void
+ stw_mb(unsigned short val, unsigned long addr)
+ {
+- __asm__("stw %1,%0; mb" : "=m"(*(vusp)addr) : "r"(val));
++ __asm__(".arch ev6; stw %1,%0; mb" : "=m"(*(vusp)addr) : "r"(val));
+ }
+
+ static inline void
+@@ -351,7 +351,7 @@
+ unsigned long int addr = dense_port_to_cpu_addr (port);
+ unsigned char r;
+
+- __asm__ ("ldbu %0,%1" : "=r"(r) : "m"(*(vucp)addr));
++ __asm__ (".arch ev6; ldbu %0,%1" : "=r"(r) : "m"(*(vucp)addr));
+ return r;
+ }
+
+@@ -361,7 +361,7 @@
+ unsigned long int addr = dense_port_to_cpu_addr (port);
+ unsigned short r;
+
+- __asm__ ("ldwu %0,%1" : "=r"(r) : "m"(*(vusp)addr));
++ __asm__ (".arch ev6; ldwu %0,%1" : "=r"(r) : "m"(*(vusp)addr));
+ return r;
+ }
+
+
Added: ipcop/trunk/src/patches/glibc-2.5.1_sigsuspend_alpha.patch
===================================================================
--- ipcop/trunk/src/patches/glibc-2.5.1_sigsuspend_alpha.patch (rev 0)
+++ ipcop/trunk/src/patches/glibc-2.5.1_sigsuspend_alpha.patch 2008-01-27 20:13:46 UTC (rev 1034)
@@ -0,0 +1,27 @@
+from http://svn.debian.org/wsvn/pkg-glibc/glibc-package/trunk/debian/patches (rediffed)
+2007-03-13 Richard Henderson <rt...@re...>
+
+* sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Add support for
+__sigsuspend_nocancel.
+--- glibc-2.5.1/sysdeps/unix/sysv/linux/alpha/sigsuspend.S.old 2005-05-26 16:30:46.000000000 +0200
++++ glibc-2.5.1/sysdeps/unix/sysv/linux/alpha/sigsuspend.S 2008-01-27 20:50:04.000000000 +0100
+@@ -20,6 +20,19 @@
+ /* sigsuspend is a special syscall since it needs to dereference the
+ sigset. This will have to change when we have more than 64 signals. */
+
++#ifndef NO_CANCELLATION
++#include <sysdep.h>
++
++#undef PSEUDO_PREPARE_ARGS
++#define PSEUDO_PREPARE_ARGS ldq a0, 0(a0);
++
++PSEUDO(__sigsuspend_nocancel, sigsuspend, 1)
++ ret
++/* Use END, not PSEUDO_END, so that we don't issue two $syscall_error
++ symbols; we'll jump into __sigsuspend for the error case. */
++END(__sigsuspend_nocancel)
++#endif /* NO_CANCELLATION */
++
+ #include <sysdep-cancel.h>
+
+ #undef PSEUDO_PREPARE_ARGS
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|