Add three new uClibc-0.9.30.1, vampirised from buildroot.
author"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Mar 31 06:39:03 2009 +0000 (2009-03-31)
changeset 12823370f421e1b9
parent 1281 12a2991fcffb
child 1283 f5e7ce8f5793
Add three new uClibc-0.9.30.1, vampirised from buildroot.

/trunk/patches/uClibc/0.9.30.1/170-dl-sysdep-inline.patch | 371 371 0 0 ++++++++++++++++
/trunk/patches/uClibc/0.9.30.1/160-c99-ldbl-math.patch | 474 474 0 0 +++++++++++++++++++++
/trunk/patches/uClibc/0.9.30.1/150-64bit-strtouq.patch | 48 48 0 0 ++
3 files changed, 893 insertions(+)
patches/uClibc/0.9.30.1/150-64bit-strtouq.patch
patches/uClibc/0.9.30.1/160-c99-ldbl-math.patch
patches/uClibc/0.9.30.1/170-dl-sysdep-inline.patch
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/patches/uClibc/0.9.30.1/150-64bit-strtouq.patch	Tue Mar 31 06:39:03 2009 +0000
     1.3 @@ -0,0 +1,48 @@
     1.4 +[PATCH]: Add strtouq alias (to strtoul) for 64bit
     1.5 +
     1.6 +The strtouq alias was only available on 32bit, breaking compilation of stuff
     1.7 +using strtouq on 64bit machines. At the same time use the correct return
     1.8 +type (u_quad_t).
     1.9 +
    1.10 +Signed-of-by: Peter Korsgaard <jacmet@sunsite.dk>
    1.11 +---
    1.12 + include/stdlib.h     |    4 +++-
    1.13 + libc/stdlib/stdlib.c |    1 +
    1.14 + 2 files changed, 4 insertions(+), 1 deletion(-)
    1.15 +
    1.16 +Index: uClibc-0.9.30.1/libc/stdlib/stdlib.c
    1.17 +===================================================================
    1.18 +--- uClibc-0.9.30.1.orig/libc/stdlib/stdlib.c
    1.19 ++++ uClibc-0.9.30.1/libc/stdlib/stdlib.c
    1.20 +@@ -401,6 +401,9 @@
    1.21 + libc_hidden_proto(__XL_NPP(strtoull))
    1.22 + strong_alias(__XL_NPP(strtoul),__XL_NPP(strtoull))
    1.23 + libc_hidden_def(__XL_NPP(strtoull))
    1.24 ++#if !defined(L_strtoul_l)
    1.25 ++strong_alias(strtoul,strtouq)
    1.26 ++#endif
    1.27 + #endif
    1.28 + 
    1.29 + 
    1.30 +Index: uClibc-0.9.30.1/include/stdlib.h
    1.31 +===================================================================
    1.32 +--- uClibc-0.9.30.1.orig/include/stdlib.h
    1.33 ++++ uClibc-0.9.30.1/include/stdlib.h
    1.34 +@@ -203,6 +203,8 @@
    1.35 + __END_NAMESPACE_STD
    1.36 + 
    1.37 + #ifdef __USE_BSD
    1.38 ++#include <sys/types.h> /* for u_quad_t */
    1.39 ++
    1.40 + /* Convert a string to a quadword integer.  */
    1.41 + __extension__
    1.42 + extern long long int strtoq (__const char *__restrict __nptr,
    1.43 +@@ -210,7 +212,7 @@
    1.44 +      __THROW __nonnull ((1)) __wur;
    1.45 + /* Convert a string to an unsigned quadword integer.  */
    1.46 + __extension__
    1.47 +-extern unsigned long long int strtouq (__const char *__restrict __nptr,
    1.48 ++extern u_quad_t strtouq (__const char *__restrict __nptr,
    1.49 + 				       char **__restrict __endptr, int __base)
    1.50 +      __THROW __nonnull ((1)) __wur;
    1.51 + #endif /* GCC and use BSD.  */
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/patches/uClibc/0.9.30.1/160-c99-ldbl-math.patch	Tue Mar 31 06:39:03 2009 +0000
     2.3 @@ -0,0 +1,474 @@
     2.4 +Index: uClibc-0.9.30.1/libm/ldouble_wrappers.c
     2.5 +===================================================================
     2.6 +--- uClibc-0.9.30.1/libm/ldouble_wrappers.c	(revision 25552)
     2.7 ++++ uClibc-0.9.30.1/libm/ldouble_wrappers.c	(working copy)
     2.8 +@@ -13,6 +13,16 @@
     2.9 + #include "math.h"
    2.10 + #include <complex.h>
    2.11 + 
    2.12 ++#if defined __NO_LONG_DOUBLE_MATH
    2.13 ++# define int_WRAPPER_C99(func) /* not needed */
    2.14 ++# else
    2.15 ++# define int_WRAPPER_C99(func) \
    2.16 ++int func##l(long double x) \
    2.17 ++{ \
    2.18 ++    return func((double) x); \
    2.19 ++} \
    2.20 ++libm_hidden_def(func##l)
    2.21 ++#endif
    2.22 + 
    2.23 + /* Implement the following, as defined by SuSv3 */
    2.24 + #if 0
    2.25 +@@ -543,46 +553,28 @@ long double truncl (long double x)
    2.26 + #endif
    2.27 + 
    2.28 + 
    2.29 +-#ifdef __DO_C99_MATH__
    2.30 ++#if defined __DO_C99_MATH__
    2.31 + 
    2.32 + #ifdef L_fpclassifyl
    2.33 +-int __fpclassifyl (long double x)
    2.34 +-{
    2.35 +-	return __fpclassify ( (double) x );
    2.36 +-}
    2.37 +-libm_hidden_def(__fpclassifyl)
    2.38 ++int_WRAPPER_C99(__fpclassify)
    2.39 + #endif
    2.40 + 
    2.41 + #ifdef L_finitel
    2.42 +-int __finitel (long double x)
    2.43 +-{
    2.44 +-	return __finite ( (double)x );
    2.45 +-}
    2.46 +-libm_hidden_def(__finitel)
    2.47 ++int_WRAPPER_C99(__finite)
    2.48 + #endif
    2.49 + 
    2.50 + #ifdef L_signbitl
    2.51 +-int __signbitl (long double x)
    2.52 +-{
    2.53 +-	return __signbitl ( (double)x );
    2.54 +-}
    2.55 +-libm_hidden_def(__signbitl)
    2.56 ++int_WRAPPER_C99(__signbit)
    2.57 + #endif
    2.58 + 
    2.59 + #ifdef L_isnanl
    2.60 +-int __isnanl (long double x)
    2.61 +-{
    2.62 +-	return __isnan ( (double)x );
    2.63 +-}
    2.64 +-libm_hidden_def(__isnanl)
    2.65 ++int_WRAPPER_C99(__isnan)
    2.66 + #endif
    2.67 + 
    2.68 + #ifdef L_isinfl
    2.69 +-int __isinfl (long double x)
    2.70 +-{
    2.71 +-	return __isinf ( (double)x );
    2.72 +-}
    2.73 +-libm_hidden_def(__isinfl)
    2.74 ++int_WRAPPER_C99(__isinf)
    2.75 + #endif
    2.76 + 
    2.77 +-#endif
    2.78 ++#endif /* DO_C99_MATH */
    2.79 ++
    2.80 ++#undef int_WRAPPER_C99
    2.81 +Index: uClibc-0.9.30.1/libm/nan.c
    2.82 +===================================================================
    2.83 +--- uClibc-0.9.30.1/libm/nan.c	(revision 25552)
    2.84 ++++ uClibc-0.9.30.1/libm/nan.c	(working copy)
    2.85 +@@ -45,7 +45,7 @@ float nanf (const char *tagp)
    2.86 + }
    2.87 + libm_hidden_def(nanf)
    2.88 + 
    2.89 +-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
    2.90 ++#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __NO_LONG_DOUBLE_MATH
    2.91 + libm_hidden_proto(nanl)
    2.92 + long double nanl (const char *tagp)
    2.93 + {
    2.94 +Index: uClibc-0.9.30.1/include/math.h
    2.95 +===================================================================
    2.96 +--- uClibc-0.9.30.1/include/math.h	(revision 25552)
    2.97 ++++ uClibc-0.9.30.1/include/math.h	(working copy)
    2.98 +@@ -118,7 +118,7 @@ __BEGIN_DECLS
    2.99 + # undef	__MATH_PRECNAME
   2.100 + 
   2.101 + # if (__STDC__ - 0 || __GNUC__ - 0) \
   2.102 +-     && (defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ || defined __LDBL_COMPAT)
   2.103 ++     && (!defined __NO_LONG_DOUBLE_MATH || defined __LDBL_COMPAT)
   2.104 + #  ifdef __LDBL_COMPAT
   2.105 + 
   2.106 + #   ifdef __USE_ISOC99
   2.107 +@@ -230,7 +230,7 @@ enum
   2.108 +   };
   2.109 + 
   2.110 + /* Return number of classification appropriate for X.  */
   2.111 +-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.112 ++# ifdef __NO_LONG_DOUBLE_MATH
   2.113 + #  define fpclassify(x) \
   2.114 +      (sizeof (x) == sizeof (float) ? __fpclassifyf (x) : __fpclassify (x))
   2.115 + # else
   2.116 +@@ -242,7 +242,7 @@ enum
   2.117 + # endif
   2.118 + 
   2.119 + /* Return nonzero value if sign of X is negative.  */
   2.120 +-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.121 ++# ifdef __NO_LONG_DOUBLE_MATH
   2.122 + #  define signbit(x) \
   2.123 +      (sizeof (x) == sizeof (float) ? __signbitf (x) : __signbit (x))
   2.124 + # else
   2.125 +@@ -254,7 +254,7 @@ enum
   2.126 + # endif
   2.127 + 
   2.128 + /* Return nonzero value if X is not +-Inf or NaN.  */
   2.129 +-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.130 ++# ifdef __NO_LONG_DOUBLE_MATH
   2.131 + #  define isfinite(x) \
   2.132 +      (sizeof (x) == sizeof (float) ? __finitef (x) : __finite (x))
   2.133 + # else
   2.134 +@@ -270,7 +270,7 @@ enum
   2.135 + 
   2.136 + /* Return nonzero value if X is a NaN.  We could use `fpclassify' but
   2.137 +    we already have this functions `__isnan' and it is faster.  */
   2.138 +-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.139 ++# ifdef __NO_LONG_DOUBLE_MATH
   2.140 + #  define isnan(x) \
   2.141 +      (sizeof (x) == sizeof (float) ? __isnanf (x) : __isnan (x))
   2.142 + # else
   2.143 +@@ -282,7 +282,7 @@ enum
   2.144 + # endif
   2.145 + 
   2.146 + /* Return nonzero value is X is positive or negative infinity.  */
   2.147 +-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.148 ++# ifdef __NO_LONG_DOUBLE_MATH
   2.149 + #  define isinf(x) \
   2.150 +      (sizeof (x) == sizeof (float) ? __isinff (x) : __isinf (x))
   2.151 + # else
   2.152 +Index: uClibc-0.9.30.1/include/tgmath.h
   2.153 +===================================================================
   2.154 +--- uClibc-0.9.30.1/include/tgmath.h	(revision 25552)
   2.155 ++++ uClibc-0.9.30.1/include/tgmath.h	(working copy)
   2.156 +@@ -36,7 +36,7 @@
   2.157 + 
   2.158 + #if __GNUC_PREREQ(2, 7)
   2.159 + 
   2.160 +-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.161 ++# ifdef __NO_LONG_DOUBLE_MATH
   2.162 + #  define __tgml(fct) fct
   2.163 + # else
   2.164 + #  define __tgml(fct) fct ## l
   2.165 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h
   2.166 +===================================================================
   2.167 +--- uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h	(revision 25552)
   2.168 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h	(working copy)
   2.169 +@@ -7,13 +7,13 @@
   2.170 + # define __WORDSIZE	32
   2.171 + #endif
   2.172 + 
   2.173 +-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL
   2.174 ++#if !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL
   2.175 + 
   2.176 + /* Signal the glibc ABI didn't used to have a `long double'.
   2.177 +    The changes all the `long double' function variants to be redirects
   2.178 +    to the double functions.  */
   2.179 + # define __LONG_DOUBLE_MATH_OPTIONAL   1
   2.180 + # ifndef __LONG_DOUBLE_128__
   2.181 +-#  undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.182 ++#  define __NO_LONG_DOUBLE_MATH        1
   2.183 + # endif
   2.184 + #endif
   2.185 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h
   2.186 +===================================================================
   2.187 +--- uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h	(revision 25552)
   2.188 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h	(working copy)
   2.189 +@@ -65,11 +65,13 @@ typedef double double_t;
   2.190 + 
   2.191 + #endif	/* ISO C99 */
   2.192 + 
   2.193 +-#ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.194 ++#ifndef __NO_LONG_DOUBLE_MATH
   2.195 + #include <bits/wordsize.h>
   2.196 + /* Signal that we do not really have a `long double'.  The disables the
   2.197 +    declaration of all the `long double' function variants.  */
   2.198 + # if __WORDSIZE == 32
   2.199 +-#  undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.200 ++#  define __NO_LONG_DOUBLE_MATH	1
   2.201 ++# elif !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.202 ++#  define __NO_LONG_DOUBLE_MATH	1
   2.203 + # endif  /* __WORDSIZE == 32 */
   2.204 +-#endif  /* __UCLIBC_HAS_LONG_DOUBLE_MATH__ */
   2.205 ++#endif  /* __NO_LONG_DOUBLE_MATH */
   2.206 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h
   2.207 +===================================================================
   2.208 +--- uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h	(revision 25552)
   2.209 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h	(working copy)
   2.210 +@@ -34,3 +34,11 @@ typedef double double_t;	/* `double' exp
   2.211 + # define FP_ILOGBNAN	(2147483647)
   2.212 + 
   2.213 + #endif	/* ISO C99 */
   2.214 ++
   2.215 ++#ifndef __NO_LONG_DOUBLE_MATH
   2.216 ++/* Signal that we do not really have a `long double'.  This disables the
   2.217 ++   declaration of all the `long double' function variants.  */
   2.218 ++/* XXX The FPA does support this but the patterns in GCC are currently
   2.219 ++   turned off.  */
   2.220 ++# define __NO_LONG_DOUBLE_MATH	1
   2.221 ++#endif
   2.222 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h
   2.223 +===================================================================
   2.224 +--- uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h	(revision 25552)
   2.225 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h	(working copy)
   2.226 +@@ -36,3 +36,7 @@ typedef long double double_t;	/* `double
   2.227 + # define FP_ILOGBNAN	(2147483647)
   2.228 + 
   2.229 + #endif	/* ISO C99 */
   2.230 ++
   2.231 ++#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.232 ++# define __NO_LONG_DOUBLE_MATH	1
   2.233 ++#endif
   2.234 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h
   2.235 +===================================================================
   2.236 +--- uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h	(revision 25552)
   2.237 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h	(working copy)
   2.238 +@@ -18,13 +18,13 @@
   2.239 + 
   2.240 + #define __WORDSIZE	64
   2.241 + 
   2.242 +-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL
   2.243 ++#if !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL
   2.244 + 
   2.245 + /* Signal that we didn't used to have a `long double'. The changes all
   2.246 +    the `long double' function variants to be redirects to the double
   2.247 +    functions.  */
   2.248 + # define __LONG_DOUBLE_MATH_OPTIONAL	1
   2.249 + # ifndef __LONG_DOUBLE_128__
   2.250 +-#  undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.251 ++#  define __NO_LONG_DOUBLE_MATH		1
   2.252 + # endif
   2.253 + #endif
   2.254 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h
   2.255 +===================================================================
   2.256 +--- uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h	(revision 25552)
   2.257 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h	(working copy)
   2.258 +@@ -78,3 +78,7 @@ typedef double double_t;
   2.259 + 
   2.260 + # endif /* GNUC before 3.4 */
   2.261 + #endif /* COMPLEX_H */
   2.262 ++
   2.263 ++#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.264 ++# define __NO_LONG_DOUBLE_MATH	1
   2.265 ++#endif
   2.266 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h
   2.267 +===================================================================
   2.268 +--- uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h	(revision 25552)
   2.269 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h	(working copy)
   2.270 +@@ -35,3 +35,9 @@ typedef double double_t;	/* `double' exp
   2.271 + # define FP_ILOGBNAN	2147483647
   2.272 + 
   2.273 + #endif	/* ISO C99 */
   2.274 ++
   2.275 ++#ifndef __NO_LONG_DOUBLE_MATH
   2.276 ++/* Signal that we do not really have a `long double'.  The disables the
   2.277 ++   declaration of all the `long double' function variants.  */
   2.278 ++# define __NO_LONG_DOUBLE_MATH	1
   2.279 ++#endif
   2.280 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h
   2.281 +===================================================================
   2.282 +--- uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h	(revision 25552)
   2.283 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h	(working copy)
   2.284 +@@ -44,3 +44,7 @@ typedef long double double_t;	/* `double
   2.285 + # define FP_ILOGBNAN	(-2147483647 - 1)
   2.286 + 
   2.287 + #endif	/* ISO C99 */
   2.288 ++
   2.289 ++#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.290 ++# define __NO_LONG_DOUBLE_MATH	1
   2.291 ++#endif
   2.292 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h
   2.293 +===================================================================
   2.294 +--- uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h	(revision 25552)
   2.295 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h	(working copy)
   2.296 +@@ -34,3 +34,11 @@ typedef double double_t;	/* `double' exp
   2.297 + # define FP_ILOGBNAN	(2147483647)
   2.298 + 
   2.299 + #endif	/* ISO C99 */
   2.300 ++
   2.301 ++#ifndef __NO_LONG_DOUBLE_MATH
   2.302 ++/* Signal that we do not really have a `long double'.  This disables the
   2.303 ++   declaration of all the `long double' function variants.  */
   2.304 ++/* XXX The FPA does support this but the patterns in GCC are currently
   2.305 ++   turned off.  */
   2.306 ++# define __NO_LONG_DOUBLE_MATH	1
   2.307 ++#endif
   2.308 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h
   2.309 +===================================================================
   2.310 +--- uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h	(revision 25552)
   2.311 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h	(working copy)
   2.312 +@@ -46,3 +46,7 @@ typedef long double double_t;	/* `double
   2.313 + # define FP_ILOGBNAN	(-2147483647 - 1)
   2.314 + 
   2.315 + #endif	/* ISO C99 */
   2.316 ++
   2.317 ++#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.318 ++# define __NO_LONG_DOUBLE_MATH	1
   2.319 ++#endif
   2.320 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h
   2.321 +===================================================================
   2.322 +--- uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h	(revision 25552)
   2.323 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h	(working copy)
   2.324 +@@ -36,8 +36,8 @@ typedef double double_t;	/* `double' exp
   2.325 + 
   2.326 + #endif	/* ISO C99 */
   2.327 + 
   2.328 +-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.329 ++#ifndef __NO_LONG_DOUBLE_MATH
   2.330 + /* Signal that we do not really have a `long double'.  The disables the
   2.331 +    declaration of all the `long double' function variants.  */
   2.332 +-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.333 ++# define __NO_LONG_DOUBLE_MATH	1
   2.334 + #endif
   2.335 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h
   2.336 +===================================================================
   2.337 +--- uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h	(revision 25552)
   2.338 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h	(working copy)
   2.339 +@@ -35,3 +35,7 @@ typedef double double_t;	/* `double' exp
   2.340 + # define FP_ILOGBNAN	2147483647
   2.341 + 
   2.342 + #endif	/* ISO C99 */
   2.343 ++
   2.344 ++#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.345 ++# define __NO_LONG_DOUBLE_MATH	1
   2.346 ++#endif
   2.347 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h
   2.348 +===================================================================
   2.349 +--- uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h	(revision 25552)
   2.350 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h	(working copy)
   2.351 +@@ -39,8 +39,10 @@ typedef double double_t;	/* `double' exp
   2.352 + 
   2.353 + #endif	/* ISO C99 */
   2.354 + 
   2.355 +-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && _MIPS_SIM == _ABIO32
   2.356 ++#if ! defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32
   2.357 + /* Signal that we do not really have a `long double'.  This disables the
   2.358 +    declaration of all the `long double' function variants.  */
   2.359 +-# error defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ and _MIPS_SIM == _ABIO32
   2.360 ++# define __NO_LONG_DOUBLE_MATH	1
   2.361 ++#elif !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.362 ++# define __NO_LONG_DOUBLE_MATH	1
   2.363 + #endif
   2.364 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h
   2.365 +===================================================================
   2.366 +--- uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h	(revision 25552)
   2.367 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h	(working copy)
   2.368 +@@ -34,3 +34,11 @@ typedef double double_t;	/* `double' exp
   2.369 + # define FP_ILOGBNAN	(2147483647)
   2.370 + 
   2.371 + #endif	/* ISO C99 */
   2.372 ++
   2.373 ++#ifndef __NO_LONG_DOUBLE_MATH
   2.374 ++/* Signal that we do not really have a `long double'.  This disables the
   2.375 ++   declaration of all the `long double' function variants.  */
   2.376 ++/* XXX The FPA does support this but the patterns in GCC are currently
   2.377 ++   turned off.  */
   2.378 ++# define __NO_LONG_DOUBLE_MATH	1
   2.379 ++#endif
   2.380 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h
   2.381 +===================================================================
   2.382 +--- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h	(revision 25552)
   2.383 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h	(working copy)
   2.384 +@@ -6,7 +6,7 @@
   2.385 + # define __WORDSIZE	32
   2.386 + #endif
   2.387 + 
   2.388 +-#if 0 /* uClibc: done in mathdefs.h: defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL*/
   2.389 ++#if 0 /* uClibc: done in mathdefs.h: !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL*/
   2.390 + 
   2.391 + # if __WORDSIZE == 32
   2.392 + /* Signal that in 32bit ABI we didn't used to have a `long double'.
   2.393 +@@ -14,7 +14,7 @@
   2.394 +    to the double functions.  */
   2.395 + #  define __LONG_DOUBLE_MATH_OPTIONAL   1
   2.396 + #  ifndef __LONG_DOUBLE_128__
   2.397 +-#   undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.398 ++#   define __NO_LONG_DOUBLE_MATH        1
   2.399 + #  endif
   2.400 + # endif
   2.401 + #endif
   2.402 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h
   2.403 +===================================================================
   2.404 +--- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h	(revision 25552)
   2.405 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h	(working copy)
   2.406 +@@ -57,13 +57,15 @@ typedef double double_t;
   2.407 + 
   2.408 + #endif	/* ISO C99 */
   2.409 + 
   2.410 +-#ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.411 ++#ifndef __NO_LONG_DOUBLE_MATH
   2.412 + 
   2.413 + # if __WORDSIZE == 32
   2.414 + /* Signal that in 32bit ABI we do not really have a `long double'.
   2.415 +    The disables the declaration of all the `long double' function
   2.416 +    variants.  */
   2.417 +-#  undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.418 ++#  define __NO_LONG_DOUBLE_MATH	1
   2.419 ++# elif !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.420 ++#  define __NO_LONG_DOUBLE_MATH	1
   2.421 + # endif
   2.422 + 
   2.423 + #endif
   2.424 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h
   2.425 +===================================================================
   2.426 +--- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h	(revision 25552)
   2.427 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h	(working copy)
   2.428 +@@ -37,7 +37,7 @@
   2.429 + 
   2.430 + # if __WORDSIZE == 32
   2.431 + 
   2.432 +-#  ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.433 ++#  ifndef __NO_LONG_DOUBLE_MATH
   2.434 + 
   2.435 + #   define __unordered_cmp(x, y) \
   2.436 +   (__extension__							      \
   2.437 +@@ -157,7 +157,7 @@ __NTH (__signbit (double __x))
   2.438 +   return __u.__i[0] < 0;
   2.439 + }
   2.440 + 
   2.441 +-#    ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.442 ++#    ifndef __NO_LONG_DOUBLE_MATH
   2.443 + __MATH_INLINE int
   2.444 + __NTH (__signbitl (long double __x))
   2.445 + {
   2.446 +@@ -219,7 +219,7 @@ __NTH (sqrtl (long double __x))
   2.447 +   _Qp_sqrt (&__r, &__x);
   2.448 +   return __r;
   2.449 + }
   2.450 +-#   elif defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.451 ++#   elif !defined __NO_LONG_DOUBLE_MATH
   2.452 + __MATH_INLINE long double
   2.453 + sqrtl (long double __x) __THROW
   2.454 + {
   2.455 +@@ -257,7 +257,7 @@ __ieee754_sqrtl (long double __x)
   2.456 +   _Qp_sqrt(&__r, &__x);
   2.457 +   return __r;
   2.458 + }
   2.459 +-#   elif defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
   2.460 ++#   elif !defined __NO_LONG_DOUBLE_MATH
   2.461 + __MATH_INLINE long double
   2.462 + __ieee754_sqrtl (long double __x)
   2.463 + {
   2.464 +Index: uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h
   2.465 +===================================================================
   2.466 +--- uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h	(revision 25552)
   2.467 ++++ uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h	(working copy)
   2.468 +@@ -61,3 +61,9 @@ typedef double double_t;
   2.469 + # define FP_ILOGBNAN	0x7fffffff
   2.470 + 
   2.471 + #endif	/* ISO C99 */
   2.472 ++
   2.473 ++#ifndef __NO_LONG_DOUBLE_MATH
   2.474 ++/* Signal that we do not really have a `long double'.  The disables the
   2.475 ++   declaration of all the `long double' function variants.  */
   2.476 ++# define __NO_LONG_DOUBLE_MATH	1
   2.477 ++#endif
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/patches/uClibc/0.9.30.1/170-dl-sysdep-inline.patch	Tue Mar 31 06:39:03 2009 +0000
     3.3 @@ -0,0 +1,371 @@
     3.4 +Index: uClibc-0.9.30.1/ldso/ldso/arm/dl-sysdep.h
     3.5 +===================================================================
     3.6 +--- uClibc-0.9.30.1/ldso/ldso/arm/dl-sysdep.h	(revision 25503)
     3.7 ++++ uClibc-0.9.30.1/ldso/ldso/arm/dl-sysdep.h	(working copy)
     3.8 +@@ -17,7 +17,7 @@
     3.9 + 
    3.10 + #define DL_MALLOC_ALIGN 8  /* EABI needs 8 byte alignment for STRD LDRD*/
    3.11 + 
    3.12 +-static __inline__ unsigned long arm_modulus(unsigned long m, unsigned long p)
    3.13 ++static __always_inline unsigned long arm_modulus(unsigned long m, unsigned long p)
    3.14 + {
    3.15 + 	unsigned long i,t,inc;
    3.16 + 	i=p; t=0;
    3.17 +@@ -74,7 +74,7 @@ unsigned long _dl_linux_resolver(struct 
    3.18 +    first element of the GOT.  We used to use the PIC register to do this
    3.19 +    without a constant pool reference, but GCC 4.2 will use a pseudo-register
    3.20 +    for the PIC base, so it may not be in r10.  */
    3.21 +-static __inline__ Elf32_Addr __attribute__ ((unused))
    3.22 ++static __always_inline Elf32_Addr __attribute__ ((unused))
    3.23 + elf_machine_dynamic (void)
    3.24 + {
    3.25 +   Elf32_Addr dynamic;
    3.26 +@@ -106,7 +106,7 @@ elf_machine_dynamic (void)
    3.27 + }
    3.28 + 
    3.29 + /* Return the run-time load address of the shared object.  */
    3.30 +-static __inline__ Elf32_Addr __attribute__ ((unused))
    3.31 ++static __always_inline Elf32_Addr __attribute__ ((unused))
    3.32 + elf_machine_load_address (void)
    3.33 + {
    3.34 + 	extern void __dl_start __asm__ ("_dl_start");
    3.35 +@@ -130,7 +130,7 @@ elf_machine_load_address (void)
    3.36 + 	return pcrel_addr - got_addr;
    3.37 + }
    3.38 + 
    3.39 +-static __inline__ void
    3.40 ++static __always_inline void
    3.41 + elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
    3.42 + 		      Elf32_Word relative_count)
    3.43 + {
    3.44 +Index: uClibc-0.9.30.1/ldso/ldso/powerpc/dl-sysdep.h
    3.45 +===================================================================
    3.46 +--- uClibc-0.9.30.1/ldso/ldso/powerpc/dl-sysdep.h	(revision 25503)
    3.47 ++++ uClibc-0.9.30.1/ldso/ldso/powerpc/dl-sysdep.h	(working copy)
    3.48 +@@ -90,7 +90,7 @@ void _dl_init_got(unsigned long *lpnt,st
    3.49 + #define ELF_MACHINE_PLTREL_OVERLAP 1
    3.50 + 
    3.51 + /* Return the value of the GOT pointer.  */
    3.52 +-static __inline__ Elf32_Addr * __attribute__ ((const))
    3.53 ++static __always_inline Elf32_Addr * __attribute__ ((const))
    3.54 + ppc_got (void)
    3.55 + {
    3.56 + 	Elf32_Addr *got;
    3.57 +@@ -109,14 +109,14 @@ ppc_got (void)
    3.58 + 
    3.59 + /* Return the link-time address of _DYNAMIC, stored as
    3.60 +    the first value in the GOT. */
    3.61 +-static __inline__ Elf32_Addr __attribute__ ((const))
    3.62 ++static __always_inline Elf32_Addr __attribute__ ((const))
    3.63 + elf_machine_dynamic (void)
    3.64 + {
    3.65 + 	return *ppc_got();
    3.66 + }
    3.67 + 
    3.68 + /* Return the run-time load address of the shared object.  */
    3.69 +-static __inline__ Elf32_Addr __attribute__ ((const))
    3.70 ++static __always_inline Elf32_Addr __attribute__ ((const))
    3.71 + elf_machine_load_address (void)
    3.72 + {
    3.73 +   Elf32_Addr *branchaddr;
    3.74 +@@ -164,7 +164,7 @@ elf_machine_load_address (void)
    3.75 +   return runtime_dynamic - elf_machine_dynamic ();
    3.76 + }
    3.77 + 
    3.78 +-static __inline__ void
    3.79 ++static __always_inline void
    3.80 + elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
    3.81 + 		      Elf32_Word relative_count)
    3.82 + {
    3.83 +Index: uClibc-0.9.30.1/ldso/ldso/sh64/dl-sysdep.h
    3.84 +===================================================================
    3.85 +--- uClibc-0.9.30.1/ldso/ldso/sh64/dl-sysdep.h	(revision 25503)
    3.86 ++++ uClibc-0.9.30.1/ldso/ldso/sh64/dl-sysdep.h	(working copy)
    3.87 +@@ -42,7 +42,7 @@ extern unsigned long _dl_linux_resolver(
    3.88 + /* Return the link-time address of _DYNAMIC.  Conveniently, this is the
    3.89 +    first element of the GOT.  This must be inlined in a function which
    3.90 +    uses global data.  */
    3.91 +-static __inline__ Elf32_Addr elf_machine_dynamic(void)
    3.92 ++static __always_inline Elf32_Addr elf_machine_dynamic(void)
    3.93 + {
    3.94 + 	register Elf32_Addr *got;
    3.95 + 
    3.96 +@@ -70,7 +70,7 @@ static __inline__ Elf32_Addr elf_machine
    3.97 + }
    3.98 + 
    3.99 + /* Return the run-time load address of the shared object.  */
   3.100 +-static __inline__ Elf32_Addr elf_machine_load_address(void)
   3.101 ++static __always_inline Elf32_Addr elf_machine_load_address(void)
   3.102 + {
   3.103 + 	Elf32_Addr addr;
   3.104 + 
   3.105 +@@ -123,7 +123,7 @@ static __inline__ Elf32_Addr elf_machine
   3.106 + 	}						\
   3.107 + }
   3.108 + 
   3.109 +-static __inline__ void
   3.110 ++static __always_inline void
   3.111 + elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr,
   3.112 + 		     Elf32_Word relative_count)
   3.113 + {
   3.114 +Index: uClibc-0.9.30.1/ldso/ldso/m68k/dl-sysdep.h
   3.115 +===================================================================
   3.116 +--- uClibc-0.9.30.1/ldso/ldso/m68k/dl-sysdep.h	(revision 25503)
   3.117 ++++ uClibc-0.9.30.1/ldso/ldso/m68k/dl-sysdep.h	(working copy)
   3.118 +@@ -41,7 +41,7 @@ extern unsigned long _dl_linux_resolver 
   3.119 + /* Return the link-time address of _DYNAMIC.  Conveniently, this is the
   3.120 +    first element of the GOT.  This must be inlined in a function which
   3.121 +    uses global data.  */
   3.122 +-static __inline__ Elf32_Addr
   3.123 ++static __always_inline Elf32_Addr
   3.124 + elf_machine_dynamic (void)
   3.125 + {
   3.126 + 	register Elf32_Addr *got __asm__ ("%a5");
   3.127 +@@ -50,7 +50,7 @@ elf_machine_dynamic (void)
   3.128 + 
   3.129 + 
   3.130 + /* Return the run-time load address of the shared object.  */
   3.131 +-static __inline__ Elf32_Addr
   3.132 ++static __always_inline Elf32_Addr
   3.133 + elf_machine_load_address (void)
   3.134 + {
   3.135 + 	Elf32_Addr addr;
   3.136 +@@ -60,7 +60,7 @@ elf_machine_load_address (void)
   3.137 + 	return addr;
   3.138 + }
   3.139 + 
   3.140 +-static __inline__ void
   3.141 ++static __always_inline void
   3.142 + elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
   3.143 + 		      Elf32_Word relative_count)
   3.144 + {
   3.145 +Index: uClibc-0.9.30.1/ldso/ldso/i386/dl-sysdep.h
   3.146 +===================================================================
   3.147 +--- uClibc-0.9.30.1/ldso/ldso/i386/dl-sysdep.h	(revision 25503)
   3.148 ++++ uClibc-0.9.30.1/ldso/ldso/i386/dl-sysdep.h	(working copy)
   3.149 +@@ -42,8 +42,8 @@ extern unsigned long _dl_linux_resolver(
   3.150 + /* Return the link-time address of _DYNAMIC.  Conveniently, this is the
   3.151 +    first element of the GOT.  This must be inlined in a function which
   3.152 +    uses global data.  */
   3.153 +-static __inline__ Elf32_Addr elf_machine_dynamic (void) attribute_unused;
   3.154 +-static __inline__ Elf32_Addr
   3.155 ++static __always_inline Elf32_Addr elf_machine_dynamic (void) attribute_unused;
   3.156 ++static __always_inline Elf32_Addr
   3.157 + elf_machine_dynamic (void)
   3.158 + {
   3.159 + 	register Elf32_Addr *got __asm__ ("%ebx");
   3.160 +@@ -52,8 +52,8 @@ elf_machine_dynamic (void)
   3.161 + 
   3.162 + 
   3.163 + /* Return the run-time load address of the shared object.  */
   3.164 +-static __inline__ Elf32_Addr elf_machine_load_address (void) attribute_unused;
   3.165 +-static __inline__ Elf32_Addr
   3.166 ++static __always_inline Elf32_Addr elf_machine_load_address (void) attribute_unused;
   3.167 ++static __always_inline Elf32_Addr
   3.168 + elf_machine_load_address (void)
   3.169 + {
   3.170 + 	/* It doesn't matter what variable this is, the reference never makes
   3.171 +@@ -66,7 +66,7 @@ elf_machine_load_address (void)
   3.172 + 	return addr;
   3.173 + }
   3.174 + 
   3.175 +-static __inline__ void
   3.176 ++static __always_inline void
   3.177 + elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
   3.178 + 		      Elf32_Word relative_count)
   3.179 + {
   3.180 +Index: uClibc-0.9.30.1/ldso/ldso/cris/dl-sysdep.h
   3.181 +===================================================================
   3.182 +--- uClibc-0.9.30.1/ldso/ldso/cris/dl-sysdep.h	(revision 25503)
   3.183 ++++ uClibc-0.9.30.1/ldso/ldso/cris/dl-sysdep.h	(working copy)
   3.184 +@@ -39,7 +39,7 @@ extern unsigned long _dl_linux_resolver(
   3.185 +      || ((type) == R_CRIS_GLOB_DAT)) * ELF_RTYPE_CLASS_PLT)	\
   3.186 +    | (((type) == R_CRIS_COPY) * ELF_RTYPE_CLASS_COPY))
   3.187 + 
   3.188 +-static __inline__ Elf32_Addr
   3.189 ++static __always_inline Elf32_Addr
   3.190 + elf_machine_dynamic(void)
   3.191 + {
   3.192 + 	/* Don't just set this to an asm variable "r0" since that's not logical
   3.193 +@@ -61,7 +61,7 @@ elf_machine_dynamic(void)
   3.194 +    there's some other symbol we could use, that we don't *have* to force a
   3.195 +    GOT entry for.  */
   3.196 + 
   3.197 +-static __inline__ Elf32_Addr
   3.198 ++static __always_inline Elf32_Addr
   3.199 + elf_machine_load_address(void)
   3.200 + {
   3.201 + 	Elf32_Addr gotaddr_diff;
   3.202 +@@ -95,7 +95,7 @@ elf_machine_load_address(void)
   3.203 + 	return gotaddr_diff;
   3.204 + }
   3.205 + 
   3.206 +-static __inline__ void
   3.207 ++static __always_inline void
   3.208 + elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr,
   3.209 +                      Elf32_Word relative_count)
   3.210 + {
   3.211 +Index: uClibc-0.9.30.1/ldso/ldso/xtensa/dl-sysdep.h
   3.212 +===================================================================
   3.213 +--- uClibc-0.9.30.1/ldso/ldso/xtensa/dl-sysdep.h	(revision 25503)
   3.214 ++++ uClibc-0.9.30.1/ldso/ldso/xtensa/dl-sysdep.h	(working copy)
   3.215 +@@ -87,7 +87,7 @@ extern unsigned long _dl_linux_resolver 
   3.216 +   (((type) == R_XTENSA_JMP_SLOT) * ELF_RTYPE_CLASS_PLT)
   3.217 + 
   3.218 + /* Return the link-time address of _DYNAMIC.  */
   3.219 +-static __inline__ Elf32_Addr
   3.220 ++static __always_inline Elf32_Addr
   3.221 + elf_machine_dynamic (void)
   3.222 + {
   3.223 +   /* This function is only used while bootstrapping the runtime linker.
   3.224 +@@ -97,7 +97,7 @@ elf_machine_dynamic (void)
   3.225 + }
   3.226 + 
   3.227 + /* Return the run-time load address of the shared object.  */
   3.228 +-static __inline__ Elf32_Addr
   3.229 ++static __always_inline Elf32_Addr
   3.230 + elf_machine_load_address (void)
   3.231 + {
   3.232 +   Elf32_Addr addr, tmp;
   3.233 +@@ -118,7 +118,7 @@ elf_machine_load_address (void)
   3.234 +   return addr - 3;
   3.235 + }
   3.236 + 
   3.237 +-static __inline__ void
   3.238 ++static __always_inline void
   3.239 + elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
   3.240 + 		      Elf32_Word relative_count)
   3.241 + {
   3.242 +Index: uClibc-0.9.30.1/ldso/ldso/sparc/dl-sysdep.h
   3.243 +===================================================================
   3.244 +--- uClibc-0.9.30.1/ldso/ldso/sparc/dl-sysdep.h	(revision 25503)
   3.245 ++++ uClibc-0.9.30.1/ldso/ldso/sparc/dl-sysdep.h	(working copy)
   3.246 +@@ -49,7 +49,7 @@ unsigned long _dl_linux_resolver(struct 
   3.247 + 
   3.248 + #ifndef COMPILE_ASM
   3.249 + /* Cheap modulo implementation, taken from arm/ld_sysdep.h. */
   3.250 +-static __inline__ unsigned long
   3.251 ++static __always_inline unsigned long
   3.252 + sparc_mod(unsigned long m, unsigned long p)
   3.253 + {
   3.254 + 	unsigned long i, t, inc;
   3.255 +@@ -127,7 +127,7 @@ do {    register Elf32_Addr pc __asm__("
   3.256 + /* Return the link-time address of _DYNAMIC.  Conveniently, this is the
   3.257 +    first element of the GOT.  This must be inlined in a function which
   3.258 +    uses global data.  */
   3.259 +-static __inline__ Elf32_Addr
   3.260 ++static __always_inline Elf32_Addr
   3.261 + elf_machine_dynamic (void)
   3.262 + {
   3.263 + 	register Elf32_Addr *got __asm__ ("%l7");
   3.264 +@@ -138,7 +138,7 @@ elf_machine_dynamic (void)
   3.265 + }
   3.266 + 
   3.267 + /* Return the run-time load address of the shared object.  */
   3.268 +-static __inline__ Elf32_Addr
   3.269 ++static __always_inline Elf32_Addr
   3.270 + elf_machine_load_address (void)
   3.271 + {
   3.272 + 	register Elf32_Addr *pc __asm__ ("%o7"), *got __asm__ ("%l7");
   3.273 +@@ -157,7 +157,7 @@ elf_machine_load_address (void)
   3.274 + 	return (Elf32_Addr) got - *got + (pc[2] - pc[3]) * 4 - 4;
   3.275 + }
   3.276 + 
   3.277 +-static __inline__ void
   3.278 ++static __always_inline void
   3.279 + elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
   3.280 + 		      Elf32_Word relative_count)
   3.281 + {
   3.282 +Index: uClibc-0.9.30.1/ldso/ldso/mips/dl-sysdep.h
   3.283 +===================================================================
   3.284 +--- uClibc-0.9.30.1/ldso/ldso/mips/dl-sysdep.h	(revision 25503)
   3.285 ++++ uClibc-0.9.30.1/ldso/ldso/mips/dl-sysdep.h	(working copy)
   3.286 +@@ -163,7 +163,7 @@ void _dl_perform_mips_global_got_relocat
   3.287 + 
   3.288 + #define OFFSET_GP_GOT 0x7ff0
   3.289 + 
   3.290 +-static __inline__ ElfW(Addr) *
   3.291 ++static __always_inline ElfW(Addr) *
   3.292 + elf_mips_got_from_gpreg (ElfW(Addr) gpreg)
   3.293 + {
   3.294 + 	/* FIXME: the offset of gp from GOT may be system-dependent. */
   3.295 +@@ -173,7 +173,7 @@ elf_mips_got_from_gpreg (ElfW(Addr) gpre
   3.296 + /* Return the link-time address of _DYNAMIC.  Conveniently, this is the
   3.297 +    first element of the GOT.  This must be inlined in a function which
   3.298 +    uses global data.  We assume its $gp points to the primary GOT.  */
   3.299 +-static __inline__ ElfW(Addr)
   3.300 ++static __always_inline ElfW(Addr)
   3.301 + elf_machine_dynamic (void)
   3.302 + {
   3.303 + 	register ElfW(Addr) gp __asm__ ("$28");
   3.304 +@@ -192,7 +192,7 @@ elf_machine_dynamic (void)
   3.305 + #endif
   3.306 + 
   3.307 + /* Return the run-time load address of the shared object.  */
   3.308 +-static __inline__ ElfW(Addr)
   3.309 ++static __always_inline ElfW(Addr)
   3.310 + elf_machine_load_address (void)
   3.311 + {
   3.312 + 	ElfW(Addr) addr;
   3.313 +@@ -208,7 +208,7 @@ elf_machine_load_address (void)
   3.314 + 	return addr;
   3.315 + }
   3.316 + 
   3.317 +-static __inline__ void
   3.318 ++static __always_inline void
   3.319 + elf_machine_relative (ElfW(Addr) load_off, const ElfW(Addr) rel_addr,
   3.320 + 		      ElfW(Word) relative_count)
   3.321 + {
   3.322 +Index: uClibc-0.9.30.1/ldso/ldso/sh/dl-sysdep.h
   3.323 +===================================================================
   3.324 +--- uClibc-0.9.30.1/ldso/ldso/sh/dl-sysdep.h	(revision 25503)
   3.325 ++++ uClibc-0.9.30.1/ldso/ldso/sh/dl-sysdep.h	(working copy)
   3.326 +@@ -25,7 +25,7 @@
   3.327 + struct elf_resolve;
   3.328 + extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry);
   3.329 + 
   3.330 +-static __inline__ unsigned int
   3.331 ++static __always_inline unsigned int
   3.332 + _dl_urem(unsigned int n, unsigned int base)
   3.333 + {
   3.334 +   int res;
   3.335 +@@ -100,7 +100,7 @@ _dl_urem(unsigned int n, unsigned int ba
   3.336 + /* Return the link-time address of _DYNAMIC.  Conveniently, this is the
   3.337 +    first element of the GOT.  This must be inlined in a function which
   3.338 +    uses global data.  */
   3.339 +-static __inline__ Elf32_Addr __attribute__ ((unused))
   3.340 ++static __always_inline Elf32_Addr __attribute__ ((unused))
   3.341 + elf_machine_dynamic (void)
   3.342 + {
   3.343 + 	register Elf32_Addr *got;
   3.344 +@@ -109,7 +109,7 @@ elf_machine_dynamic (void)
   3.345 + }
   3.346 + 
   3.347 + /* Return the run-time load address of the shared object.  */
   3.348 +-static __inline__ Elf32_Addr __attribute__ ((unused))
   3.349 ++static __always_inline Elf32_Addr __attribute__ ((unused))
   3.350 + elf_machine_load_address (void)
   3.351 + {
   3.352 + 	Elf32_Addr addr;
   3.353 +@@ -151,7 +151,7 @@ elf_machine_load_address (void)
   3.354 +     } \
   3.355 +   }
   3.356 + 
   3.357 +-static __inline__ void
   3.358 ++static __always_inline void
   3.359 + elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
   3.360 + 		      Elf32_Word relative_count)
   3.361 + {
   3.362 +Index: uClibc-0.9.30.1/ldso/ldso/bfin/dl-sysdep.h
   3.363 +===================================================================
   3.364 +--- uClibc-0.9.30.1/ldso/ldso/bfin/dl-sysdep.h	(revision 25503)
   3.365 ++++ uClibc-0.9.30.1/ldso/ldso/bfin/dl-sysdep.h	(working copy)
   3.366 +@@ -213,7 +213,7 @@ while (0)
   3.367 + #endif
   3.368 + 
   3.369 + #include <elf.h>
   3.370 +-static __inline__ void
   3.371 ++static __always_inline void
   3.372 + elf_machine_relative (DL_LOADADDR_TYPE load_off, const Elf32_Addr rel_addr,
   3.373 + 		      Elf32_Word relative_count)
   3.374 + {