diff options
author | Bruce Korb <bkorb@gnu.org> | 2013-07-06 17:43:46 +0000 |
---|---|---|
committer | Bruce Korb <korbb@gcc.gnu.org> | 2013-07-06 17:43:46 +0000 |
commit | bbeedee063cd58243667ad4db224ffd8bf9dceb4 (patch) | |
tree | f1760d9fbd600bbb68caca8532d1bfa63852df4d /fixincludes/inclhack.def | |
parent | eabb5f48f8cc10b62b64820e9190c2f74a69965d (diff) | |
download | gcc-bbeedee063cd58243667ad4db224ffd8bf9dceb4.zip gcc-bbeedee063cd58243667ad4db224ffd8bf9dceb4.tar.gz gcc-bbeedee063cd58243667ad4db224ffd8bf9dceb4.tar.bz2 |
Remove cdef_cplusplus hack.
Add comments in front of fixes.
Trim lines over 90 characters to less than 80.
From-SVN: r200738
Diffstat (limited to 'fixincludes/inclhack.def')
-rw-r--r-- | fixincludes/inclhack.def | 336 |
1 files changed, 121 insertions, 215 deletions
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def index 42853da..c92170f 100644 --- a/fixincludes/inclhack.def +++ b/fixincludes/inclhack.def @@ -64,7 +64,6 @@ fix = { _EOArg_; }; - /* On AIX when _LARGE_FILES is defined fcntl.h defines open to * open64 and creat to creat64. This fixes fcntl.h to * undef those defines and use __asm__ to alias the symbols if @@ -103,7 +102,6 @@ fix = { _EOArg_; }; - /* * On Mac OS 10.3.9, the 'long double' functions are available in * libSystem, but are not prototyped in math.h. @@ -237,7 +235,6 @@ fix = { _EndOfHeader_; }; - /* * This fixes __FD_ZERO bug for glibc-1.x */ @@ -275,7 +272,6 @@ fix = { _EndOfHeader_; }; - /* * This fixes __FD_ZERO bug for glibc-2.0.x */ @@ -317,7 +313,6 @@ fix = { _EndOfHeader_; }; - /* * Solaris <sys/varargs.h> is a DDK (aka kernel-land) header providing * the same interface as <stdarg.h>. No idea why they couldn't have just @@ -336,7 +331,6 @@ fix = { _EndOfHeader_; }; - /* * Fix non-ANSI memcpy declaration that conflicts with gcc's builtin * declaration on Sun OS 4.x. We must only fix this on Sun OS 4.x, because @@ -574,7 +568,6 @@ fix = { _EndOfHeader_; }; - /* * complex.h on AIX 5 and AIX 6 define _Complex_I and I in terms of __I, * which only is provided by AIX xlc C99. @@ -727,7 +720,6 @@ fix = { "{...init stuff...}"; }; - /* * AIX stdint.h fixes. */ @@ -744,7 +736,9 @@ fix = { "#define UINT16_MAX (65535U)"; }; - +/* + * aix_stdint_2 + */ fix = { hackname = aix_stdint_2; mach = "*-*-aix*"; @@ -773,7 +767,9 @@ fix = { "#define UINTPTR_MAX UINT32_MAX"; }; - +/* + * aix_stdint_3 + */ fix = { hackname = aix_stdint_3; mach = "*-*-aix*"; @@ -796,7 +792,9 @@ fix = { "#define PTRDIFF_MAX INT32_MAX"; }; - +/* + * aix_stdint_4 + */ fix = { hackname = aix_stdint_4; mach = "*-*-aix*"; @@ -813,7 +811,9 @@ fix = { "#define SIZE_MAX UINT32_MAX"; }; - +/* + * aix_stdint_5 + */ fix = { hackname = aix_stdint_5; mach = "*-*-aix*"; @@ -827,7 +827,6 @@ fix = { "#define UINT16_C(c) __CONCAT__(c,U)"; }; - /* * sys/machine.h on AIX 4.3.3 puts whitespace between a \ and a newline * in an otherwise harmless (and #ifed out) macro definition @@ -842,7 +841,6 @@ fix = { " bar \\ \n baz \\ \n bat"; }; - /* * sys/wait.h on AIX 5.2 defines macros that have both signed and * unsigned types in conditional expressions. @@ -853,10 +851,10 @@ fix = { select = '\? (\(\(\(\(unsigned[^)]*\)[^)]*\) >> [^)]*\) \& 0xff\) : -1)'; c_fix = format; c_fix_arg = "? (int)%1"; - test_text = "#define WSTOPSIG(__x) (int)(WIFSTOPPED(__x) ? ((((unsigned int)__x) >> 8) & 0xff) : -1)"; + test_text = "#define WSTOPSIG(__x) " + "(int)(WIFSTOPPED(__x) ? ((((unsigned int)__x) >> 8) & 0xff) : -1)"; }; - /* * sys/signal.h on some versions of AIX uses volatile in the typedef of * sig_atomic_t, which causes gcc to generate a warning about duplicate @@ -872,7 +870,6 @@ fix = { test_text = "typedef volatile int sig_atomic_t;"; }; - /* * Fix __assert declaration in assert.h on Alpha OSF/1. */ @@ -885,7 +882,6 @@ fix = { test_text = 'extern void __assert(char *, char *, int);'; }; - /* * Fix assert macro in assert.h on Alpha OSF/1. * The superfluous int cast breaks C++. @@ -900,7 +896,6 @@ fix = { ': __assert(#EX, __FILE__, __LINE__))'; }; - /* * Fix getopt declarations in stdio.h and stdlib.h on Alpha OSF/1 and AIX. */ @@ -914,7 +909,6 @@ fix = { test_text = 'extern int getopt(int, char *[], char *);'; }; - /* * Fix missing semicolon on Alpha OSF/4 in <net/if.h> */ @@ -927,7 +921,6 @@ fix = { test_text = ' struct sockaddr vmif_paddr /* protocol address */'; }; - /* * Remove erroneous parentheses in sym.h on Alpha OSF/1. */ @@ -940,7 +933,6 @@ fix = { test_text = "#ifndef(__mips64) /* bogus */\nextern int foo;\n#endif"; }; - /* * Fix return value of sbrk in unistd.h on Alpha OSF/1 V2.0 * And OpenBSD. @@ -954,7 +946,6 @@ fix = { test_text = "extern char* sbrk(ptrdiff_t increment);"; }; - /* * For C++, avoid any typedef or macro definition of bool, * and use the built in type instead. @@ -977,7 +968,9 @@ fix = { test_text = "# define bool\t char \n"; }; - +/* + * avoid_bool_type + */ fix = { hackname = avoid_bool_type; files = curses.h; @@ -994,7 +987,6 @@ fix = { test_text = "typedef unsigned int\tbool \t; /* bool\n type */"; }; - /* * For C++, avoid any typedef definition of wchar_t, * and use the built in type instead. @@ -1018,7 +1010,6 @@ fix = { test_text = "typedef unsigned short\twchar_t \t; /* wchar_t\n type */"; }; - /* * Fix `typedef struct term;' on hppa1.1-hp-hpux9. */ @@ -1032,7 +1023,6 @@ fix = { test_text = 'typedef struct term;'; }; - /* * Fix one other error in this file: * a mismatched quote not inside a C comment. @@ -1047,7 +1037,6 @@ fix = { test_text = "/* doesn't have matched single quotes */"; }; - /* * check for broken assert.h that needs stdio.h */ @@ -1061,7 +1050,6 @@ fix = { test_text = "extern FILE* stderr;"; }; - /* * check for broken assert.h that needs stdlib.h */ @@ -1098,7 +1086,6 @@ fix = { "extern double cabs ( _Complex z );"; }; - /* * Fixup Darwin's broken check for __builtin_nanf. */ @@ -1119,7 +1106,6 @@ fix = { test_text = "#if defined(__APPLE_CC__) && (__APPLE_CC__ >= 1345)"; }; - /* * Various systems derived from BSD4.4 contain a macro definition * for vfscanf that interacts badly with requirements of builtin-attrs.def. @@ -1140,22 +1126,6 @@ fix = { }; /* - * 'g++ -std=c++11' defines __cplusplus to 201103L, which suggests - * that it conforms to ISO/IEC 14882:2011. It currently does - * not support the [[noreturn]] procedure attribute. - * When it does, this hack should be removed. - * SEE: gcc.gnu.org/bugzilla/show_bug.cgi?id=51776 - */ -fix = { - hackname = cdef_cplusplus; - files = sys/cdefs.h; - select = '\[\[noreturn\]\]'; - c_fix = format; - c_fix_arg = '__attribute__((__noreturn__))'; - test_text = "#define _Noreturn [[noreturn]]"; -}; - -/* * Fix various macros used to define ioctl numbers. * The traditional syntax was: * @@ -1197,7 +1167,6 @@ fix = { test_text = "#define TCTRLFOO BSD43_CTRL(T, 1)"; }; - /* * sys/mman.h on HP/UX is not C++ ready, * even though NO_IMPLICIT_EXTERN_C is defined on HP/UX. @@ -1242,7 +1211,6 @@ fix = { test_text = '#include "architecture/ppc/math.h"'; }; - /* * On darwin8 and earlier, mach-o/swap.h isn't properly guarded * by 'extern "C"'. On darwin7 some mach/ headers aren't properly guarded. @@ -1268,12 +1236,10 @@ fix = { test_text = "extern void swap_fat_header();\n"; }; - /* * AvailabilityMacros.h on Darwin breaks with GCC 4.0, because of * bad __GNUC__ tests. */ - fix = { hackname = darwin_gcc4_breakage; mach = "*-*-darwin*"; @@ -1285,7 +1251,6 @@ fix = { "(__GNUC_MINOR__ >= 1)\n"; }; - /* * __private_extern__ doesn't exist in FSF GCC. Even if it did, * why would you ever put it in a system header file? @@ -1303,7 +1268,6 @@ fix = { "unsigned long *address);\n"; }; - /* * Darwin headers have a stdint.h that defines UINT8_C and UINT16_C to * unsigned constants. @@ -1320,7 +1284,6 @@ fix = { "#define UINT16_C(v) (v ## U)"; }; - /* * Darwin headers have a stdint.h that defines INTPTR_MIN and INTPTR_MAX * with wrong types. @@ -1353,7 +1316,6 @@ fix = { "#endif"; }; - /* * Darwin headers have a stdint.h that defines UINTPTR_MAX with a wrong type. */ @@ -1379,7 +1341,6 @@ fix = { "#endif"; }; - /* * Darwin headers have a stdint.h that defines SIZE_MAX with a wrong type. */ @@ -1405,7 +1366,6 @@ fix = { "#endif"; }; - /* * Darwin headers have a stdint.h that defines {U,}INTMAX_{MIN,MAX} * with a wrong type. @@ -1434,7 +1394,6 @@ fix = { "#define UINTMAX_MAX UINT64_MAX"; }; - /* * Darwin headers have a stdint.h that defines {U,}INTMAX_C * with a wrong type. @@ -1467,7 +1426,6 @@ fix = { "#endif"; }; - /* * Darwin headers have a stdint.h that defines {U,}INTMAX_C * with a wrong type. @@ -1490,7 +1448,6 @@ fix = { "#define UINTMAX_C(v) (v ## ULL)"; }; - /* * Fix <c_asm.h> on Digital UNIX V4.0: * It contains a prototype for a DEC C internal asm() function, @@ -1508,7 +1465,6 @@ fix = { "};\n#pragma intrinsic( dasm )\n/* END ASM TEST*/"; }; - /* * Fix typo in <wchar.h> on DJGPP 2.03. */ @@ -1524,7 +1480,6 @@ fix = { "extern __DJ_wint_t x;\n"; }; - /* * Fix these Sun OS files to avoid an invalid identifier in an #ifdef. */ @@ -1539,7 +1494,6 @@ fix = { test_text = "#ifdef ecd.cursor\n#error bogus\n#endif /* ecd+cursor */"; }; - /* * Between 8/24/1998 and 2/17/2001, FreeBSD system headers presume * neither the existence of GCC 3 nor its exact feature set yet break @@ -1556,7 +1510,6 @@ fix = { test_text = '#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7'; }; - /* * Some releases of FreeBSD 4 and FreeBSD 5.0 and 5.1 system headers presume * neither the existence of GCC 4 nor its exact feature set yet break @@ -1572,7 +1525,6 @@ fix = { test_text = '#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ == 3'; }; - /* * Some versions of glibc don't expect the C99 inline semantics. */ @@ -1590,7 +1542,6 @@ fix = { EOT; }; - /* * Similar, but a version that didn't have __NO_INLINE__ */ @@ -1608,7 +1559,6 @@ fix = { EOT; }; - /* * The glibc_c99_inline_1 fix should have fixed everything. Unfortunately * there are many glibc headers which do not respect __USE_EXTERN_INLINES. @@ -1644,7 +1594,9 @@ fix = { EOT; }; - +/* + * glibc_c99_inline_3 + */ fix = { hackname = glibc_c99_inline_3; files = bits/string2.h, '*/bits/string2.h'; @@ -1662,7 +1614,9 @@ fix = { EOT; }; - +/* + * glibc_c99_inline_4 + */ fix = { hackname = glibc_c99_inline_4; files = sys/sysmacros.h, '*/sys/sysmacros.h', wchar.h, '*/wchar.h'; @@ -1676,7 +1630,6 @@ fix = { EOT; }; - /* glibc-2.3.5 defines pthread mutex initializers incorrectly, * so we replace them with versions that correspond to the * definition. @@ -1750,7 +1703,6 @@ fix = { _EOText_; }; - /* glibc versions before 2.5 have a version of stdint.h that defines UINT8_C and UINT16_C to produce unsigned constants, as do uClibc versions with stdint.h based on those glibc versions. */ @@ -1761,10 +1713,11 @@ fix = { c_fix = format; c_fix_arg = "# define UINT8_C(c)\tc\n# define UINT16_C(c)\tc"; c_fix_arg = "# define UINT8_C\\(c\\)\tc ## U\n# define UINT16_C\\(c\\)\tc ## U"; - test_text = "/* This file is part of the GNU C Library. */\n# define UINT8_C(c)\tc ## U\n# define UINT16_C(c)\tc ## U"; + test_text = "/* This file is part of the GNU C Library. */\n" + "# define UINT8_C(c)\tc ## U\n" + "# define UINT16_C(c)\tc ## U"; }; - /* Some versions of glibc have a version of bits/string2.h that produces "value computed is not used" warnings from strncpy; fix this definition by using __builtin_strncpy instead as in newer @@ -1796,7 +1749,9 @@ fix = { select = '\(\(\(type\) 0.25\) && \(\(type\) 0.25 - 1\)\)'; bypass = "__floating_type\\(type\\) \\\\\n.*__builtin_classify_type"; c_fix = format; - c_fix_arg = "(__builtin_classify_type ((type) 0) == 8 || (__builtin_classify_type ((type) 0) == 9 && __builtin_classify_type (__real__ ((type) 0)) == 8))"; + c_fix_arg = "(__builtin_classify_type ((type) 0) == 8 || " + "(__builtin_classify_type ((type) 0) == 9 && " + "__builtin_classify_type (__real__ ((type) 0)) == 8))"; test_text = "# define __floating_type(type) (((type) 0.25) && ((type) 0.25 - 1))"; }; @@ -1828,7 +1783,6 @@ fix = { "typedef ushort_t wchar_t; /* ushort_t */"; }; - /* * Fix HP & Sony's use of "../machine/xxx.h" * to refer to: <machine/xxx.h> @@ -1848,7 +1802,6 @@ fix = { test_text = ' # include "../machine/mumble.h"'; }; - /* * Check for (...) in C++ code in HP/UX sys/file.h. */ @@ -1864,7 +1817,6 @@ fix = { test_text = "extern void foo(...); /* HPUX_SOURCE - bad varargs */"; }; - /* * Un-Hide a series of five FP defines from post-1999 compliance GCC: * FP_NORMAL, FP_ZERO, FP_INFINITE, FP_SUBNORMAL and FP_NAN @@ -1898,7 +1850,6 @@ fix = { "# define FP_NAN 4\n"; }; - /* * Delete C++ double pow (double, int) inline function from HP-UX 10 & 11 * math.h to prevent clash with define in c_std/bits/std_cmath.h. @@ -1946,7 +1897,6 @@ fix = { " }\n"; }; - /* * Fix hpux 10.X missing ctype declarations 1 */ @@ -1968,7 +1918,6 @@ fix = { test_text = "# define _toupper(__c) __toupper(__c)\n"; }; - /* * Fix hpux 10.X missing ctype declarations 2 */ @@ -2009,7 +1958,6 @@ fix = { " extern unsigned int *__SB_masks;\n"; }; - /* * Fix hpux 10.X missing stdio declarations */ @@ -2031,7 +1979,6 @@ fix = { test_text = "# define _iob __iob\n"; }; - /* * Make sure hpux defines abs in header. */ @@ -2045,7 +1992,6 @@ fix = { test_text = "#ifndef _MATH_INCLUDED"; }; - /* * Keep HP-UX 11 from stomping on C++ math namespace * with defines for fabsf. @@ -2065,7 +2011,6 @@ fix = { "#endif"; }; - /* * Fix C99 constant in __POINTER_SET define. */ @@ -2080,7 +2025,6 @@ fix = { test_text = "#define __POINTER_SET\t\t((void *) 1LL)"; }; - /* * Prevent HP-UX 11 from defining __size_t and preventing size_t from * being defined by having it define _hpux_size_t instead. @@ -2098,7 +2042,6 @@ fix = { " extern int getpwuid_r( char *, __size_t, struct passwd **);\n"; }; - /* * Fix hpux 11.00 broken snprintf declaration * (third argument is char *, needs to be const char * to prevent @@ -2132,7 +2075,6 @@ fix = { ' __va__list);'; }; - /* * get rid of bogus inline definitions in HP-UX 8.0 */ @@ -2150,7 +2092,6 @@ fix = { "inline double sqr(double v) { return v**0.5; }"; }; - /* * Fix hpux broken ctype macros */ @@ -2166,7 +2107,6 @@ fix = { "# define isalpha(__c) (__SB_masks ? __SB_masks[__c] & _IS\n"; }; - /* * Fix hpux broken #ifndef _XOPEN_SOURCE_EXTENDED conditional on htonl etc. */ @@ -2194,7 +2134,6 @@ fix = { "#endif /* ! _XOPEN_SOURCE_EXTENDED */"; }; - /* * HP-UX long_double */ @@ -2225,11 +2164,15 @@ fix = { hackname = hpux_long_double_2; mach = "hppa*-*-hpux11.3*"; files = stdlib.h; - select = "#[ \t]*if[ \t]*!defined\\(__ia64\\) \\|\\| defined\\(_PROTOTYPES\\) \\|\\| defined\\(_LONG_DOUBLE_STRUCT\\)"; + select = "#[ \t]*if[ \t]*!defined\\(__ia64\\) \\|\\| " + "defined\\(_PROTOTYPES\\) \\|\\| " + "defined\\(_LONG_DOUBLE_STRUCT\\)"; c_fix = format; c_fix_arg = "# if !defined(_PROTOTYPES) || defined(_LONG_DOUBLE_STRUCT)"; - test_text = "# if !defined(__ia64) || !defined(_PROTOTYPES) || defined(_LONG_DOUBLE_STRUCT)\n"; + test_text = "# if !defined(__ia64) || " + "!defined(_PROTOTYPES) || " + "defined(_LONG_DOUBLE_STRUCT)\n"; }; /* @@ -2246,7 +2189,6 @@ fix = { test_text = 'extern struct sigevent;'; }; - /* * Wrap spu_info in ifdef _KERNEL. GCC cannot handle an array of unknown * type and mpinfou is only defined when _KERNEL is set. @@ -2277,7 +2219,8 @@ fix = { select = "^[ \t]*extern sbsize_t sendfile.*\n.*, int\\)\\);\n"; c_fix = format; c_fix_arg = "#ifndef _APP32_64BIT_OFF_T\n%0#endif\n"; - test_text = " extern sbsize_t sendfile __((int, int, off_t, bsize_t,\n const struct iovec *, int));\n"; + test_text = " extern sbsize_t sendfile __((int, int, off_t, bsize_t,\n" + " const struct iovec *, int));\n"; }; fix = { @@ -2287,7 +2230,8 @@ fix = { select = "^[ \t]*extern sbsize_t sendpath.*\n.*, int\\)\\);\n"; c_fix = format; c_fix_arg = "#ifndef _APP32_64BIT_OFF_T\n%0#endif\n"; - test_text = " extern sbsize_t sendpath __((int, int, off_t, bsize_t,\n const struct iovec *, int));\n"; + test_text = " extern sbsize_t sendpath __((int, int, off_t, bsize_t,\n" + " const struct iovec *, int));\n"; }; fix = { @@ -2297,11 +2241,16 @@ fix = { files = errno.h; select = "^[ \t]*extern int errno;$"; c_fix = format; - c_fix_arg = "#ifdef __cplusplus\nextern \"C\" {\n#endif\n%0\n#ifdef __cplusplus\n}\n#endif"; + c_fix_arg = "#ifdef __cplusplus\n" + "extern \"C\" {\n" + "#endif\n" + "%0\n" + "#ifdef __cplusplus\n" + "}\n" + "#endif"; test_text = " extern int errno;\n"; }; - /* * Add missing braces to pthread initializer defines. */ @@ -2348,12 +2297,18 @@ fix = { hackname = hpux_c99_intptr; mach = "*-hp-hpux11.3*"; files = stdint-hpux11.h, stdint.h; - sed = "s@^[ \t]*#[ \t]*define[ \t]*PTRDIFF_MAX[ \t]*INT32_MAX[ \t]*$@#define PTRDIFF_MAX (2147483647l)@"; - sed = "s@^[ \t]*#[ \t]*define[ \t]*PTRDIFF_MIN[ \t]*INT32_MIN[ \t]*$@#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)@"; - sed = "s@^[ \t]*#[ \t]*define[ \t]*INTPTR_MAX[ \t]*INT32_MAX[ \t]*$@#define INTPTR_MAX (2147483647l)@"; - sed = "s@^[ \t]*#[ \t]*define[ \t]*INTPTR_MIN[ \t]*INT32_MIN[ \t]*$@#define INTPTR_MIN (-INTPTR_MAX - 1)@"; - sed = "s@^[ \t]*#[ \t]*define[ \t]*UINTPTR_MAX[ \t]*UINT32_MAX[ \t]*$@#define UINTPTR_MAX (4294967295ul)@"; - sed = "s@^[ \t]*#[ \t]*define[ \t]*SIZE_MAX[ \t]*UINT32_MAX[ \t]*$@#define SIZE_MAX (4294967295ul)@"; + sed = "s@^[ \t]*#[ \t]*define[ \t]*PTRDIFF_MAX[ \t]*" + "INT32_MAX[ \t]*$@#define PTRDIFF_MAX (2147483647l)@"; + sed = "s@^[ \t]*#[ \t]*define[ \t]*PTRDIFF_MIN[ \t]*" + "INT32_MIN[ \t]*$@#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)@"; + sed = "s@^[ \t]*#[ \t]*define[ \t]*INTPTR_MAX[ \t]*" + "INT32_MAX[ \t]*$@#define INTPTR_MAX (2147483647l)@"; + sed = "s@^[ \t]*#[ \t]*define[ \t]*INTPTR_MIN[ \t]*" + "INT32_MIN[ \t]*$@#define INTPTR_MIN (-INTPTR_MAX - 1)@"; + sed = "s@^[ \t]*#[ \t]*define[ \t]*UINTPTR_MAX[ \t]*" + "UINT32_MAX[ \t]*$@#define UINTPTR_MAX (4294967295ul)@"; + sed = "s@^[ \t]*#[ \t]*define[ \t]*SIZE_MAX[ \t]*" + "UINT32_MAX[ \t]*$@#define SIZE_MAX (4294967295ul)@"; test_text = "#define PTRDIFF_MAX INT32_MAX\n" "#define PTRDIFF_MIN INT32_MIN\n" "#define INTPTR_MAX INT32_MAX\n" @@ -2371,10 +2326,14 @@ fix = { mach = "*-hp-hpux11.[23]*"; files = inttypes.h; files = stdint-hpux11.h, stdint.h; - sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT8_C(__c)[ \t]*__CONCAT_U__(__c)[ \t]*$@#define UINT8_C(__c) (__c)@"; - sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT16_C(__c)[ \t]*__CONCAT_U__(__c)[ \t]*$@#define UINT16_C(__c) (__c)@"; - sed = "s@^[ \t]*#[ \t]*define[ \t]*INT32_C(__c)[ \t]*__CONCAT__(__c,l)[ \t]*$@#define INT32_C(__c) (__c)@"; - sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT32_C(__c)[ \t].*$@#define UINT32_C(__c) __CONCAT__(__c,u)@"; + sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT8_C(__c)[ \t]*" + "__CONCAT_U__(__c)[ \t]*$@#define UINT8_C(__c) (__c)@"; + sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT16_C(__c)[ \t]*" + "__CONCAT_U__(__c)[ \t]*$@#define UINT16_C(__c) (__c)@"; + sed = "s@^[ \t]*#[ \t]*define[ \t]*INT32_C(__c)[ \t]*" + "__CONCAT__(__c,l)[ \t]*$@#define INT32_C(__c) (__c)@"; + sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT32_C(__c)[ \t].*$@" + "#define UINT32_C(__c) __CONCAT__(__c,u)@"; test_text = "#define UINT8_C(__c) __CONCAT_U__(__c)\n" "#define UINT16_C(__c) __CONCAT_U__(__c)\n" "#define INT32_C(__c) __CONCAT__(__c,l)\n" @@ -2385,10 +2344,14 @@ fix = { hackname = hpux_c99_inttypes2; mach = "*-hp-hpux11.2*"; files = stdint-hpux11.h, stdint.h; - sed = "s@^[ \t]*#[ \t]*define[ \t]*INT8_C(__c)[ \t]*((signed char)(__c))[ \t]*$@#define INT8_C(__c) (__c)@"; - sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT8_C(__c)[ \t]*((unsigned char)(__c))[ \t]*$@#define UINT8_C(__c) (__c)@"; - sed = "s@^[ \t]*#[ \t]*define[ \t]*INT16_C(__c)[ \t]*((short)(__c))[ \t]*$@#define INT16_C(__c) (__c)@"; - sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT16_C(__c)[ \t]*((unsigned short)(__c))[ \t]*$@#define UINT16_C(__c) (__c)@"; + sed = "s@^[ \t]*#[ \t]*define[ \t]*INT8_C(__c)[ \t]*" + "((signed char)(__c))[ \t]*$@#define INT8_C(__c) (__c)@"; + sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT8_C(__c)[ \t]*" + "((unsigned char)(__c))[ \t]*$@#define UINT8_C(__c) (__c)@"; + sed = "s@^[ \t]*#[ \t]*define[ \t]*INT16_C(__c)[ \t]*" + "((short)(__c))[ \t]*$@#define INT16_C(__c) (__c)@"; + sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT16_C(__c)[ \t]*" + "((unsigned short)(__c))[ \t]*$@#define UINT16_C(__c) (__c)@"; test_text = "# define INT8_C(__c) ((signed char)(__c))\n" "# define UINT8_C(__c) ((unsigned char)(__c))\n" "# define INT16_C(__c) ((short)(__c))\n" @@ -2444,7 +2407,6 @@ fix = { test_text = "# define HUGE_VAL\t(__extension__ 0x1.0p2047)"; }; - /* * Fix glibc definition of HUGE_VALF in terms of hex floating point constant */ @@ -2460,7 +2422,6 @@ fix = { test_text = "# define HUGE_VALF (__extension__ 0x1.0p255f)"; }; - /* * Fix glibc definition of HUGE_VALL in terms of hex floating point constant */ @@ -2476,7 +2437,6 @@ fix = { test_text = "# define HUGE_VALL (__extension__ 0x1.0p32767L)"; }; - /* * Fix return type of abort and free */ @@ -2494,7 +2454,6 @@ fix = { "extern int exit(void*);"; }; - /* * Fix various macros used to define ioctl numbers. * The traditional syntax was: @@ -2539,7 +2498,6 @@ fix = { "BSD43__IOWR(T, 1) /* Some are multi-line */"; }; - /* * Check for missing ';' in struct */ @@ -2556,7 +2514,6 @@ fix = { "}; /* mumbled struct */\n"; }; - /* * Non-traditional "const" declaration in Irix's limits.h. */ @@ -2569,7 +2526,6 @@ fix = { test_text = "extern const char limit; /* test limits */"; }; - /* * IRIX 5.x's stdio.h declares some functions that take a va_list as * taking char *. However, GCC uses void * for va_list, so @@ -2585,7 +2541,6 @@ fix = { "extern int printf( const char *, /* va_list */ char * );"; }; - /* * These files in Sun OS 4.x and ARM/RISCiX and BSD4.3 * use / * * / to concatenate tokens. @@ -2610,7 +2565,6 @@ fix = { test_text = "#define __CONCAT__(a,b) a/**/b"; }; - /* The /usr/include/sys/ucontext.h on ia64-*linux-gnu systems defines * an _SC_GR0_OFFSET macro using an idiom that isn't a compile time * constant on recent versions of g++. @@ -2627,7 +2581,6 @@ fix = { "\t(((char *) &((struct sigcontext *) 0)->sc_gr[0]) - (char *) 0)\n"; }; - /* * Remove header file warning from sys/time.h. Autoconf's * AC_HEADER_TIME recommends to include both sys/time.h and time.h @@ -2642,7 +2595,6 @@ fix = { test_text = "#warning Using <time.h> instead of <sys/time.h>"; }; - /* * Add missing declaration for putenv. */ @@ -2659,7 +2611,6 @@ fix = { test_text = "extern char *getenv _AP((const char *));"; }; - /* * Fix BSD machine/ansi.h to use __builtin_va_list to define _BSD_VA_LIST_. * @@ -2678,7 +2629,6 @@ fix = { test_text = " # define _BSD_VA_LIST_\tchar**"; }; - /* * Fix non-ansi machine name defines */ @@ -2692,7 +2642,6 @@ fix = { "\n/* no uniform test, so be careful :-) */"; }; - /* * Some math.h files define struct exception (it's in the System V * Interface Definition), which conflicts with the class exception defined @@ -2725,7 +2674,6 @@ fix = { test_text = "typedef struct exception t_math_exception;"; }; - /* * This looks pretty broken to me. ``dbl_max_def'' will contain * "define DBL_MAX " at the start, when what we really want is just @@ -2763,7 +2711,6 @@ fix = { "#define HUGE_VAL DBL_MAX"; }; - /* * nested comment */ @@ -2776,7 +2723,6 @@ fix = { test_text = "/*#include <rpc/auth_des.h> /* skip this */"; }; - /* * Some versions of NetBSD don't expect the C99 inline semantics. */ @@ -2796,7 +2742,9 @@ fix = { test_text = "extern __inline int\nsigaddset(sigset_t *set, int signo)\n{}"; }; - +/* + * netbsd_c99_inline_2 + */ fix = { hackname = netbsd_c99_inline_2; mach = "*-*-netbsd*"; @@ -2815,7 +2763,6 @@ fix = { test_text = "#define _SIGINLINE extern __inline"; }; - /* * NetBSD has a semicolon after the ending '}' for some extern "C". */ @@ -2831,7 +2778,6 @@ fix = { test_text = "#define __END_DECLS };"; }; - /* newlib's stdint.h has several failures to conform to C99. The fix for these removed a comment that can be matched to identify unfixed versions. */ @@ -2842,12 +2788,18 @@ fix = { sed = "s@#define INT32_MIN.*@#define INT32_MIN (-INT32_MAX - 1)@"; sed = "s@#define INT32_MAX.*@#define INT32_MAX __INT32_MAX__@"; sed = "s@#define UINT32_MAX.*@#define UINT32_MAX __UINT32_MAX__@"; - sed = "s@#define INT_LEAST32_MIN.*@#define INT_LEAST32_MIN (-INT_LEAST32_MAX - 1)@"; - sed = "s@#define INT_LEAST32_MAX.*@#define INT_LEAST32_MAX __INT_LEAST32_MAX__@"; - sed = "s@#define UINT_LEAST32_MAX.*@#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__@"; - sed = 's@#define INT_FAST\([0-9]*\)_MIN.*@#define INT_FAST\1_MIN (-INT_FAST\1_MAX - 1)@'; - sed = 's@#define INT_FAST\([0-9]*\)_MAX.*@#define INT_FAST\1_MAX __INT_FAST\1_MAX__@'; - sed = 's@#define UINT_FAST\([0-9]*\)_MAX.*@#define UINT_FAST\1_MAX __UINT_FAST\1_MAX__@'; + sed = "s@#define INT_LEAST32_MIN.*@" + "#define INT_LEAST32_MIN (-INT_LEAST32_MAX - 1)@"; + sed = "s@#define INT_LEAST32_MAX.*@" + "#define INT_LEAST32_MAX __INT_LEAST32_MAX__@"; + sed = "s@#define UINT_LEAST32_MAX.*@" + "#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__@"; + sed = 's@#define INT_FAST\([0-9]*\)_MIN.*@' + '#define INT_FAST\1_MIN (-INT_FAST\1_MAX - 1)@'; + sed = 's@#define INT_FAST\([0-9]*\)_MAX.*@' + '#define INT_FAST\1_MAX __INT_FAST\1_MAX__@'; + sed = 's@#define UINT_FAST\([0-9]*\)_MAX.*@' + '#define UINT_FAST\1_MAX __UINT_FAST\1_MAX__@'; sed = "s@#define SIZE_MAX.*@#define SIZE_MAX __SIZE_MAX__@"; sed = "s@#define PTRDIFF_MIN.*@#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)@"; sed = "s@#define PTRDIFF_MAX.*@#define PTRDIFF_MAX __PTRDIFF_MAX__@"; @@ -2870,7 +2822,9 @@ fix = { "#define UINT16_C(x) x##U"; }; - +/* + * newlib_stdint_2 + */ fix = { hackname = newlib_stdint_2; files = stdint-newlib.h, stdint.h; @@ -2889,7 +2843,6 @@ fix = { "/** Macros for minimum-width integer constant expressions */"; }; - /* * NeXT 3.2 adds const prefix to some math functions. * These conflict with the built-in functions. @@ -2906,7 +2859,6 @@ fix = { test_text = "extern\tdouble\t__const__\tmumble();"; }; - /* * NeXT 3.2 uses the word "template" as a parameter for some * functions. GCC reports an invalid use of a reserved key word @@ -2923,7 +2875,6 @@ fix = { test_text = "extern mumble( char * template); /* fix */"; }; - /* * NeXT 3.2 includes the keyword volatile in the abort() and exit() * function prototypes. That conflicts with the built-in functions. @@ -2940,7 +2891,6 @@ fix = { test_text = "extern\tvolatile\tvoid\tabort();"; }; - /* * NeXT 2.0 defines 'int wait(union wait*)', which conflicts with Posix.1. * Note that version 3 of the NeXT system has wait.h in a different directory, @@ -2957,7 +2907,6 @@ fix = { test_text = "extern pid_d wait(union wait*);"; }; - /* * a missing semi-colon at the end of the nodeent structure definition. */ @@ -3090,7 +3039,6 @@ fix = { test_text = "#include <reg_types.h>"; }; - /* * On broken glibc-2.3.3 systems an array of incomplete structures is * passed to __sigsetjmp. Fix that to take a pointer instead. @@ -3101,8 +3049,10 @@ fix = { select = "struct __jmp_buf_tag"; c_fix = format; c_fix_arg = "%1 *%2%3"; - c_fix_arg = "^(extern int __sigsetjmp \\(struct __jmp_buf_tag) (__env)\\[1\\](.*)$"; - test_text = "extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask);"; + c_fix_arg = "^(extern int __sigsetjmp \\(struct __jmp_buf_tag) " + "(__env)\\[1\\](.*)$"; + test_text = "extern int __sigsetjmp (struct __jmp_buf_tag __env[1], " + "int __savemask);"; }; /* @@ -3119,7 +3069,6 @@ fix = { test_text = "extern int\tfclose(), fflush(), fread(), fwrite(), foo();"; }; - /* * Fix casts as lvalues in glibc's <rpc/xdr.h>. */ @@ -3133,7 +3082,9 @@ fix = { "\t((long)ntohl((u_long)*__extension__((u_int32_t*)(buf))++))"; }; - +/* + * rpc_xdr_lvalue_cast_b + */ fix = { hackname = rpc_xdr_lvalue_cast_b; files = rpc/xdr.h; @@ -3144,7 +3095,6 @@ fix = { "\t(*__extension__((u_int32_t*)(buf))++ = (long)htonl((u_long)(v)))"; }; - /* * function class(double x) conflicts with C++ keyword on rs/6000 */ @@ -3160,7 +3110,6 @@ fix = { test_text = "extern int class();"; }; - /* * Wrong fchmod prototype on RS/6000. */ @@ -3173,7 +3122,6 @@ fix = { test_text = "extern int fchmod(char *, mode_t);"; }; - /* * parameters conflict with C++ new on rs/6000 */ @@ -3189,7 +3137,6 @@ fix = { test_text = 'extern int rename(const char *old, const char *new);'; }; - /* * Solaris 10+ <sys/feature_tests.h> defines _RESTRICT_KYWD as restrict * for C99. This is wrong for C++, which needs many C99 features, but @@ -3206,7 +3153,6 @@ fix = { test_text = "#define _RESTRICT_KYWD restrict"; }; - /* * Solaris 10+ complex.h defines _Complex_I and _Imaginary_I in terms of * themselves, which are Sun Studio compiler intrinsics. Remove _Imaginary_I @@ -3230,7 +3176,6 @@ fix = { "#define I _Imaginary_I"; }; - /* * Solaris 10+ <complex.h> is wrapped in #ifndef __cplusplus. Wrap in * extern "C" instead so libstdc++ can use it. @@ -3247,7 +3192,6 @@ fix = { "#endif /* !defined(__cplusplus) */"; }; - /* * g++ rejects functions declared with both C and C++ linkage. */ @@ -3267,7 +3211,6 @@ fix = { " void *bsearch(const void *, const void *, size_t, size_t,"; }; - /* * Solaris <iso/stdio_iso.h> doesn't declare getc for C++ with * _STRICT_STDC, but uses it. @@ -3284,7 +3227,6 @@ fix = { "#if !defined(_REENTRANT) && !defined(_LP64) && !defined(_STRICT_STDC)"; }; - /* * Before Solaris 10, <iso/setjmp_iso.h> doesn't mark longjump noreturn. */ @@ -3300,7 +3242,6 @@ fix = { test_text = "extern void longjmp(jmp_buf, int);"; }; - /* * Sun Solaris 10 defines several C99 math macros in terms of * builtins specific to the Studio compiler, in particular not @@ -3359,7 +3300,8 @@ fix = { files = iso/math_c99.h; c_fix = format; c_fix_arg = "#define\tfpclassify(x) \\\n" - " __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, (x))"; + " __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, " + "FP_SUBNORMAL, FP_ZERO, (x))"; c_fix_arg = "^#define[ \t]+fpclassify\\(x\\)[ \t]+__builtin_fpclassify\\(x\\)"; test_text = '#ident "@(#)math_c99.h 1.9 04/11/01 SMI"'"\n" @@ -3393,7 +3335,8 @@ fix = { files = iso/math_c99.h; c_fix = format; c_fix_arg = "#define\t%1(x, y)%2__builtin_%1(x, y)"; - c_fix_arg = "^#define[ \t]+([a-z]+)\\(x, y\\)([ \t]+)\\(\\(x\\) __builtin_[a-z]+\\(y\\)\\)"; + c_fix_arg = "^#define[ \t]+([a-z]+)\\(x, y\\)([ \t]+)\\(\\(x\\) " + "__builtin_[a-z]+\\(y\\)\\)"; test_text = '#ident "@(#)math_c99.h 1.9 04/11/01 SMI"'"\n" "#undef isgreater\n" @@ -3422,9 +3365,12 @@ fix = { c_fix = format; c_fix_arg = "#define\tisinf(x) __builtin_isinf(x)"; c_fix_arg = "^#define[ \t]+isinf\\(x\\)[ \t]+__extension__\\([ \t]*\\\\\n" - "[ \t]*\\{[ \t]*__typeof\\(x\\)[ \t]*__x_i[ \t]*=[ \t]*\\(x\\);[ \t]*\\\\\n" - "[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*INFINITY[ \t]*\\|\\|[ \t]*\\\\\n" - "[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*\\(-INFINITY\\);[ \t]*\\}\\)"; + "[ \t]*\\{[ \t]*__typeof\\(x\\)[ \t]*__x_i[ \t]*=[ \t]*\\(x\\);" + "[ \t]*\\\\\n" + "[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*" + "INFINITY[ \t]*\\|\\|[ \t]*\\\\\n" + "[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*" + "\\(-INFINITY\\);[ \t]*\\}\\)"; test_text = '#pragma ident "@(#)math_c99.h 1.12 07/01/21 SMI"'"\n" "#undef isinf\n" @@ -3472,7 +3418,6 @@ fix = { " {{{0, 0, 0, 0}, DEFAULT_TYPE, _COND_MAGIC}, 0}"; }; - /* * The pow overloads with int were removed in C++ 2011 DR 550. */ @@ -3490,7 +3435,6 @@ fix = { " __powl(__X, (long double) (__Y)); }"; }; - /* * Sun Solaris defines PTHREAD_RWLOCK_INITIALIZER with a "0" for some * fields of the pthread_rwlock_t structure, which are of type @@ -3517,7 +3461,6 @@ fix = { "#define PTHREAD_RWLOCK_INITIALIZER\t{0, 0, 0, {0, 0, 0}, {0, 0}, {0, 0}}"; }; - /* * Sun Solaris defines PTHREAD_ONCE_INIT as an array containing a * structure. As such, it need two levels of brackets, but only @@ -3536,7 +3479,6 @@ fix = { "#define PTHREAD_ONCE_INIT\t{0, 0, 0, PTHREAD_ONCE_NOTDONE}"; }; - /* * Sun Solaris defines PTHREAD_ONCE_INIT with a "0" for some * fields of the pthread_once_t structure, which are of type @@ -3569,7 +3511,6 @@ fix = { "#define PTHREAD_ONCE_INIT\t{{0, 0, 0, PTHREAD_ONCE_NOTDONE}}\n"; }; - /* * Sun Solaris 2 has a version of sys/int_const.h that defines * UINT8_C and UINT16_C to unsigned constants. @@ -3591,7 +3532,6 @@ fix = { "#define UINT16_C(c) __CONCAT__(c,u)"; }; - /* * Sun Solaris 2 has a version of sys/int_limits.h that defines * UINT8_MAX and UINT16_MAX to unsigned constants. @@ -3610,7 +3550,6 @@ fix = { "#define UINT16_MAX (65535U)"; }; - /* * Sun Solaris 2 has a version of sys/int_limits.h that defines * INT_FAST16 limits to wrong values for sys/int_types.h. @@ -3628,7 +3567,6 @@ fix = { "#define INT_FAST16_MIN INT16_MIN"; }; - /* * Sun Solaris 2 has a version of sys/int_limits.h that defines * SIZE_MAX as unsigned long. @@ -3644,7 +3582,6 @@ fix = { "#define SIZE_MAX 4294967295UL"; }; - /* * Sun Solaris up to 9 has a version of sys/int_types.h that forbids use * of Standard C99 64-bit types in 32-bit mode. @@ -3666,7 +3603,6 @@ fix = { "#endif"; }; - /* * Solaris 10+ <spawn.h> uses char *const argv[_RESTRICT_KYWD] in the * posix_spawn declarations, which doesn't work with C++. @@ -3683,7 +3619,6 @@ fix = { "char *const envp[_RESTRICT_KYWD]);"; }; - /* * Before Solaris 10, <stdio.h> lacks declarations of std::__filbuf and * std::__flsbuf, but <iso/stdio_iso.h> uses them. @@ -3704,7 +3639,6 @@ fix = { "#endif"; }; - /* * Sun Solaris 8 has what appears to be some gross workaround for * some old version of their c++ compiler. G++ doesn't want it @@ -3723,7 +3657,6 @@ fix = { test_text = "#if\tdefined(__cplusplus) && (__cplusplus < 54321L)"; }; - /* * On Solaris 9, __va_list needs to become a typedef for * __builtin_va_list to make -Wmissing-format-attribute work. @@ -3751,7 +3684,6 @@ fix = { "#endif"; }; - /* * a missing semi-colon at the end of the statsswtch structure definition. */ @@ -3764,7 +3696,6 @@ fix = { test_text = "struct statswtch {\n int boottime\n};"; }; - /* * Arrange for stdio.h to use stdarg.h to define __gnuc_va_list. * On 4BSD-derived systems, stdio.h defers to machine/ansi.h; that's @@ -3788,7 +3719,6 @@ fix = { test_text = ""; }; - /* * Don't use or define the name va_list in stdio.h. This is for * ANSI. Note _BSD_VA_LIST_ is dealt with elsewhere. The presence @@ -3836,7 +3766,6 @@ fix = { test_text = "extern void mumble( va_list);"; }; - /* * Fix headers that use va_list from stdio.h to use the updated * va_list from the stdio_va_list change. Note _BSD_VA_LIST_ is @@ -3886,7 +3815,6 @@ fix = { test_text = "extern void mumble( va_list);"; }; - /* * "!__STDC__" or "__STDC__==0" or "__STDC__!=1" or "__STDC__-0==0" * is "!defined( __STRICT_ANSI__ )" @@ -3949,7 +3877,6 @@ fix = { "int foo;\n#endif"; }; - /* * "__STDC__!=0" or "__STDC__==1" or "__STDC__-0==1" * is "defined( __STRICT_ANSI__ )" @@ -3969,7 +3896,6 @@ fix = { test_text = "#if __STDC__ == 1 /* is std C\n */\nint foo;\n#endif"; }; - /* * IRIX 4.0.5 <rpc/xdr.h> uses struct __file_s * in prototype without previous definition. @@ -3983,7 +3909,6 @@ fix = { test_text = "extern void xdrstdio_create( struct __file_s* );"; }; - /* * IRIX 4.0.5 <rpc/auth.h> uses struct sockaddr * in prototype without previous definition. @@ -4002,7 +3927,6 @@ fix = { test_text = "extern AUTH* authdes_create( struct sockaddr* );"; }; - /* * Apply fix this to all OSs since this problem seems to effect * more than just SunOS. @@ -4030,7 +3954,6 @@ fix = { "};"; }; - /* * Fix bogus #ifdef on SunOS 4.1. */ @@ -4045,7 +3968,6 @@ fix = { test_text = "#ifdef __i386__ || __vax__ || __sun4c__"; }; - /* * Fix the CAT macro in SunOS memvar.h. */ @@ -4064,7 +3986,6 @@ fix = { "#define CAT(a,b)\ta/**/b"; }; - /* * Fix return type of free and {c,m,re}alloc in <malloc.h> on SunOS 4.1. * Also fix return type of {m,re}alloc in <malloc.h> on sysV68 @@ -4088,7 +4009,6 @@ fix = { "char*\trealloc();"; }; - /* * Check for yet more missing ';' in struct (in SunOS 4.0.x) */ @@ -4100,7 +4020,6 @@ fix = { test_text = "struct mumble\n int _cnt\n};"; }; - /* * signal.h on SunOS defines signal using (), * which causes trouble when compiling with g++ -pedantic. @@ -4120,7 +4039,6 @@ fix = { test_text = "void\t(*signal())();"; }; - /* * Correct the return type for strlen in strings.h in SunOS 4. */ @@ -4133,7 +4051,6 @@ fix = { test_text = " int\tstrlen(); /* string length */"; }; - /* * Disable apparent native compiler optimization cruft in SVR4.2 <string.h> * that is visible to any ANSI compiler using this include. Simply @@ -4147,7 +4064,6 @@ fix = { test_text = "#define strlen __std_hdr_strlen\n"; }; - /* * Fix broken decl of getcwd present on some svr4 systems. */ @@ -4164,7 +4080,6 @@ fix = { test_text = "extern char* getcwd(char *, int);"; }; - /* * Fix broken decl of profil present on some svr4 systems. */ @@ -4182,7 +4097,6 @@ fix = { 'profil(unsigned short *, unsigned int, unsigned int, unsigned int);'; }; - /* * Correct types for signal handler constants like SIG_DFL; they might be * void (*) (), and should be void (*) (int). C++ doesn't like the @@ -4198,7 +4112,6 @@ fix = { "#define SIG_IGN (void (*)())0\n"; }; - /* * Some SysV r4 systems, including Sequent's DYNIX/ptx, use the local * function 'getrnge' in <regexp.h> before they declare it. For these @@ -4227,7 +4140,6 @@ fix = { "{}"; }; - /* * Fix return value of mem{ccpy,chr,cpy,set} and str{len,spn,cspn} * in string.h on sysV68 @@ -4275,7 +4187,6 @@ fix = { "\tstrlen(), strspn();"; }; - /* * Fix return type of calloc, malloc, realloc, bsearch and exit */ @@ -4295,7 +4206,6 @@ fix = { "extern char*\tbsearch(void*,size_t,size_t);\n"; }; - /* * __thread is now a keyword. */ @@ -4327,7 +4237,6 @@ fix = { test_text = "#ifdef _cplusplus\nint bogus;\n#endif"; }; - /* * parameters not const on DECstation Ultrix V4.0 and OSF/1. */ @@ -4349,7 +4258,6 @@ fix = { "extern int scanf( char *__format, ...);\n"; }; - /* * parameters not const on DECstation Ultrix V4.0 and OSF/1. */ @@ -4371,7 +4279,6 @@ fix = { "extern char *tempnam(char*,char*);\n"; }; - /* * Fix definitions of macros used by va-i960.h in VxWorks header file. */ @@ -4390,7 +4297,6 @@ fix = { "#define __alignof__(x) ..."; }; - /* * Define __CAN_USE_EXTERN_PREFIX on vms. */ @@ -4524,15 +4430,17 @@ fix = { */ fix = { hackname = vms_no_64bit_getopt; - select = "^[ \t]*(extern[ \t]*)?(int[ \t]*(getopt|optind|opterr|optopt)|(char \\*optarg))([ \t]*\\(.*\\))?;\n"; - /* select = "^[ \t](extern[ \t))?(int[ \t](getopt|optind|opterr|optopt))|(char *optarg).*;\n"; */ + select = "^[ \t]*(extern[ \t]*)?(int[ \t]*(getopt|optind|opterr|optopt)" + "|(char \\*optarg))([ \t]*\\(.*\\))?;\n"; mach = "*-*-*vms*"; files = rtldef/stdio.h, rtldef/unistd.h; c_fix = format; - c_fix_arg = "#if __INITIAL_POINTER_SIZE != 64 /* getopt is short ptr only. */\n" - "%0" - "#endif\n"; + c_fix_arg = <<- _EOArg_ + #if __INITIAL_POINTER_SIZE != 64 /* getopt is short ptr only. */ + %0#endif + + _EOArg_; test_text = "int getopt (int, char * const [], const char *);"; }; @@ -4602,7 +4510,6 @@ fix = { test_text = "# define\tNULL \t((void *)0) /* typed NULL */"; }; - /* * Make VxWorks header which is almost gcc ready fully gcc ready. */ @@ -4678,7 +4585,6 @@ fix = { test_text = "extern STATUS mkdir (const char * _qwerty) ;"; }; - /* * Fix VxWorks <time.h> to not require including <vxTypes.h>. */ @@ -4691,7 +4597,6 @@ fix = { test_text = "uint_t\t_clocks_per_sec;"; }; - /* * Fix VxWorks <sys/stat.h> to not require including <vxWorks.h>. */ @@ -4725,7 +4630,6 @@ fix = { test_text = "#include <regs.h>\n"; }; - /* * Another bad dependency in VxWorks 5.2 <time.h>. */ @@ -4789,7 +4693,6 @@ fix = { "} mumble;\n"; }; - /* * class in Xm/BaseClassI.h */ @@ -4805,7 +4708,6 @@ fix = { test_text = "extern mumble (int class);\n"; }; - /* * new in Xm/Traversal.h */ @@ -4829,7 +4731,6 @@ fix = { "};\nextern Wedged( Widget new, Widget old );"; }; - /* * Incorrect sprintf declaration in X11/Xmu.h */ @@ -4871,6 +4772,11 @@ fix = { __asm__ __volatile__ ("divss %0, %0" : : "x" (__f)); _EOText_; }; + +/* + * Incorrect feraiseexcept extern inline in bits/fenv.h on x86_64 + * that fails when compiling for SSE-less 32-bit x86. + */ fix = { hackname = feraiseexcept_nosse_divbyzero; mach = 'i[34567]86-*-linux*', 'x86*-linux*', 'amd64-*-linux*'; |