patches/glibc/ports-2.10.1/460-alpha-fix-gcc-4.1-warnings.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 31 23:24:40 2010 +0200 (2010-08-31)
branch1.8
changeset 2108 68d038933dc4
permissions -rw-r--r--
binutils/binutils: remove faulty patch

The added code should be conditinal to the target system
being !MIPS, but is based on the host system being !MIPS.

This is plain wrong, and had not been noticed until now
as I never used those binutils versions on MIPS.

See:
http://sourceware.org/ml/crossgcc/2010-08/msg00192.html

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
(transplanted from f5ab0a80e46616adb3619cc7c5d78d0ccd7ea697)
yann@1625
     1
2006-05-30  Falk Hueffner <falk@debian.org>
yann@1625
     2
yann@1625
     3
	* sysdeps/unix/sysv/linux/alpha/ioperm.c: force the architecture
yann@1625
     4
	  to ev6 in assembly code.
yann@1625
     5
yann@1625
     6
{standard input}: Assembler messages:
yann@1625
     7
{standard input}:341: Error: macro requires $at register while noat in effect
yann@1625
     8
{standard input}:374: Error: macro requires $at register while noat in effect
yann@1625
     9
{standard input}:438: Error: macro requires $at register while noat in effect
yann@1625
    10
{standard input}:471: Error: macro requires $at register while noat in effect
yann@1625
    11
make[3]: *** [/tmp/buildd/glibc-2.3.6/build-tree/alpha-libc/misc/ioperm.o] Error 1
yann@1625
    12
yann@1625
    13
Hrm. gcc puts .arch ev4 into the .s, and this overrides -mev6 for as.
yann@1625
    14
I cannot really think of anything better than
yann@1625
    15
yann@1625
    16
 ports/sysdeps/unix/sysv/linux/alpha/ioperm.c |    8 ++++----
yann@1625
    17
 1 file changed, 4 insertions(+), 4 deletions(-)
yann@1625
    18
yann@1625
    19
diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/unix/sysv/linux/alpha/ioperm.c glibc-2.10.1/glibc-ports-2.10.1/sysdeps/unix/sysv/linux/alpha/ioperm.c
yann@1625
    20
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/unix/sysv/linux/alpha/ioperm.c	2009-05-16 10:36:20.000000000 +0200
yann@1625
    21
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/unix/sysv/linux/alpha/ioperm.c	2009-11-13 00:50:57.000000000 +0100
yann@1625
    22
@@ -178,13 +178,13 @@
yann@1625
    23
 static inline void
yann@1625
    24
 stb_mb(unsigned char val, unsigned long addr)
yann@1625
    25
 {
yann@1625
    26
-  __asm__("stb %1,%0; mb" : "=m"(*(vucp)addr) : "r"(val));
yann@1625
    27
+  __asm__(".arch ev6; stb %1,%0; mb" : "=m"(*(vucp)addr) : "r"(val));
yann@1625
    28
 }
yann@1625
    29
 
yann@1625
    30
 static inline void
yann@1625
    31
 stw_mb(unsigned short val, unsigned long addr)
yann@1625
    32
 {
yann@1625
    33
-  __asm__("stw %1,%0; mb" : "=m"(*(vusp)addr) : "r"(val));
yann@1625
    34
+  __asm__(".arch ev6; stw %1,%0; mb" : "=m"(*(vusp)addr) : "r"(val));
yann@1625
    35
 }
yann@1625
    36
 
yann@1625
    37
 static inline void
yann@1625
    38
@@ -356,7 +356,7 @@
yann@1625
    39
   unsigned long int addr = dense_port_to_cpu_addr (port);
yann@1625
    40
   unsigned char r;
yann@1625
    41
 
yann@1625
    42
-  __asm__ ("ldbu %0,%1" : "=r"(r) : "m"(*(vucp)addr));
yann@1625
    43
+  __asm__ (".arch ev6; ldbu %0,%1" : "=r"(r) : "m"(*(vucp)addr));
yann@1625
    44
   return r;
yann@1625
    45
 }
yann@1625
    46
 
yann@1625
    47
@@ -366,7 +366,7 @@
yann@1625
    48
   unsigned long int addr = dense_port_to_cpu_addr (port);
yann@1625
    49
   unsigned short r;
yann@1625
    50
 
yann@1625
    51
-  __asm__ ("ldwu %0,%1" : "=r"(r) : "m"(*(vusp)addr));
yann@1625
    52
+  __asm__ (".arch ev6; ldwu %0,%1" : "=r"(r) : "m"(*(vusp)addr));
yann@1625
    53
   return r;
yann@1625
    54
 }
yann@1625
    55
 
yann@1625
    56
diff -durN glibc-2.10.1.orig/ports/sysdeps/unix/sysv/linux/alpha/ioperm.c glibc-2.10.1/ports/sysdeps/unix/sysv/linux/alpha/ioperm.c