patches/uClibc/20080801/200-mips-typeof.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Sep 04 17:27:16 2009 +0200 (2009-09-04)
changeset 1512 439a6b292917
permissions -rw-r--r--
TODO: update

Add TODO list for m4, autoconf, automake and libtool.
Building our own versions would remove burden from the users
who have older versions on their distributions, and are not
ready/able/allowed to upgrade.
yann@766
     1
Index: uClibc/libc/sysdeps/linux/mips/bits/atomic.h
yann@766
     2
===================================================================
yann@766
     3
--- uClibc/libc/sysdeps/linux/mips/bits/atomic.h	(revision 23002)
yann@766
     4
+++ uClibc/libc/sysdeps/linux/mips/bits/atomic.h	(working copy)
yann@766
     5
@@ -110,22 +110,22 @@
yann@766
     6
 /* For all "bool" routines, we return FALSE if exchange succesful.  */
yann@766
     7
 
yann@766
     8
 #define __arch_compare_and_exchange_bool_8_int(mem, new, old, rel, acq)	\
yann@766
     9
-({ typeof (*mem) __prev; int __cmp;					\
yann@766
    10
+({ __typeof (*mem) __prev; int __cmp;					\
yann@766
    11
    __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq);	\
yann@766
    12
    !__cmp; })
yann@766
    13
 
yann@766
    14
 #define __arch_compare_and_exchange_bool_16_int(mem, new, old, rel, acq) \
yann@766
    15
-({ typeof (*mem) __prev; int __cmp;					\
yann@766
    16
+({ __typeof (*mem) __prev; int __cmp;					\
yann@766
    17
    __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq);	\
yann@766
    18
    !__cmp; })
yann@766
    19
 
yann@766
    20
 #define __arch_compare_and_exchange_bool_32_int(mem, new, old, rel, acq) \
yann@766
    21
-({ typeof (*mem) __prev; int __cmp;					\
yann@766
    22
+({ __typeof (*mem) __prev; int __cmp;					\
yann@766
    23
    __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq);	\
yann@766
    24
    !__cmp; })
yann@766
    25
 
yann@766
    26
 #define __arch_compare_and_exchange_bool_64_int(mem, new, old, rel, acq) \
yann@766
    27
-({ typeof (*mem) __prev; int __cmp;					\
yann@766
    28
+({ __typeof (*mem) __prev; int __cmp;					\
yann@766
    29
    __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq);	\
yann@766
    30
    !__cmp; })
yann@766
    31
 
yann@766
    32
@@ -133,24 +133,24 @@
yann@766
    33
    successful or not.  */
yann@766
    34
 
yann@766
    35
 #define __arch_compare_and_exchange_val_8_int(mem, new, old, rel, acq)	\
yann@766
    36
-({ typeof (*mem) __prev; int __cmp;					\
yann@766
    37
+({ __typeof (*mem) __prev; int __cmp;					\
yann@766
    38
    __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq);	\
yann@766
    39
-   (typeof (*mem))__prev; })
yann@766
    40
+   (__typeof (*mem))__prev; })
yann@766
    41
 
yann@766
    42
 #define __arch_compare_and_exchange_val_16_int(mem, new, old, rel, acq) \
yann@766
    43
-({ typeof (*mem) __prev; int __cmp;					\
yann@766
    44
+({ __typeof (*mem) __prev; int __cmp;					\
yann@766
    45
    __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq);	\
yann@766
    46
-   (typeof (*mem))__prev; })
yann@766
    47
+   (__typeof (*mem))__prev; })
yann@766
    48
 
yann@766
    49
 #define __arch_compare_and_exchange_val_32_int(mem, new, old, rel, acq) \
yann@766
    50
-({ typeof (*mem) __prev; int __cmp;					\
yann@766
    51
+({ __typeof (*mem) __prev; int __cmp;					\
yann@766
    52
    __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq);	\
yann@766
    53
-   (typeof (*mem))__prev; })
yann@766
    54
+   (__typeof (*mem))__prev; })
yann@766
    55
 
yann@766
    56
 #define __arch_compare_and_exchange_val_64_int(mem, new, old, rel, acq) \
yann@766
    57
-({ typeof (*mem) __prev; int __cmp;					\
yann@766
    58
+({ __typeof (*mem) __prev; int __cmp;					\
yann@766
    59
    __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq);	\
yann@766
    60
-   (typeof (*mem))__prev; })
yann@766
    61
+   (__typeof (*mem))__prev; })
yann@766
    62
 
yann@766
    63
 /* Compare and exchange with "acquire" semantics, ie barrier after.  */
yann@766
    64
 
yann@766
    65
@@ -183,7 +183,7 @@
yann@766
    66
   (abort (), 0)
yann@766
    67
 
yann@766
    68
 #define __arch_exchange_xxx_32_int(mem, newval, rel, acq) \
yann@766
    69
-({ typeof (*mem) __prev; int __cmp;					      \
yann@766
    70
+({ __typeof (*mem) __prev; int __cmp;					      \
yann@766
    71
      __asm__ __volatile__ ("\n"						      \
yann@766
    72
      ".set	push\n\t"						      \
yann@766
    73
      MIPS_PUSH_MIPS2							      \
yann@766
    74
@@ -207,7 +207,7 @@
yann@766
    75
   (abort (), 0)
yann@766
    76
 #else
yann@766
    77
 #define __arch_exchange_xxx_64_int(mem, newval, rel, acq) \
yann@766
    78
-({ typeof (*mem) __prev; int __cmp;					      \
yann@766
    79
+({ __typeof (*mem) __prev; int __cmp;					      \
yann@766
    80
      __asm__ __volatile__ ("\n"						      \
yann@766
    81
      ".set	push\n\t"						      \
yann@766
    82
      MIPS_PUSH_MIPS2							      \
yann@766
    83
@@ -236,13 +236,13 @@
yann@766
    84
 /* Atomically add value and return the previous (unincremented) value.  */
yann@766
    85
 
yann@766
    86
 #define __arch_exchange_and_add_8_int(mem, newval, rel, acq) \
yann@766
    87
-  (abort (), (typeof(*mem)) 0)
yann@766
    88
+  (abort (), (__typeof(*mem)) 0)
yann@766
    89
 
yann@766
    90
 #define __arch_exchange_and_add_16_int(mem, newval, rel, acq) \
yann@766
    91
-  (abort (), (typeof(*mem)) 0)
yann@766
    92
+  (abort (), (__typeof(*mem)) 0)
yann@766
    93
 
yann@766
    94
 #define __arch_exchange_and_add_32_int(mem, value, rel, acq) \
yann@766
    95
-({ typeof (*mem) __prev; int __cmp;					      \
yann@766
    96
+({ __typeof (*mem) __prev; int __cmp;					      \
yann@766
    97
      __asm__ __volatile__ ("\n"						      \
yann@766
    98
      ".set	push\n\t"						      \
yann@766
    99
      MIPS_PUSH_MIPS2							      \
yann@766
   100
@@ -263,10 +263,10 @@
yann@766
   101
 #if _MIPS_SIM == _ABIO32
yann@766
   102
 /* We can't do an atomic 64-bit operation in O32.  */
yann@766
   103
 #define __arch_exchange_and_add_64_int(mem, value, rel, acq) \
yann@766
   104
-  (abort (), (typeof(*mem)) 0)
yann@766
   105
+  (abort (), (__typeof(*mem)) 0)
yann@766
   106
 #else
yann@766
   107
 #define __arch_exchange_and_add_64_int(mem, value, rel, acq) \
yann@766
   108
-({ typeof (*mem) __prev; int __cmp;					      \
yann@766
   109
+({ __typeof (*mem) __prev; int __cmp;					      \
yann@766
   110
      __asm__ __volatile__ (						      \
yann@766
   111
      ".set	push\n\t"						      \
yann@766
   112
      MIPS_PUSH_MIPS2							      \