diff options
Diffstat (limited to 'patches')
-rw-r--r-- | patches/gcc/4.3.1/330-unwind-for-uClibc.patch | 25 | ||||
-rw-r--r-- | patches/glibc/2.7/230-powerpc-private_futex.patch | 15 | ||||
-rw-r--r-- | patches/uClibc/20080801/100-ifaddrs.patch | 190 | ||||
-rw-r--r-- | patches/uClibc/20080801/200-mips-typeof.patch | 112 | ||||
-rw-r--r-- | patches/uClibc/20080801/300-fix-asm.patch | 175 |
5 files changed, 517 insertions, 0 deletions
diff --git a/patches/gcc/4.3.1/330-unwind-for-uClibc.patch b/patches/gcc/4.3.1/330-unwind-for-uClibc.patch new file mode 100644 index 0000000..55f7f39 --- /dev/null +++ b/patches/gcc/4.3.1/330-unwind-for-uClibc.patch @@ -0,0 +1,25 @@ +diff -durN gcc-4.3.1.orig/gcc/config/t-linux-uclibc gcc-4.3.1/gcc/config/t-linux-uclibc +--- gcc-4.3.1.orig/gcc/config/t-linux-uclibc 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.3.1/gcc/config/t-linux-uclibc 2008-07-29 13:07:15.000000000 +0200 +@@ -0,0 +1,5 @@ ++# Remove glibc specific files added in t-linux ++SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES)) ++ ++# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc ++LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH)) +diff -durN gcc-4.3.1.orig/gcc/config.gcc gcc-4.3.1/gcc/config.gcc +--- gcc-4.3.1.orig/gcc/config.gcc 2008-07-29 13:11:02.000000000 +0200 ++++ gcc-4.3.1/gcc/config.gcc 2008-07-29 13:10:05.000000000 +0200 +@@ -2651,6 +2651,12 @@ + ;; + esac + ++# Rather than hook into each target, just do it after all the linux ++# targets have been processed ++case ${target} in ++ *-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc";; ++esac ++ + case ${target} in + i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1) + tmake_file="${tmake_file} i386/t-gmm_malloc" diff --git a/patches/glibc/2.7/230-powerpc-private_futex.patch b/patches/glibc/2.7/230-powerpc-private_futex.patch new file mode 100644 index 0000000..3016529 --- /dev/null +++ b/patches/glibc/2.7/230-powerpc-private_futex.patch @@ -0,0 +1,15 @@ +2008-04-28 Hiroki Kaminaga <kaminaga@sm.sony.co.jp> + + [BZ 6740] + nptl/sysdeps/powerpc/tcb-offsets.sym (PRIVATE_FUTEX_OFFSET): + Guard sym definition with #ifndef __ASSUME_PRIVATE_FUTEX. + +--- a/nptl/sysdeps/powerpc/tcb-offsets.sym ++++ b/nptl/sysdeps/powerpc/tcb-offsets.sym +@@ -15,4 +15,6 @@ + PID thread_offsetof (pid) + TID thread_offsetof (tid) + POINTER_GUARD (offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t)) ++#ifndef __ASSUME_PRIVATE_FUTEX + PRIVATE_FUTEX_OFFSET thread_offsetof (header.private_futex) ++#endif diff --git a/patches/uClibc/20080801/100-ifaddrs.patch b/patches/uClibc/20080801/100-ifaddrs.patch new file mode 100644 index 0000000..97b1984 --- /dev/null +++ b/patches/uClibc/20080801/100-ifaddrs.patch @@ -0,0 +1,190 @@ +Copyright 2008 Yann E. MORIN. + +This patch is needed to make gcc-4.3.1 able to build the Java frontend. + +Index: uClibc/libc/inet/ifaddrs.c +=================================================================== +--- uClibc/libc/inet/ifaddrs.c (revision 23002) ++++ uClibc/libc/inet/ifaddrs.c (working copy) +@@ -22,7 +22,7 @@ + #include <alloca.h> + #include <assert.h> + #include <errno.h> +-#include "ifaddrs.h" ++#include <ifaddrs.h> + #include <net/if.h> + #include <netinet/in.h> + #include <netpacket/packet.h> +Index: uClibc/libc/inet/ifaddrs.h +=================================================================== +--- uClibc/libc/inet/ifaddrs.h (revision 23002) ++++ uClibc/libc/inet/ifaddrs.h (working copy) +@@ -1,76 +0,0 @@ +-/* ifaddrs.h -- declarations for getting network interface addresses +- Copyright (C) 2002 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#ifndef _IFADDRS_H +-#define _IFADDRS_H 1 +- +-#include <features.h> +-#include <sys/socket.h> +-#include <stdbool.h> +-#include <stdint.h> +- +-__BEGIN_DECLS +- +-/* The `getifaddrs' function generates a linked list of these structures. +- Each element of the list describes one network interface. */ +-struct ifaddrs +-{ +- struct ifaddrs *ifa_next; /* Pointer to the next structure. */ +- +- char *ifa_name; /* Name of this network interface. */ +- unsigned int ifa_flags; /* Flags as from SIOCGIFFLAGS ioctl. */ +- +- struct sockaddr *ifa_addr; /* Network address of this interface. */ +- struct sockaddr *ifa_netmask; /* Netmask of this interface. */ +- union +- { +- /* At most one of the following two is valid. If the IFF_BROADCAST +- bit is set in `ifa_flags', then `ifa_broadaddr' is valid. If the +- IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid. +- It is never the case that both these bits are set at once. */ +- struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */ +- struct sockaddr *ifu_dstaddr; /* Point-to-point destination address. */ +- } ifa_ifu; +- /* These very same macros are defined by <net/if.h> for `struct ifaddr'. +- So if they are defined already, the existing definitions will be fine. */ +-# ifndef ifa_broadaddr +-# define ifa_broadaddr ifa_ifu.ifu_broadaddr +-# endif +-# ifndef ifa_dstaddr +-# define ifa_dstaddr ifa_ifu.ifu_dstaddr +-# endif +- +- void *ifa_data; /* Address-specific data (may be unused). */ +-}; +- +- +-/* Create a linked list of `struct ifaddrs' structures, one for each +- network interface on the host machine. If successful, store the +- list in *IFAP and return 0. On errors, return -1 and set `errno'. +- +- The storage returned in *IFAP is allocated dynamically and can +- only be properly freed by passing it to `freeifaddrs'. */ +-extern int getifaddrs (struct ifaddrs **__ifap) __THROW; +- +-/* Reclaim the storage allocated by a previous `getifaddrs' call. */ +-extern void freeifaddrs (struct ifaddrs *__ifa) __THROW; +- +-__END_DECLS +- +-#endif /* ifaddrs.h */ +Index: uClibc/libc/inet/getaddrinfo.c +=================================================================== +--- uClibc/libc/inet/getaddrinfo.c (revision 23002) ++++ uClibc/libc/inet/getaddrinfo.c (working copy) +@@ -68,7 +68,7 @@ + #include <sys/un.h> + #include <sys/utsname.h> + #include <net/if.h> +-#include "ifaddrs.h" ++#include <ifaddrs.h> + + /* Experimentally off - libc_hidden_proto(memcpy) */ + /* Experimentally off - libc_hidden_proto(memset) */ +--- /dev/null 2008-08-04 09:44:45.624322752 +0200 ++++ uClibc/include/ifaddrs.h 2008-08-05 09:31:20.000000000 +0200 +@@ -0,0 +1,76 @@ ++/* ifaddrs.h -- declarations for getting network interface addresses ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _IFADDRS_H ++#define _IFADDRS_H 1 ++ ++#include <features.h> ++#include <sys/socket.h> ++#include <stdbool.h> ++#include <stdint.h> ++ ++__BEGIN_DECLS ++ ++/* The `getifaddrs' function generates a linked list of these structures. ++ Each element of the list describes one network interface. */ ++struct ifaddrs ++{ ++ struct ifaddrs *ifa_next; /* Pointer to the next structure. */ ++ ++ char *ifa_name; /* Name of this network interface. */ ++ unsigned int ifa_flags; /* Flags as from SIOCGIFFLAGS ioctl. */ ++ ++ struct sockaddr *ifa_addr; /* Network address of this interface. */ ++ struct sockaddr *ifa_netmask; /* Netmask of this interface. */ ++ union ++ { ++ /* At most one of the following two is valid. If the IFF_BROADCAST ++ bit is set in `ifa_flags', then `ifa_broadaddr' is valid. If the ++ IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid. ++ It is never the case that both these bits are set at once. */ ++ struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */ ++ struct sockaddr *ifu_dstaddr; /* Point-to-point destination address. */ ++ } ifa_ifu; ++ /* These very same macros are defined by <net/if.h> for `struct ifaddr'. ++ So if they are defined already, the existing definitions will be fine. */ ++# ifndef ifa_broadaddr ++# define ifa_broadaddr ifa_ifu.ifu_broadaddr ++# endif ++# ifndef ifa_dstaddr ++# define ifa_dstaddr ifa_ifu.ifu_dstaddr ++# endif ++ ++ void *ifa_data; /* Address-specific data (may be unused). */ ++}; ++ ++ ++/* Create a linked list of `struct ifaddrs' structures, one for each ++ network interface on the host machine. If successful, store the ++ list in *IFAP and return 0. On errors, return -1 and set `errno'. ++ ++ The storage returned in *IFAP is allocated dynamically and can ++ only be properly freed by passing it to `freeifaddrs'. */ ++extern int getifaddrs (struct ifaddrs **__ifap) __THROW; ++ ++/* Reclaim the storage allocated by a previous `getifaddrs' call. */ ++extern void freeifaddrs (struct ifaddrs *__ifa) __THROW; ++ ++__END_DECLS ++ ++#endif /* ifaddrs.h */ diff --git a/patches/uClibc/20080801/200-mips-typeof.patch b/patches/uClibc/20080801/200-mips-typeof.patch new file mode 100644 index 0000000..668e568 --- /dev/null +++ b/patches/uClibc/20080801/200-mips-typeof.patch @@ -0,0 +1,112 @@ +Index: uClibc/libc/sysdeps/linux/mips/bits/atomic.h +=================================================================== +--- uClibc/libc/sysdeps/linux/mips/bits/atomic.h (revision 23002) ++++ uClibc/libc/sysdeps/linux/mips/bits/atomic.h (working copy) +@@ -110,22 +110,22 @@ + /* For all "bool" routines, we return FALSE if exchange succesful. */ + + #define __arch_compare_and_exchange_bool_8_int(mem, new, old, rel, acq) \ +-({ typeof (*mem) __prev; int __cmp; \ ++({ __typeof (*mem) __prev; int __cmp; \ + __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq); \ + !__cmp; }) + + #define __arch_compare_and_exchange_bool_16_int(mem, new, old, rel, acq) \ +-({ typeof (*mem) __prev; int __cmp; \ ++({ __typeof (*mem) __prev; int __cmp; \ + __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq); \ + !__cmp; }) + + #define __arch_compare_and_exchange_bool_32_int(mem, new, old, rel, acq) \ +-({ typeof (*mem) __prev; int __cmp; \ ++({ __typeof (*mem) __prev; int __cmp; \ + __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq); \ + !__cmp; }) + + #define __arch_compare_and_exchange_bool_64_int(mem, new, old, rel, acq) \ +-({ typeof (*mem) __prev; int __cmp; \ ++({ __typeof (*mem) __prev; int __cmp; \ + __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq); \ + !__cmp; }) + +@@ -133,24 +133,24 @@ + successful or not. */ + + #define __arch_compare_and_exchange_val_8_int(mem, new, old, rel, acq) \ +-({ typeof (*mem) __prev; int __cmp; \ ++({ __typeof (*mem) __prev; int __cmp; \ + __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq); \ +- (typeof (*mem))__prev; }) ++ (__typeof (*mem))__prev; }) + + #define __arch_compare_and_exchange_val_16_int(mem, new, old, rel, acq) \ +-({ typeof (*mem) __prev; int __cmp; \ ++({ __typeof (*mem) __prev; int __cmp; \ + __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq); \ +- (typeof (*mem))__prev; }) ++ (__typeof (*mem))__prev; }) + + #define __arch_compare_and_exchange_val_32_int(mem, new, old, rel, acq) \ +-({ typeof (*mem) __prev; int __cmp; \ ++({ __typeof (*mem) __prev; int __cmp; \ + __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq); \ +- (typeof (*mem))__prev; }) ++ (__typeof (*mem))__prev; }) + + #define __arch_compare_and_exchange_val_64_int(mem, new, old, rel, acq) \ +-({ typeof (*mem) __prev; int __cmp; \ ++({ __typeof (*mem) __prev; int __cmp; \ + __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq); \ +- (typeof (*mem))__prev; }) ++ (__typeof (*mem))__prev; }) + + /* Compare and exchange with "acquire" semantics, ie barrier after. */ + +@@ -183,7 +183,7 @@ + (abort (), 0) + + #define __arch_exchange_xxx_32_int(mem, newval, rel, acq) \ +-({ typeof (*mem) __prev; int __cmp; \ ++({ __typeof (*mem) __prev; int __cmp; \ + __asm__ __volatile__ ("\n" \ + ".set push\n\t" \ + MIPS_PUSH_MIPS2 \ +@@ -207,7 +207,7 @@ + (abort (), 0) + #else + #define __arch_exchange_xxx_64_int(mem, newval, rel, acq) \ +-({ typeof (*mem) __prev; int __cmp; \ ++({ __typeof (*mem) __prev; int __cmp; \ + __asm__ __volatile__ ("\n" \ + ".set push\n\t" \ + MIPS_PUSH_MIPS2 \ +@@ -236,13 +236,13 @@ + /* Atomically add value and return the previous (unincremented) value. */ + + #define __arch_exchange_and_add_8_int(mem, newval, rel, acq) \ +- (abort (), (typeof(*mem)) 0) ++ (abort (), (__typeof(*mem)) 0) + + #define __arch_exchange_and_add_16_int(mem, newval, rel, acq) \ +- (abort (), (typeof(*mem)) 0) ++ (abort (), (__typeof(*mem)) 0) + + #define __arch_exchange_and_add_32_int(mem, value, rel, acq) \ +-({ typeof (*mem) __prev; int __cmp; \ ++({ __typeof (*mem) __prev; int __cmp; \ + __asm__ __volatile__ ("\n" \ + ".set push\n\t" \ + MIPS_PUSH_MIPS2 \ +@@ -263,10 +263,10 @@ + #if _MIPS_SIM == _ABIO32 + /* We can't do an atomic 64-bit operation in O32. */ + #define __arch_exchange_and_add_64_int(mem, value, rel, acq) \ +- (abort (), (typeof(*mem)) 0) ++ (abort (), (__typeof(*mem)) 0) + #else + #define __arch_exchange_and_add_64_int(mem, value, rel, acq) \ +-({ typeof (*mem) __prev; int __cmp; \ ++({ __typeof (*mem) __prev; int __cmp; \ + __asm__ __volatile__ ( \ + ".set push\n\t" \ + MIPS_PUSH_MIPS2 \ diff --git a/patches/uClibc/20080801/300-fix-asm.patch b/patches/uClibc/20080801/300-fix-asm.patch new file mode 100644 index 0000000..1f57e5c --- /dev/null +++ b/patches/uClibc/20080801/300-fix-asm.patch @@ -0,0 +1,175 @@ +Index: uClibc/ldso/ldso/sparc/dl-sysdep.h +=================================================================== +--- uClibc/ldso/ldso/sparc/dl-sysdep.h (revision 23055) ++++ uClibc/ldso/ldso/sparc/dl-sysdep.h (working copy) +@@ -141,7 +141,7 @@ + static __inline__ Elf32_Addr + elf_machine_load_address (void) + { +- register Elf32_Addr *pc __asm__ ("%o7"), *got __asm ("%l7"); ++ register Elf32_Addr *pc __asm__ ("%o7"), *got __asm__ ("%l7"); + + __asm__ ("sethi %%hi(_GLOBAL_OFFSET_TABLE_-4), %1\n\t" + "call 1f\n\t" +Index: uClibc/libc/sysdeps/linux/i386/bits/mathinline.h +=================================================================== +--- uClibc/libc/sysdeps/linux/i386/bits/mathinline.h (revision 23055) ++++ uClibc/libc/sysdeps/linux/i386/bits/mathinline.h (working copy) +@@ -299,12 +299,12 @@ + __extension__ long long int __p = (long long int) __x; \ + if (__x == (long double) __p) \ + { \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("fscale" \ + : "=t" (__value) : "0" (1.0), "u" (__x)); \ + return __value; \ + } \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("fld %%st(0)\n\t" \ + "frndint # int(x)\n\t" \ + "fxch\n\t" \ +@@ -312,7 +312,7 @@ + "f2xm1 # 2^(fract(x)) - 1\n\t" \ + : "=t" (__value), "=u" (__exponent) : "0" (__x)); \ + __value += 1.0; \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("fscale" \ + : "=t" (__value) : "0" (__value), "u" (__exponent)); \ + return __value) +@@ -321,7 +321,7 @@ + # define __sincos_code \ + register long double __cosr; \ + register long double __sinr; \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("fsincos\n\t" \ + "fnstsw %%ax\n\t" \ + "testl $0x400, %%eax\n\t" \ +@@ -373,7 +373,7 @@ + register long double __value; \ + register long double __exponent; \ + register long double __temp; \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("fldl2e # e^x - 1 = 2^(x * log2(e)) - 1\n\t" \ + "fmul %%st(1) # x * log2(e)\n\t" \ + "fst %%st(1)\n\t" \ +@@ -383,7 +383,7 @@ + "f2xm1 # 2^(fract(x * log2(e))) - 1\n\t" \ + "fscale # 2^(x * log2(e)) - 2^(int(x * log2(e)))\n\t" \ + : "=t" (__value), "=u" (__exponent) : "0" (__x)); \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("fscale # 2^int(x * log2(e))\n\t" \ + : "=t" (__temp) : "0" (1.0), "u" (__exponent)); \ + __temp -= 1.0; \ +@@ -398,7 +398,7 @@ + # define __exp_code \ + register long double __value; \ + register long double __exponent; \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("fldl2e # e^x = 2^(x * log2(e))\n\t" \ + "fmul %%st(1) # x * log2(e)\n\t" \ + "fst %%st(1)\n\t" \ +@@ -408,7 +408,7 @@ + "f2xm1 # 2^(fract(x * log2(e))) - 1\n\t" \ + : "=t" (__value), "=u" (__exponent) : "0" (__x)); \ + __value += 1.0; \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("fscale" \ + : "=t" (__value) : "0" (__value), "u" (__exponent)); \ + return __value +@@ -421,7 +421,7 @@ + __inline_mathcodeNP (tan, __x, \ + register long double __value; \ + register long double __value2 __attribute__ ((__unused__)); \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("fptan" \ + : "=t" (__value2), "=u" (__value) : "0" (__x)); \ + return __value) +@@ -435,7 +435,7 @@ + #else + # define __atan2_code \ + register long double __value; \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("fpatan" \ + : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); \ + return __value +@@ -449,7 +449,7 @@ + #if defined __FAST_MATH__ && !__GNUC_PREREQ (3, 5) + __inline_mathcodeNP2 (fmod, __x, __y, \ + register long double __value; \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("1: fprem\n\t" \ + "fnstsw %%ax\n\t" \ + "sahf\n\t" \ +@@ -552,7 +552,7 @@ + #ifdef __FAST_MATH__ + # define __ldexp_code \ + register long double __value; \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("fscale" \ + : "=t" (__value) : "0" (__x), "u" ((long double) __y)); \ + return __value +@@ -581,7 +581,7 @@ + if (__fabsl (__x) >= 1.0 - 0.5 * __M_SQRT2) \ + __value = logl (1.0 + __x); \ + else \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("fldln2\n\t" \ + "fxch\n\t" \ + "fyl2xp1" \ +@@ -611,7 +611,7 @@ + __inline_mathcodeNP(logb, __x, \ + register long double __value; \ + register long double __junk; \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("fxtract\n\t" \ + : "=t" (__junk), "=u" (__value) : "0" (__x)); \ + return __value) +@@ -699,7 +699,7 @@ + __inline_mathcodeNP2 (drem, __x, __y, \ + register double __value; \ + register int __clobbered; \ +- __asm __volatile__ \ ++ __asm__ __volatile__ \ + ("1: fprem1\n\t" \ + "fstsw %%ax\n\t" \ + "sahf\n\t" \ +Index: uClibc/libc/sysdeps/linux/x86_64/sigaction.c +=================================================================== +--- uClibc/libc/sysdeps/linux/x86_64/sigaction.c (revision 23055) ++++ uClibc/libc/sysdeps/linux/x86_64/sigaction.c (working copy) +@@ -135,7 +135,7 @@ + + #define RESTORE(name, syscall) RESTORE2 (name, syscall) + # define RESTORE2(name, syscall) \ +-asm \ ++__asm__ \ + ( \ + ".text\n" \ + "__" #name ":\n" \ +Index: uClibc/libc/sysdeps/linux/mips/sigaction.c +=================================================================== +--- uClibc/libc/sysdeps/linux/mips/sigaction.c (revision 23055) ++++ uClibc/libc/sysdeps/linux/mips/sigaction.c (working copy) +@@ -140,7 +140,7 @@ + + #define RESTORE(name, syscall) RESTORE2 (name, syscall) + #define RESTORE2(name, syscall) \ +-asm \ ++__asm__ \ + ( \ + ".align 4\n" \ + "__" #name ":\n" \ |