X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fsystem.h;h=7c7d07ea3eef6fc07c835d3e818e6f06dedcbeee;hb=58974e7878ca6acff733dda44e216904c01dc20e;hp=35f9ac8a3f44ad8ea693eec4128d0af00661f25f;hpb=2101edf25a1a9267864cbba246b5aa5a99f7f2a2;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/system.h b/gcc/system.h index 35f9ac8a3f4..7c7d07ea3ee 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -1,7 +1,7 @@ /* Get common system includes and various definitions and declarations based on autoconf macros. Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, - 2009, 2010 + 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GCC. @@ -90,6 +90,10 @@ along with GCC; see the file COPYING3. If not see # define fputc(C, Stream) fputc_unlocked (C, Stream) # endif +#ifdef __cplusplus +extern "C" { +#endif + # ifdef HAVE_CLEARERR_UNLOCKED # undef clearerr # define clearerr(Stream) clearerr_unlocked (Stream) @@ -170,6 +174,10 @@ extern int fprintf_unlocked (FILE *, const char *, ...); # endif # endif +#ifdef __cplusplus +} +#endif + #endif /* ??? Glibc's fwrite/fread_unlocked macros cause @@ -180,7 +188,7 @@ extern int fprintf_unlocked (FILE *, const char *, ...); /* There are an extraordinary number of issues with . The last straw is that it varies with the locale. Use libiberty's replacement instead. */ -#include +#include "safe-ctype.h" #include @@ -190,6 +198,10 @@ extern int fprintf_unlocked (FILE *, const char *, ...); extern int errno; #endif +#ifdef __cplusplus +# include +#endif + /* Some of glibc's string inlines cause warnings. Plus we'd rather rely on (and therefore test) GCC's string builtins. */ #define __NO_STRING_INLINES @@ -314,6 +326,9 @@ extern int errno; #ifndef O_WRONLY # define O_WRONLY 1 #endif +#ifndef O_BINARY +# define O_BINARY 0 +#endif /* Some systems define these in, e.g., param.h. We undefine these names here to avoid the warnings. We prefer to use our definitions since we @@ -353,11 +368,40 @@ extern int errno; #define WCOREFLG 0200 #endif +#include +#if !defined (SIGCHLD) && defined (SIGCLD) +# define SIGCHLD SIGCLD +#endif + +#ifdef HAVE_SYS_MMAN_H +# include +#endif + +#ifndef MAP_FAILED +# define MAP_FAILED ((void *)-1) +#endif + +#if !defined (MAP_ANONYMOUS) && defined (MAP_ANON) +# define MAP_ANONYMOUS MAP_ANON +#endif + +#ifdef HAVE_SYS_RESOURCE_H +# include +#endif + +#ifdef HAVE_SYS_TIMES_H +# include +#endif + /* The HAVE_DECL_* macros are three-state, undefined, 0 or 1. If they are defined to 0 then we must provide the relevant declaration here. These checks will be in the undefined state while configure is running so be careful to test "defined (HAVE_DECL_*)". */ +#ifdef __cplusplus +extern "C" { +#endif + #if defined (HAVE_DECL_ATOF) && !HAVE_DECL_ATOF extern double atof (const char *); #endif @@ -398,10 +442,18 @@ extern void *sbrk (int); extern char *strstr (const char *, const char *); #endif +#ifdef __cplusplus +} +#endif + #ifdef HAVE_MALLOC_H #include #endif +#ifdef __cplusplus +extern "C" { +#endif + #if defined (HAVE_DECL_MALLOC) && !HAVE_DECL_MALLOC extern void *malloc (size_t); #endif @@ -414,6 +466,10 @@ extern void *calloc (size_t, size_t); extern void *realloc (void *, size_t); #endif +#ifdef __cplusplus +} +#endif + #ifdef HAVE_STDINT_H #include #endif @@ -422,6 +478,10 @@ extern void *realloc (void *, size_t); #include #endif +#ifdef __cplusplus +extern "C" { +#endif + /* If the system doesn't provide strsignal, we get it defined in libiberty but no declaration is supplied. */ #if !defined (HAVE_STRSIGNAL) \ @@ -461,6 +521,10 @@ extern int snprintf (char *, size_t, const char *, ...); extern int vsnprintf(char *, size_t, const char *, va_list); #endif +#ifdef __cplusplus +} +#endif + /* 1 if we have C99 designated initializers. */ #if !defined(HAVE_DESIGNATED_INITIALIZERS) #define HAVE_DESIGNATED_INITIALIZERS \ @@ -468,6 +532,12 @@ extern int vsnprintf(char *, size_t, const char *, va_list); && !defined(__cplusplus)) #endif +#if !defined(HAVE_DESIGNATED_UNION_INITIALIZERS) +#define HAVE_DESIGNATED_UNION_INITIALIZERS \ + (((GCC_VERSION >= 2007) || (__STDC_VERSION__ >= 199901L)) \ + && (!defined(__cplusplus) || (GCC_VERSION >= 4007))) +#endif + #if HAVE_SYS_STAT_H # include #endif @@ -526,6 +596,10 @@ extern int vsnprintf(char *, size_t, const char *, va_list); # define mkdir(a,b) mkdir(a) #endif +#ifndef HAVE_KILL +# define kill(p,s) raise(s) +#endif + /* Provide a way to print an address via printf. */ #ifndef HOST_PTR_PRINTF #define HOST_PTR_PRINTF "%p" @@ -547,6 +621,11 @@ extern int vsnprintf(char *, size_t, const char *, va_list); # endif #endif +#if defined (ENABLE_PLUGIN) && defined (HAVE_DLFCN_H) +/* If plugin support is enabled, we could use libdl. */ +#include +#endif + /* Get libiberty declarations. */ #include "libiberty.h" @@ -557,15 +636,6 @@ extern int vsnprintf(char *, size_t, const char *, va_list); #define HOST_BIT_BUCKET "/dev/null" #endif -/* Be conservative and only use enum bitfields with GCC. - FIXME: provide a complete autoconf test for buggy enum bitfields. */ - -#if (GCC_VERSION > 2000) -#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE -#else -#define ENUM_BITFIELD(TYPE) unsigned int -#endif - #ifndef offsetof #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER) #endif @@ -684,6 +754,12 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; #pragma GCC poison malloc realloc #endif +/* The %m format should be used when GCC's main diagnostic functions + supporting %m are available, and xstrerror from libiberty + otherwise. */ +#undef strerror + #pragma GCC poison strerror + /* Old target macros that have moved to the target hooks structure. */ #pragma GCC poison ASM_OPEN_PAREN ASM_CLOSE_PAREN \ FUNCTION_PROLOGUE FUNCTION_EPILOGUE \ @@ -715,7 +791,20 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; ALLOCATE_INITIAL_VALUE LEGITIMIZE_ADDRESS FRAME_POINTER_REQUIRED \ CAN_ELIMINATE TRAMPOLINE_TEMPLATE INITIALIZE_TRAMPOLINE \ TRAMPOLINE_ADJUST_ADDRESS STATIC_CHAIN STATIC_CHAIN_INCOMING \ - RETURN_POPS_ARGS UNITS_PER_SIMD_WORD + RETURN_POPS_ARGS UNITS_PER_SIMD_WORD OVERRIDE_OPTIONS \ + OPTIMIZATION_OPTIONS CLASS_LIKELY_SPILLED_P \ + USING_SJLJ_EXCEPTIONS TARGET_UNWIND_INFO \ + LABEL_ALIGN_MAX_SKIP LOOP_ALIGN_MAX_SKIP \ + LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP JUMP_ALIGN_MAX_SKIP \ + CAN_DEBUG_WITHOUT_FP UNLIKELY_EXECUTED_TEXT_SECTION_NAME \ + HOT_TEXT_SECTION_NAME LEGITIMATE_CONSTANT_P ALWAYS_STRIP_DOTDOT \ + OUTPUT_ADDR_CONST_EXTRA + +/* Target macros only used for code built for the target, that have + moved to libgcc-tm.h or have never been present elsewhere. */ + #pragma GCC poison DECLARE_LIBRARY_RENAMES LIBGCC2_GNU_PREFIX \ + MD_UNWIND_SUPPORT MD_FROB_UPDATE_CONTEXT ENABLE_EXECUTE_STACK \ + REG_VALUE_IN_UNWIND_CONTEXT ASSUME_EXTENDED_UNWIND_CONTEXT /* Other obsolete target macros, or macros that used to be in target headers and were not used, and may be obsolete or may never have @@ -770,7 +859,17 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; ASM_OUTPUT_SHARED_LOCAL ASM_MAKE_LABEL_LINKONCE \ STACK_CHECK_PROBE_INTERVAL STACK_CHECK_PROBE_LOAD \ ORDER_REGS_FOR_LOCAL_ALLOC FUNCTION_OUTGOING_VALUE \ - ASM_DECLARE_CONSTANT_NAME MODIFY_TARGET_NAME SWITCHES_NEED_SPACES + ASM_DECLARE_CONSTANT_NAME MODIFY_TARGET_NAME SWITCHES_NEED_SPACES \ + SWITCH_CURTAILS_COMPILATION SWITCH_TAKES_ARG WORD_SWITCH_TAKES_ARG \ + TARGET_OPTION_TRANSLATE_TABLE HANDLE_PRAGMA_PACK_PUSH_POP \ + HANDLE_SYSV_PRAGMA HANDLE_PRAGMA_WEAK CONDITIONAL_REGISTER_USAGE \ + FUNCTION_ARG_BOUNDARY MUST_USE_SJLJ_EXCEPTIONS US_SOFTWARE_GOFAST \ + USING_SVR4_H SVR4_ASM_SPEC FUNCTION_ARG FUNCTION_ARG_ADVANCE \ + FUNCTION_INCOMING_ARG IRA_COVER_CLASSES TARGET_VERSION \ + MACHINE_TYPE TARGET_HAS_TARGETCM ASM_OUTPUT_BSS \ + SETJMP_VIA_SAVE_AREA FORBIDDEN_INC_DEC_CLASSES \ + PREFERRED_OUTPUT_RELOAD_CLASS SYSTEM_INCLUDE_DIR \ + STANDARD_INCLUDE_DIR STANDARD_INCLUDE_COMPONENT /* Hooks that are no longer used. */ #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \ @@ -780,10 +879,19 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; LANG_HOOKS_MAYBE_BUILD_CLEANUP LANG_HOOKS_UPDATE_DECL_AFTER_SAVING \ LANG_HOOKS_POPLEVEL LANG_HOOKS_TRUTHVALUE_CONVERSION \ TARGET_PROMOTE_FUNCTION_ARGS TARGET_PROMOTE_FUNCTION_RETURN \ - LANG_HOOKS_MISSING_ARGUMENT + LANG_HOOKS_MISSING_ARGUMENT LANG_HOOKS_HASH_TYPES \ + TARGET_HANDLE_OFAST TARGET_OPTION_OPTIMIZATION \ + TARGET_IRA_COVER_CLASSES TARGET_HELP + +/* Arrays that were deleted in favor of a functional interface. */ + #pragma GCC poison built_in_decls implicit_built_in_decls + +/* Hooks into libgcc2. */ + #pragma GCC poison LIBGCC2_DOUBLE_TYPE_SIZE LIBGCC2_WORDS_BIG_ENDIAN \ + LIBGCC2_FLOAT_WORDS_BIG_ENDIAN /* Miscellaneous macros that are no longer used. */ - #pragma GCC poison USE_MAPPED_LOCATION + #pragma GCC poison USE_MAPPED_LOCATION GET_ENVIRONMENT /* Libiberty macros that are no longer used in GCC. */ #undef ANSI_PROTOTYPES