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