* 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