* libc/include/sys/features.h (__GNUC_PREREQ): Define. Use
throughout in place of explicit GNUC version checks. * libc/include/_ansi.h (_NOINLINE): Define. (_NOINLINE_STATIC): Define. * libc/stdio/vfprintf.c (__sbprintf): Define _NOINLINE_STATIC.
This commit is contained in:
		
							parent
							
								
									71c13b9633
								
							
						
					
					
						commit
						5eceb3958e
					
				|  | @ -1,3 +1,11 @@ | |||
| 2012-10-15  Corinna Vinschen  <vinschen@redhat.com> | ||||
| 
 | ||||
| 	* libc/include/sys/features.h (__GNUC_PREREQ): Define.  Use | ||||
| 	throughout in place of explicit GNUC version checks. | ||||
| 	* libc/include/_ansi.h (_NOINLINE): Define. | ||||
| 	(_NOINLINE_STATIC): Define. | ||||
| 	* libc/stdio/vfprintf.c (__sbprintf): Define _NOINLINE_STATIC. | ||||
| 
 | ||||
| 2012-10-09  Peter Rosin  <peda@lysator.liu.se> | ||||
| 
 | ||||
| 	* libc/posix/wordfree.c (wordfree): The wrong words are freed | ||||
|  |  | |||
|  | @ -34,9 +34,7 @@ | |||
| #define _BEGIN_STD_C extern "C" { | ||||
| #define _END_STD_C  } | ||||
| #endif | ||||
| #if defined(__GNUC__) && \ | ||||
|   ( (__GNUC__ >= 4) || \ | ||||
|     ( (__GNUC__ >= 3) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ >= 3) ) ) | ||||
| #if __GNUC_PREREQ (3, 3) | ||||
| #define _NOTHROW __attribute__ ((nothrow)) | ||||
| #else | ||||
| #define _NOTHROW throw() | ||||
|  | @ -133,4 +131,14 @@ | |||
| #define _ELIDABLE_INLINE static __inline__ | ||||
| #endif | ||||
| 
 | ||||
| #if __GNUC_PREREQ (3, 1) | ||||
| #define _NOINLINE		__attribute__ ((__noinline__)) | ||||
| #define _NOINLINE_STATIC	_NOINLINE static | ||||
| #else | ||||
| /* On non-GNU compilers and GCC prior to version 3.1 the compiler can't be
 | ||||
|    trusted not to inline if it is static. */ | ||||
| #define _NOINLINE | ||||
| #define _NOINLINE_STATIC | ||||
| #endif | ||||
| 
 | ||||
| #endif /* _ANSIDECL_H_ */ | ||||
|  |  | |||
|  | @ -12,8 +12,7 @@ extern "C" { | |||
| /*
 | ||||
|  * Guess on types by examining *_MIN / *_MAX defines. | ||||
|  */ | ||||
| #if defined(__GNUC__) && ((__GNUC__ >= 4) || (__GNUC__ >= 3 ) \ | ||||
|   && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ > 2 )) | ||||
| #if __GNUC_PREREQ (3, 3) | ||||
| /* GCC >= 3.3.0 has __<val>__ implicitly defined. */ | ||||
| #define __EXP(x) __##x##__ | ||||
| #else | ||||
|  |  | |||
|  | @ -34,10 +34,7 @@ union __ldmath | |||
| /* Natural log of 2 */ | ||||
| #define _M_LN2        0.693147180559945309417 | ||||
| 
 | ||||
| #if defined(__GNUC__) && \ | ||||
|   ( (__GNUC__ >= 4) || \ | ||||
|     ( (__GNUC__ >= 3) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ >= 3) ) ) | ||||
| 
 | ||||
| #if __GNUC_PREREQ (3, 3) | ||||
|  /* gcc >= 3.3 implicitly defines builtins for HUGE_VALx values.  */ | ||||
| 
 | ||||
| # ifndef HUGE_VAL | ||||
|  |  | |||
|  | @ -9,13 +9,13 @@ | |||
| #ifndef _STDINT_H | ||||
| #define _STDINT_H | ||||
| 
 | ||||
| #include <_ansi.h> | ||||
| 
 | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
| 
 | ||||
| #if defined(__GNUC__) && \ | ||||
|   ( (__GNUC__ >= 4) || \ | ||||
|     ( (__GNUC__ >= 3) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ > 2) ) ) | ||||
| #if __GNUC_PREREQ (3, 2) | ||||
| /* gcc > 3.2 implicitly defines the values we are interested */ | ||||
| #define __STDINT_EXP(x) __##x##__ | ||||
| #else | ||||
|  |  | |||
|  | @ -25,6 +25,16 @@ | |||
| extern "C" { | ||||
| #endif | ||||
| 
 | ||||
| /* Macro to test version of GCC.  Returns 0 for non-GCC or too old GCC. */ | ||||
| #ifndef __GNUC_PREREQ | ||||
| # if defined __GNUC__ && defined __GNUC_MINOR__ | ||||
| #  define __GNUC_PREREQ(maj, min) \ | ||||
| 	((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) | ||||
| # else | ||||
| #  define __GNUC_PREREQ(maj, min) 0 | ||||
| # endif | ||||
| #endif /* __GNUC_PREREQ */ | ||||
| 
 | ||||
| /* RTEMS adheres to POSIX -- 1003.1b with some features from annexes.  */ | ||||
| 
 | ||||
| #ifdef __rtems__ | ||||
|  |  | |||
|  | @ -58,8 +58,7 @@ | |||
|  */ | ||||
| 
 | ||||
| /* requires GCC >= 3.1 */ | ||||
| #if !defined(__GNUC__) || __GNUC__ < 3 || \ | ||||
| 	(__GNUC__ == 3 && __GNUC_MINOR__ < 1) | ||||
| #if !__GNUC_PREREQ (3, 1) | ||||
| #error "<tgmath.h> not implemented for this compiler" | ||||
| #endif | ||||
| 
 | ||||
|  |  | |||
|  | @ -34,6 +34,7 @@ | |||
|  */ | ||||
| 
 | ||||
| #include <sys/cdefs.h> | ||||
| #include <_ansi.h> | ||||
| 
 | ||||
| /*
 | ||||
|  * The matching engine and friends.  This file is #included by regexec.c | ||||
|  | @ -364,8 +365,7 @@ sopno stopst; | |||
| 	char *ssp;		/* start of string matched by subsubRE */ | ||||
| 	char *sep;		/* end of string matched by subsubRE */ | ||||
| 	char *oldssp;		/* previous ssp */ | ||||
| #if defined (__GNUC__) && \ | ||||
|     ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4) | ||||
| #if __GNUC_PREREQ (4, 6) | ||||
| /* dp is only used for assertion testing which, for some reason, is not
 | ||||
|    recognized as usage. */ | ||||
| #pragma GCC diagnostic ignored "-Wunused-but-set-variable" | ||||
|  |  | |||
|  | @ -333,8 +333,10 @@ int __sprint_r (struct _reent *, FILE *, register struct __suio *); | |||
|  * Helper function for `fprintf to unbuffered unix file': creates a | ||||
|  * temporary buffer.  We only work on write-only files; this avoids | ||||
|  * worries about ungetc buffers and so forth. | ||||
|  * | ||||
|  * Make sure to avoid inlining when optimizing for size. | ||||
|  */ | ||||
| static int | ||||
| _NOINLINE_STATIC int | ||||
| _DEFUN(__sbprintf, (rptr, fp, fmt, ap), | ||||
|        struct _reent *rptr _AND | ||||
|        register FILE *fp   _AND | ||||
|  |  | |||
|  | @ -84,8 +84,7 @@ QUICKREF | |||
|   (!memchr ((h) + (h_l), '\0', (j) + (n_l) - (h_l))	\ | ||||
|    && ((h_l) = (j) + (n_l))) | ||||
| # define CANON_ELEMENT(c) tolower (c) | ||||
| #if defined (__GNUC__) && \ | ||||
|     ((__GNUC__ == 4 && __GNUC_MINOR__ >= 2) || __GNUC__ > 4) | ||||
| #if __GNUC_PREREQ (4, 2) | ||||
| /* strncasecmp uses signed char, CMP_FUNC is expected to use unsigned char. */ | ||||
| #pragma GCC diagnostic ignored "-Wpointer-sign" | ||||
| #endif | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue