From e1775b33f51ecff1824554750d249bedf380dd27 Mon Sep 17 00:00:00 2001 From: Bruce Korb Date: Sun, 8 Dec 2013 21:55:46 +0000 Subject: [PATCH] fenv.h on Ubuntu plus fix the ordering of the patches: * inclhack.def: many of the headers found under "bits/" are often stashed under architecture directories. Apply fixes to those, too. Also, re-ordered misordered fixes. * tests/base/linux/vt.h: 80 columns in .def file limitation * tests/base/iso/math_c99.h: adjust ordering * tests/base/rtldef/string.h: likewise * tests/base/bits/fenv.h: likewise * tests/base/pthread.h: likewise From-SVN: r205793 --- fixincludes/ChangeLog | 11 + fixincludes/fixincl.x | 2256 ++++++++++++++++---------------- fixincludes/inclhack.def | 1019 ++++++++------- fixincludes/tests/base/bits/fenv.h | 20 +- fixincludes/tests/base/iso/math_c99.h | 14 +- fixincludes/tests/base/linux/vt.h | 2 +- fixincludes/tests/base/pthread.h | 20 +- fixincludes/tests/base/rtldef/string.h | 12 +- 8 files changed, 1702 insertions(+), 1652 deletions(-) diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog index 5e48ce1..9cac377 100644 --- a/fixincludes/ChangeLog +++ b/fixincludes/ChangeLog @@ -1,3 +1,14 @@ +2013-12-07 Bruce Korb + + * inclhack.def: many of the headers found under "bits/" are + often stashed under architecture directories. Apply fixes + to those, too. Also, re-ordered misordered fixes. + * tests/base/linux/vt.h: 80 columns in .def file limitation + * tests/base/iso/math_c99.h: adjust ordering + * tests/base/rtldef/string.h: likewise + * tests/base/bits/fenv.h: likewise + * tests/base/pthread.h: likewise + 2013-12-06 Richard Biener * inclhack.def (suse_linux_vt_cxx): New fix for linux/vt.h diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x index ec585cb..10b4061 100644 --- a/fixincludes/fixincl.x +++ b/fixincludes/fixincl.x @@ -1,12 +1,12 @@ /* -*- buffer-read-only: t -*- vi: set ro: - * + * * DO NOT EDIT THIS FILE (fixincl.x) - * - * It has been AutoGen-ed December 6, 2013 at 09:26:10 AM by AutoGen 5.11.8 + * + * It has been AutoGen-ed December 8, 2013 at 12:24:14 PM by AutoGen 5.18.2 * From the definitions inclhack.def * and the template file fixincl */ -/* DO NOT SVN-MERGE THIS FILE, EITHER Fri Dec 6 09:26:10 CET 2013 +/* DO NOT SVN-MERGE THIS FILE, EITHER Sun Dec 8 12:24:14 PST 2013 * * You must regenerate it. Use the ./genfixes script. * @@ -2111,6 +2111,41 @@ int vfscanf(FILE *, const char *, __builtin_va_list) __asm__ (_BSD_STRING(__USER /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Complier_H_Tradcpp fix + */ +tSCC zComplier_H_TradcppName[] = + "complier_h_tradcpp"; + +/* + * File name selection pattern + */ +tSCC zComplier_H_TradcppList[] = + "linux/compiler.h\0"; +/* + * Machine/OS name selection pattern + */ +#define apzComplier_H_TradcppMachs (const char**)NULL + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zComplier_H_TradcppSelect0[] = + "#define __builtin_warning\\(x, y\\.\\.\\.\\) \\(1\\)"; + +#define COMPLIER_H_TRADCPP_TEST_CT 1 +static tTestDesc aComplier_H_TradcppTests[] = { + { TT_EGREP, zComplier_H_TradcppSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Complier_H_Tradcpp + */ +static const char* apzComplier_H_TradcppPatch[] = { + "format", + "/* __builtin_warning(x, y...) is obsolete */", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Ctrl_Quotes_Def fix */ tSCC zCtrl_Quotes_DefName[] = @@ -2809,6 +2844,108 @@ static const char* apzEcd_CursorPatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Feraiseexcept_Nosse_Divbyzero fix + */ +tSCC zFeraiseexcept_Nosse_DivbyzeroName[] = + "feraiseexcept_nosse_divbyzero"; + +/* + * File name selection pattern + */ +tSCC zFeraiseexcept_Nosse_DivbyzeroList[] = + "bits/fenv.h\0*/bits/fenv.h\0"; +/* + * Machine/OS name selection pattern + */ +tSCC* apzFeraiseexcept_Nosse_DivbyzeroMachs[] = { + "i[34567]86-*-linux*", + "x86*-linux*", + "amd64-*-linux*", + (const char*)NULL }; + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zFeraiseexcept_Nosse_DivbyzeroSelect0[] = + "^([\t ]*)__asm__ __volatile__ \\(\"divss %1, %0 *\" : : \"x\" \\(__f\\), \"x\" \\(__g\\)\\);$"; + +/* + * content bypass pattern - skip fix if pattern found + */ +tSCC zFeraiseexcept_Nosse_DivbyzeroBypass0[] = + "\"fdivp .*; fwait\""; + +#define FERAISEEXCEPT_NOSSE_DIVBYZERO_TEST_CT 2 +static tTestDesc aFeraiseexcept_Nosse_DivbyzeroTests[] = { + { TT_NEGREP, zFeraiseexcept_Nosse_DivbyzeroBypass0, (regex_t*)NULL }, + { TT_EGREP, zFeraiseexcept_Nosse_DivbyzeroSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Feraiseexcept_Nosse_Divbyzero + */ +static const char* apzFeraiseexcept_Nosse_DivbyzeroPatch[] = { + "format", + "# ifdef __SSE_MATH__\n\ +%0\n\ +# else\n\ +%1__asm__ __volatile__ (\"fdivp %%%%st, %%%%st(1); fwait\"\n\ +%1\t\t\t: \"=t\" (__f) : \"0\" (__f), \"u\" (__g) : \"st(1)\");\n\ +# endif", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Description of Feraiseexcept_Nosse_Invalid fix + */ +tSCC zFeraiseexcept_Nosse_InvalidName[] = + "feraiseexcept_nosse_invalid"; + +/* + * File name selection pattern + */ +tSCC zFeraiseexcept_Nosse_InvalidList[] = + "bits/fenv.h\0*/bits/fenv.h\0"; +/* + * Machine/OS name selection pattern + */ +tSCC* apzFeraiseexcept_Nosse_InvalidMachs[] = { + "i[34567]86-*-linux*", + "x86*-linux*", + "amd64-*-linux*", + (const char*)NULL }; + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zFeraiseexcept_Nosse_InvalidSelect0[] = + "^([\t ]*)__asm__ __volatile__ \\(\"divss %0, %0 *\" : : \"x\" \\(__f\\)\\);$"; + +/* + * content bypass pattern - skip fix if pattern found + */ +tSCC zFeraiseexcept_Nosse_InvalidBypass0[] = + "\"fdiv .*; fwait\""; + +#define FERAISEEXCEPT_NOSSE_INVALID_TEST_CT 2 +static tTestDesc aFeraiseexcept_Nosse_InvalidTests[] = { + { TT_NEGREP, zFeraiseexcept_Nosse_InvalidBypass0, (regex_t*)NULL }, + { TT_EGREP, zFeraiseexcept_Nosse_InvalidSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Feraiseexcept_Nosse_Invalid + */ +static const char* apzFeraiseexcept_Nosse_InvalidPatch[] = { + "format", + "# ifdef __SSE_MATH__\n\ +%0\n\ +# else\n\ +%1__asm__ __volatile__ (\"fdiv %%%%st, %%%%st(0); fwait\"\n\ +%1\t\t\t: \"=t\" (__f) : \"0\" (__f));\n\ +# endif", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Freebsd_Gcc3_Breakage fix */ tSCC zFreebsd_Gcc3_BreakageName[] = @@ -3203,7 +3340,7 @@ tSCC zGlibc_StrncpyName[] = * File name selection pattern */ tSCC zGlibc_StrncpyList[] = - "bits/string2.h\0"; + "bits/string2.h\0*/bits/string2.h\0"; /* * Machine/OS name selection pattern */ @@ -3717,6 +3854,84 @@ static const char* apzHpux11_AbsPatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Hpux11_Extern_Sendfile fix + */ +tSCC zHpux11_Extern_SendfileName[] = + "hpux11_extern_sendfile"; + +/* + * File name selection pattern + */ +tSCC zHpux11_Extern_SendfileList[] = + "sys/socket.h\0"; +/* + * Machine/OS name selection pattern + */ +tSCC* apzHpux11_Extern_SendfileMachs[] = { + "*-hp-hpux11.[12]*", + (const char*)NULL }; + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zHpux11_Extern_SendfileSelect0[] = + "^[ \t]*extern sbsize_t sendfile.*\n\ +.*, int\\)\\);\n"; + +#define HPUX11_EXTERN_SENDFILE_TEST_CT 1 +static tTestDesc aHpux11_Extern_SendfileTests[] = { + { TT_EGREP, zHpux11_Extern_SendfileSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Hpux11_Extern_Sendfile + */ +static const char* apzHpux11_Extern_SendfilePatch[] = { + "format", + "#ifndef _APP32_64BIT_OFF_T\n\ +%0#endif\n", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Description of Hpux11_Extern_Sendpath fix + */ +tSCC zHpux11_Extern_SendpathName[] = + "hpux11_extern_sendpath"; + +/* + * File name selection pattern + */ +tSCC zHpux11_Extern_SendpathList[] = + "sys/socket.h\0"; +/* + * Machine/OS name selection pattern + */ +tSCC* apzHpux11_Extern_SendpathMachs[] = { + "*-hp-hpux11.[12]*", + (const char*)NULL }; + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zHpux11_Extern_SendpathSelect0[] = + "^[ \t]*extern sbsize_t sendpath.*\n\ +.*, int\\)\\);\n"; + +#define HPUX11_EXTERN_SENDPATH_TEST_CT 1 +static tTestDesc aHpux11_Extern_SendpathTests[] = { + { TT_EGREP, zHpux11_Extern_SendpathSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Hpux11_Extern_Sendpath + */ +static const char* apzHpux11_Extern_SendpathPatch[] = { + "format", + "#ifndef _APP32_64BIT_OFF_T\n\ +%0#endif\n", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Hpux11_Fabsf fix */ tSCC zHpux11_FabsfName[] = @@ -3948,355 +4163,372 @@ static const char* apzHpux8_Bogus_InlinesPatch[] = { sed_cmd_z, /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Hpux_Ctype_Macros fix + * Description of Hpux_C99_Intptr fix */ -tSCC zHpux_Ctype_MacrosName[] = - "hpux_ctype_macros"; +tSCC zHpux_C99_IntptrName[] = + "hpux_c99_intptr"; /* * File name selection pattern */ -tSCC zHpux_Ctype_MacrosList[] = - "ctype.h\0"; +tSCC zHpux_C99_IntptrList[] = + "stdint-hpux11.h\0stdint.h\0"; /* * Machine/OS name selection pattern */ -#define apzHpux_Ctype_MacrosMachs (const char**)NULL - -/* - * content selection pattern - do fix if pattern found - */ -tSCC zHpux_Ctype_MacrosSelect0[] = - "((: |\\()__SB_masks \\? )(__SB_masks\\[__(alnum|c)\\] & _IS)"; - -#define HPUX_CTYPE_MACROS_TEST_CT 1 -static tTestDesc aHpux_Ctype_MacrosTests[] = { - { TT_EGREP, zHpux_Ctype_MacrosSelect0, (regex_t*)NULL }, }; +tSCC* apzHpux_C99_IntptrMachs[] = { + "*-hp-hpux11.3*", + (const char*)NULL }; +#define HPUX_C99_INTPTR_TEST_CT 0 +#define aHpux_C99_IntptrTests (tTestDesc*)NULL /* - * Fix Command Arguments for Hpux_Ctype_Macros + * Fix Command Arguments for Hpux_C99_Intptr */ -static const char* apzHpux_Ctype_MacrosPatch[] = { - "format", - "%1(int)%3", +static const char* apzHpux_C99_IntptrPatch[] = { sed_cmd_z, + "-e", "s@^[ \t]*#[ \t]*define[ \t]*PTRDIFF_MAX[ \t]*INT32_MAX[ \t]*$@#define PTRDIFF_MAX (2147483647l)@", + "-e", "s@^[ \t]*#[ \t]*define[ \t]*PTRDIFF_MIN[ \t]*INT32_MIN[ \t]*$@#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)@", + "-e", "s@^[ \t]*#[ \t]*define[ \t]*INTPTR_MAX[ \t]*INT32_MAX[ \t]*$@#define INTPTR_MAX (2147483647l)@", + "-e", "s@^[ \t]*#[ \t]*define[ \t]*INTPTR_MIN[ \t]*INT32_MIN[ \t]*$@#define INTPTR_MIN (-INTPTR_MAX - 1)@", + "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINTPTR_MAX[ \t]*UINT32_MAX[ \t]*$@#define UINTPTR_MAX (4294967295ul)@", + "-e", "s@^[ \t]*#[ \t]*define[ \t]*SIZE_MAX[ \t]*UINT32_MAX[ \t]*$@#define SIZE_MAX (4294967295ul)@", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Hpux_Htonl fix + * Description of Hpux_C99_Inttypes fix */ -tSCC zHpux_HtonlName[] = - "hpux_htonl"; +tSCC zHpux_C99_InttypesName[] = + "hpux_c99_inttypes"; /* * File name selection pattern */ -tSCC zHpux_HtonlList[] = - "netinet/in.h\0"; +tSCC zHpux_C99_InttypesList[] = + "inttypes.h\0stdint-hpux11.h\0stdint.h\0"; /* * Machine/OS name selection pattern */ -#define apzHpux_HtonlMachs (const char**)NULL +tSCC* apzHpux_C99_InttypesMachs[] = { + "*-hp-hpux11.[23]*", + (const char*)NULL }; +#define HPUX_C99_INTTYPES_TEST_CT 0 +#define aHpux_C99_InttypesTests (tTestDesc*)NULL /* - * content selection pattern - do fix if pattern found + * Fix Command Arguments for Hpux_C99_Inttypes */ -tSCC zHpux_HtonlSelect0[] = - "#ifndef _XOPEN_SOURCE_EXTENDED[ \t]*\n\ -(/\\*\n\ - \\* Macros for number representation conversion\\.\n\ - \\*/\n\ -#ifndef ntohl)"; +static const char* apzHpux_C99_InttypesPatch[] = { sed_cmd_z, + "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT8_C(__c)[ \t]*__CONCAT_U__(__c)[ \t]*$@#define UINT8_C(__c) (__c)@", + "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT16_C(__c)[ \t]*__CONCAT_U__(__c)[ \t]*$@#define UINT16_C(__c) (__c)@", + "-e", "s@^[ \t]*#[ \t]*define[ \t]*INT32_C(__c)[ \t]*__CONCAT__(__c,l)[ \t]*$@#define INT32_C(__c) (__c)@", + "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT32_C(__c)[ \t].*$@#define UINT32_C(__c) __CONCAT__(__c,u)@", + (char*)NULL }; -#define HPUX_HTONL_TEST_CT 1 -static tTestDesc aHpux_HtonlTests[] = { - { TT_EGREP, zHpux_HtonlSelect0, (regex_t*)NULL }, }; +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Description of Hpux_C99_Inttypes2 fix + */ +tSCC zHpux_C99_Inttypes2Name[] = + "hpux_c99_inttypes2"; /* - * Fix Command Arguments for Hpux_Htonl + * File name selection pattern */ -static const char* apzHpux_HtonlPatch[] = { - "format", - "#if 1\n\ -%1", +tSCC zHpux_C99_Inttypes2List[] = + "stdint-hpux11.h\0stdint.h\0"; +/* + * Machine/OS name selection pattern + */ +tSCC* apzHpux_C99_Inttypes2Machs[] = { + "*-hp-hpux11.2*", + (const char*)NULL }; +#define HPUX_C99_INTTYPES2_TEST_CT 0 +#define aHpux_C99_Inttypes2Tests (tTestDesc*)NULL + +/* + * Fix Command Arguments for Hpux_C99_Inttypes2 + */ +static const char* apzHpux_C99_Inttypes2Patch[] = { sed_cmd_z, + "-e", "s@^[ \t]*#[ \t]*define[ \t]*INT8_C(__c)[ \t]*((signed char)(__c))[ \t]*$@#define INT8_C(__c) (__c)@", + "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT8_C(__c)[ \t]*((unsigned char)(__c))[ \t]*$@#define UINT8_C(__c) (__c)@", + "-e", "s@^[ \t]*#[ \t]*define[ \t]*INT16_C(__c)[ \t]*((short)(__c))[ \t]*$@#define INT16_C(__c) (__c)@", + "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT16_C(__c)[ \t]*((unsigned short)(__c))[ \t]*$@#define UINT16_C(__c) (__c)@", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Hpux_Long_Double fix + * Description of Hpux_Ctype_Macros fix */ -tSCC zHpux_Long_DoubleName[] = - "hpux_long_double"; +tSCC zHpux_Ctype_MacrosName[] = + "hpux_ctype_macros"; /* * File name selection pattern */ -tSCC zHpux_Long_DoubleList[] = - "stdlib.h\0"; +tSCC zHpux_Ctype_MacrosList[] = + "ctype.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzHpux_Long_DoubleMachs[] = { - "*-*-hpux10*", - "*-*-hpux11.[012]*", - (const char*)NULL }; +#define apzHpux_Ctype_MacrosMachs (const char**)NULL /* * content selection pattern - do fix if pattern found */ -tSCC zHpux_Long_DoubleSelect0[] = - "extern[ \t]long_double[ \t]strtold"; - -/* - * content bypass pattern - skip fix if pattern found - */ -tSCC zHpux_Long_DoubleBypass0[] = - "long_double_t"; +tSCC zHpux_Ctype_MacrosSelect0[] = + "((: |\\()__SB_masks \\? )(__SB_masks\\[__(alnum|c)\\] & _IS)"; -#define HPUX_LONG_DOUBLE_TEST_CT 2 -static tTestDesc aHpux_Long_DoubleTests[] = { - { TT_NEGREP, zHpux_Long_DoubleBypass0, (regex_t*)NULL }, - { TT_EGREP, zHpux_Long_DoubleSelect0, (regex_t*)NULL }, }; +#define HPUX_CTYPE_MACROS_TEST_CT 1 +static tTestDesc aHpux_Ctype_MacrosTests[] = { + { TT_EGREP, zHpux_Ctype_MacrosSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Hpux_Long_Double + * Fix Command Arguments for Hpux_Ctype_Macros */ -static const char* apzHpux_Long_DoublePatch[] = { sed_cmd_z, - "-e", "/^#[ \t]*ifndef _LONG_DOUBLE/,/\\/\\* _LONG_DOUBLE \\*\\//D", - "-e", "s/long_double/long double/g", +static const char* apzHpux_Ctype_MacrosPatch[] = { + "format", + "%1(int)%3", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Hpux_Long_Double_2 fix + * Description of Hpux_Extern_Errno fix */ -tSCC zHpux_Long_Double_2Name[] = - "hpux_long_double_2"; +tSCC zHpux_Extern_ErrnoName[] = + "hpux_extern_errno"; /* * File name selection pattern */ -tSCC zHpux_Long_Double_2List[] = - "stdlib.h\0"; +tSCC zHpux_Extern_ErrnoList[] = + "errno.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzHpux_Long_Double_2Machs[] = { - "hppa*-*-hpux11.3*", +tSCC* apzHpux_Extern_ErrnoMachs[] = { + "*-hp-hpux10.*", + "*-hp-hpux11.[0-2]*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zHpux_Long_Double_2Select0[] = - "#[ \t]*if[ \t]*!defined\\(__ia64\\) \\|\\| defined\\(_PROTOTYPES\\) \\|\\| defined\\(_LONG_DOUBLE_STRUCT\\)"; +tSCC zHpux_Extern_ErrnoSelect0[] = + "^[ \t]*extern int errno;$"; -#define HPUX_LONG_DOUBLE_2_TEST_CT 1 -static tTestDesc aHpux_Long_Double_2Tests[] = { - { TT_EGREP, zHpux_Long_Double_2Select0, (regex_t*)NULL }, }; +#define HPUX_EXTERN_ERRNO_TEST_CT 1 +static tTestDesc aHpux_Extern_ErrnoTests[] = { + { TT_EGREP, zHpux_Extern_ErrnoSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Hpux_Long_Double_2 + * Fix Command Arguments for Hpux_Extern_Errno */ -static const char* apzHpux_Long_Double_2Patch[] = { +static const char* apzHpux_Extern_ErrnoPatch[] = { "format", - "# if !defined(_PROTOTYPES) || defined(_LONG_DOUBLE_STRUCT)", + "#ifdef __cplusplus\n\ +extern \"C\" {\n\ +#endif\n\ +%0\n\ +#ifdef __cplusplus\n\ +}\n\ +#endif", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Hpux_Systime fix + * Description of Hpux_Htonl fix */ -tSCC zHpux_SystimeName[] = - "hpux_systime"; +tSCC zHpux_HtonlName[] = + "hpux_htonl"; /* * File name selection pattern */ -tSCC zHpux_SystimeList[] = - "sys/time.h\0"; +tSCC zHpux_HtonlList[] = + "netinet/in.h\0"; /* * Machine/OS name selection pattern */ -#define apzHpux_SystimeMachs (const char**)NULL +#define apzHpux_HtonlMachs (const char**)NULL /* * content selection pattern - do fix if pattern found */ -tSCC zHpux_SystimeSelect0[] = - "^extern struct sigevent;"; +tSCC zHpux_HtonlSelect0[] = + "#ifndef _XOPEN_SOURCE_EXTENDED[ \t]*\n\ +(/\\*\n\ + \\* Macros for number representation conversion\\.\n\ + \\*/\n\ +#ifndef ntohl)"; -#define HPUX_SYSTIME_TEST_CT 1 -static tTestDesc aHpux_SystimeTests[] = { - { TT_EGREP, zHpux_SystimeSelect0, (regex_t*)NULL }, }; +#define HPUX_HTONL_TEST_CT 1 +static tTestDesc aHpux_HtonlTests[] = { + { TT_EGREP, zHpux_HtonlSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Hpux_Systime + * Fix Command Arguments for Hpux_Htonl */ -static const char* apzHpux_SystimePatch[] = { +static const char* apzHpux_HtonlPatch[] = { "format", - "struct sigevent;", + "#if 1\n\ +%1", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Hpux_Spu_Info fix + * Description of Hpux_Imaginary_I fix */ -tSCC zHpux_Spu_InfoName[] = - "hpux_spu_info"; +tSCC zHpux_Imaginary_IName[] = + "hpux_imaginary_i"; /* * File name selection pattern */ -tSCC zHpux_Spu_InfoList[] = - "ia64/sys/getppdp.h\0*/sys/getppdp.h\0"; +tSCC zHpux_Imaginary_IList[] = + "complex.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzHpux_Spu_InfoMachs[] = { - "*-hp-hpux*", +tSCC* apzHpux_Imaginary_IMachs[] = { + "ia64-hp-hpux11.*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zHpux_Spu_InfoSelect0[] = - "^.*extern.*spu_info.*"; +tSCC zHpux_Imaginary_ISelect0[] = + "^[ \t]*#[ \t]*define[ \t]*_Complex_I.*"; -#define HPUX_SPU_INFO_TEST_CT 1 -static tTestDesc aHpux_Spu_InfoTests[] = { - { TT_EGREP, zHpux_Spu_InfoSelect0, (regex_t*)NULL }, }; +#define HPUX_IMAGINARY_I_TEST_CT 1 +static tTestDesc aHpux_Imaginary_ITests[] = { + { TT_EGREP, zHpux_Imaginary_ISelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Hpux_Spu_Info + * Fix Command Arguments for Hpux_Imaginary_I */ -static const char* apzHpux_Spu_InfoPatch[] = { +static const char* apzHpux_Imaginary_IPatch[] = { "format", - "#ifdef _KERNEL\n\ -%0\n\ -#endif", + "#define _Complex_I (__extension__ 1.0iF)", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Hpux11_Extern_Sendfile fix + * Description of Hpux_Inttype_Int8_T fix */ -tSCC zHpux11_Extern_SendfileName[] = - "hpux11_extern_sendfile"; +tSCC zHpux_Inttype_Int8_TName[] = + "hpux_inttype_int8_t"; /* * File name selection pattern */ -tSCC zHpux11_Extern_SendfileList[] = - "sys/socket.h\0"; +tSCC zHpux_Inttype_Int8_TList[] = + "sys/_inttypes.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzHpux11_Extern_SendfileMachs[] = { - "*-hp-hpux11.[12]*", +tSCC* apzHpux_Inttype_Int8_TMachs[] = { + "*-hp-hpux1[01].*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zHpux11_Extern_SendfileSelect0[] = - "^[ \t]*extern sbsize_t sendfile.*\n\ -.*, int\\)\\);\n"; +tSCC zHpux_Inttype_Int8_TSelect0[] = + "^[ \t]*typedef[ \t]*char[ \t]*int(_least){0,1}8_t.*"; -#define HPUX11_EXTERN_SENDFILE_TEST_CT 1 -static tTestDesc aHpux11_Extern_SendfileTests[] = { - { TT_EGREP, zHpux11_Extern_SendfileSelect0, (regex_t*)NULL }, }; +#define HPUX_INTTYPE_INT8_T_TEST_CT 1 +static tTestDesc aHpux_Inttype_Int8_TTests[] = { + { TT_EGREP, zHpux_Inttype_Int8_TSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Hpux11_Extern_Sendfile + * Fix Command Arguments for Hpux_Inttype_Int8_T */ -static const char* apzHpux11_Extern_SendfilePatch[] = { +static const char* apzHpux_Inttype_Int8_TPatch[] = { "format", - "#ifndef _APP32_64BIT_OFF_T\n\ -%0#endif\n", + "typedef signed char int%18_t;", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Hpux11_Extern_Sendpath fix + * Description of Hpux_Long_Double fix */ -tSCC zHpux11_Extern_SendpathName[] = - "hpux11_extern_sendpath"; +tSCC zHpux_Long_DoubleName[] = + "hpux_long_double"; /* * File name selection pattern */ -tSCC zHpux11_Extern_SendpathList[] = - "sys/socket.h\0"; +tSCC zHpux_Long_DoubleList[] = + "stdlib.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzHpux11_Extern_SendpathMachs[] = { - "*-hp-hpux11.[12]*", +tSCC* apzHpux_Long_DoubleMachs[] = { + "*-*-hpux10*", + "*-*-hpux11.[012]*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zHpux11_Extern_SendpathSelect0[] = - "^[ \t]*extern sbsize_t sendpath.*\n\ -.*, int\\)\\);\n"; +tSCC zHpux_Long_DoubleSelect0[] = + "extern[ \t]long_double[ \t]strtold"; -#define HPUX11_EXTERN_SENDPATH_TEST_CT 1 -static tTestDesc aHpux11_Extern_SendpathTests[] = { - { TT_EGREP, zHpux11_Extern_SendpathSelect0, (regex_t*)NULL }, }; +/* + * content bypass pattern - skip fix if pattern found + */ +tSCC zHpux_Long_DoubleBypass0[] = + "long_double_t"; + +#define HPUX_LONG_DOUBLE_TEST_CT 2 +static tTestDesc aHpux_Long_DoubleTests[] = { + { TT_NEGREP, zHpux_Long_DoubleBypass0, (regex_t*)NULL }, + { TT_EGREP, zHpux_Long_DoubleSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Hpux11_Extern_Sendpath + * Fix Command Arguments for Hpux_Long_Double */ -static const char* apzHpux11_Extern_SendpathPatch[] = { - "format", - "#ifndef _APP32_64BIT_OFF_T\n\ -%0#endif\n", +static const char* apzHpux_Long_DoublePatch[] = { sed_cmd_z, + "-e", "/^#[ \t]*ifndef _LONG_DOUBLE/,/\\/\\* _LONG_DOUBLE \\*\\//D", + "-e", "s/long_double/long double/g", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Hpux_Extern_Errno fix + * Description of Hpux_Long_Double_2 fix */ -tSCC zHpux_Extern_ErrnoName[] = - "hpux_extern_errno"; +tSCC zHpux_Long_Double_2Name[] = + "hpux_long_double_2"; /* * File name selection pattern */ -tSCC zHpux_Extern_ErrnoList[] = - "errno.h\0"; +tSCC zHpux_Long_Double_2List[] = + "stdlib.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzHpux_Extern_ErrnoMachs[] = { - "*-hp-hpux10.*", - "*-hp-hpux11.[0-2]*", +tSCC* apzHpux_Long_Double_2Machs[] = { + "hppa*-*-hpux11.3*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zHpux_Extern_ErrnoSelect0[] = - "^[ \t]*extern int errno;$"; +tSCC zHpux_Long_Double_2Select0[] = + "#[ \t]*if[ \t]*!defined\\(__ia64\\) \\|\\| defined\\(_PROTOTYPES\\) \\|\\| defined\\(_LONG_DOUBLE_STRUCT\\)"; -#define HPUX_EXTERN_ERRNO_TEST_CT 1 -static tTestDesc aHpux_Extern_ErrnoTests[] = { - { TT_EGREP, zHpux_Extern_ErrnoSelect0, (regex_t*)NULL }, }; +#define HPUX_LONG_DOUBLE_2_TEST_CT 1 +static tTestDesc aHpux_Long_Double_2Tests[] = { + { TT_EGREP, zHpux_Long_Double_2Select0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Hpux_Extern_Errno + * Fix Command Arguments for Hpux_Long_Double_2 */ -static const char* apzHpux_Extern_ErrnoPatch[] = { +static const char* apzHpux_Long_Double_2Patch[] = { "format", - "#ifdef __cplusplus\n\ -extern \"C\" {\n\ -#endif\n\ -%0\n\ -#ifdef __cplusplus\n\ -}\n\ -#endif", + "# if !defined(_PROTOTYPES) || defined(_LONG_DOUBLE_STRUCT)", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * @@ -4341,208 +4573,113 @@ static const char* apzHpux_Pthread_InitializersPatch[] = { sed_cmd_z, /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Hpux_C99_Intptr fix - */ -tSCC zHpux_C99_IntptrName[] = - "hpux_c99_intptr"; - -/* - * File name selection pattern - */ -tSCC zHpux_C99_IntptrList[] = - "stdint-hpux11.h\0stdint.h\0"; -/* - * Machine/OS name selection pattern - */ -tSCC* apzHpux_C99_IntptrMachs[] = { - "*-hp-hpux11.3*", - (const char*)NULL }; -#define HPUX_C99_INTPTR_TEST_CT 0 -#define aHpux_C99_IntptrTests (tTestDesc*)NULL - -/* - * Fix Command Arguments for Hpux_C99_Intptr - */ -static const char* apzHpux_C99_IntptrPatch[] = { sed_cmd_z, - "-e", "s@^[ \t]*#[ \t]*define[ \t]*PTRDIFF_MAX[ \t]*INT32_MAX[ \t]*$@#define PTRDIFF_MAX (2147483647l)@", - "-e", "s@^[ \t]*#[ \t]*define[ \t]*PTRDIFF_MIN[ \t]*INT32_MIN[ \t]*$@#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)@", - "-e", "s@^[ \t]*#[ \t]*define[ \t]*INTPTR_MAX[ \t]*INT32_MAX[ \t]*$@#define INTPTR_MAX (2147483647l)@", - "-e", "s@^[ \t]*#[ \t]*define[ \t]*INTPTR_MIN[ \t]*INT32_MIN[ \t]*$@#define INTPTR_MIN (-INTPTR_MAX - 1)@", - "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINTPTR_MAX[ \t]*UINT32_MAX[ \t]*$@#define UINTPTR_MAX (4294967295ul)@", - "-e", "s@^[ \t]*#[ \t]*define[ \t]*SIZE_MAX[ \t]*UINT32_MAX[ \t]*$@#define SIZE_MAX (4294967295ul)@", - (char*)NULL }; - -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of Hpux_C99_Inttypes fix - */ -tSCC zHpux_C99_InttypesName[] = - "hpux_c99_inttypes"; - -/* - * File name selection pattern - */ -tSCC zHpux_C99_InttypesList[] = - "inttypes.h\0stdint-hpux11.h\0stdint.h\0"; -/* - * Machine/OS name selection pattern - */ -tSCC* apzHpux_C99_InttypesMachs[] = { - "*-hp-hpux11.[23]*", - (const char*)NULL }; -#define HPUX_C99_INTTYPES_TEST_CT 0 -#define aHpux_C99_InttypesTests (tTestDesc*)NULL - -/* - * Fix Command Arguments for Hpux_C99_Inttypes - */ -static const char* apzHpux_C99_InttypesPatch[] = { sed_cmd_z, - "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT8_C(__c)[ \t]*__CONCAT_U__(__c)[ \t]*$@#define UINT8_C(__c) (__c)@", - "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT16_C(__c)[ \t]*__CONCAT_U__(__c)[ \t]*$@#define UINT16_C(__c) (__c)@", - "-e", "s@^[ \t]*#[ \t]*define[ \t]*INT32_C(__c)[ \t]*__CONCAT__(__c,l)[ \t]*$@#define INT32_C(__c) (__c)@", - "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT32_C(__c)[ \t].*$@#define UINT32_C(__c) __CONCAT__(__c,u)@", - (char*)NULL }; - -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of Hpux_C99_Inttypes2 fix - */ -tSCC zHpux_C99_Inttypes2Name[] = - "hpux_c99_inttypes2"; - -/* - * File name selection pattern - */ -tSCC zHpux_C99_Inttypes2List[] = - "stdint-hpux11.h\0stdint.h\0"; -/* - * Machine/OS name selection pattern - */ -tSCC* apzHpux_C99_Inttypes2Machs[] = { - "*-hp-hpux11.2*", - (const char*)NULL }; -#define HPUX_C99_INTTYPES2_TEST_CT 0 -#define aHpux_C99_Inttypes2Tests (tTestDesc*)NULL - -/* - * Fix Command Arguments for Hpux_C99_Inttypes2 - */ -static const char* apzHpux_C99_Inttypes2Patch[] = { sed_cmd_z, - "-e", "s@^[ \t]*#[ \t]*define[ \t]*INT8_C(__c)[ \t]*((signed char)(__c))[ \t]*$@#define INT8_C(__c) (__c)@", - "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT8_C(__c)[ \t]*((unsigned char)(__c))[ \t]*$@#define UINT8_C(__c) (__c)@", - "-e", "s@^[ \t]*#[ \t]*define[ \t]*INT16_C(__c)[ \t]*((short)(__c))[ \t]*$@#define INT16_C(__c) (__c)@", - "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT16_C(__c)[ \t]*((unsigned short)(__c))[ \t]*$@#define UINT16_C(__c) (__c)@", - (char*)NULL }; - -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of Hpux_Stdint_Least_Fast fix + * Description of Hpux_Spu_Info fix */ -tSCC zHpux_Stdint_Least_FastName[] = - "hpux_stdint_least_fast"; +tSCC zHpux_Spu_InfoName[] = + "hpux_spu_info"; /* * File name selection pattern */ -tSCC zHpux_Stdint_Least_FastList[] = - "stdint-hpux11.h\0stdint.h\0"; +tSCC zHpux_Spu_InfoList[] = + "ia64/sys/getppdp.h\0*/sys/getppdp.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzHpux_Stdint_Least_FastMachs[] = { - "*-hp-hpux11.2*", +tSCC* apzHpux_Spu_InfoMachs[] = { + "*-hp-hpux*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zHpux_Stdint_Least_FastSelect0[] = - "^[ \t]*#[ \t]*define[ \t]+UINT_(LEAST|FAST)64_MAX[ \t]+ULLONG_MAX"; +tSCC zHpux_Spu_InfoSelect0[] = + "^.*extern.*spu_info.*"; -#define HPUX_STDINT_LEAST_FAST_TEST_CT 1 -static tTestDesc aHpux_Stdint_Least_FastTests[] = { - { TT_EGREP, zHpux_Stdint_Least_FastSelect0, (regex_t*)NULL }, }; +#define HPUX_SPU_INFO_TEST_CT 1 +static tTestDesc aHpux_Spu_InfoTests[] = { + { TT_EGREP, zHpux_Spu_InfoSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Hpux_Stdint_Least_Fast + * Fix Command Arguments for Hpux_Spu_Info */ -static const char* apzHpux_Stdint_Least_FastPatch[] = { +static const char* apzHpux_Spu_InfoPatch[] = { "format", - "# define\tUINT_%164_MAX\t__UINT64_MAX__", + "#ifdef _KERNEL\n\ +%0\n\ +#endif", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Hpux_Inttype_Int8_T fix + * Description of Hpux_Stdint_Least_Fast fix */ -tSCC zHpux_Inttype_Int8_TName[] = - "hpux_inttype_int8_t"; +tSCC zHpux_Stdint_Least_FastName[] = + "hpux_stdint_least_fast"; /* * File name selection pattern */ -tSCC zHpux_Inttype_Int8_TList[] = - "sys/_inttypes.h\0"; +tSCC zHpux_Stdint_Least_FastList[] = + "stdint-hpux11.h\0stdint.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzHpux_Inttype_Int8_TMachs[] = { - "*-hp-hpux1[01].*", +tSCC* apzHpux_Stdint_Least_FastMachs[] = { + "*-hp-hpux11.2*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zHpux_Inttype_Int8_TSelect0[] = - "^[ \t]*typedef[ \t]*char[ \t]*int(_least){0,1}8_t.*"; +tSCC zHpux_Stdint_Least_FastSelect0[] = + "^[ \t]*#[ \t]*define[ \t]+UINT_(LEAST|FAST)64_MAX[ \t]+ULLONG_MAX"; -#define HPUX_INTTYPE_INT8_T_TEST_CT 1 -static tTestDesc aHpux_Inttype_Int8_TTests[] = { - { TT_EGREP, zHpux_Inttype_Int8_TSelect0, (regex_t*)NULL }, }; +#define HPUX_STDINT_LEAST_FAST_TEST_CT 1 +static tTestDesc aHpux_Stdint_Least_FastTests[] = { + { TT_EGREP, zHpux_Stdint_Least_FastSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Hpux_Inttype_Int8_T + * Fix Command Arguments for Hpux_Stdint_Least_Fast */ -static const char* apzHpux_Inttype_Int8_TPatch[] = { +static const char* apzHpux_Stdint_Least_FastPatch[] = { "format", - "typedef signed char int%18_t;", + "# define\tUINT_%164_MAX\t__UINT64_MAX__", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Hpux_Imaginary_I fix + * Description of Hpux_Systime fix */ -tSCC zHpux_Imaginary_IName[] = - "hpux_imaginary_i"; +tSCC zHpux_SystimeName[] = + "hpux_systime"; /* * File name selection pattern */ -tSCC zHpux_Imaginary_IList[] = - "complex.h\0"; +tSCC zHpux_SystimeList[] = + "sys/time.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzHpux_Imaginary_IMachs[] = { - "ia64-hp-hpux11.*", - (const char*)NULL }; +#define apzHpux_SystimeMachs (const char**)NULL /* * content selection pattern - do fix if pattern found */ -tSCC zHpux_Imaginary_ISelect0[] = - "^[ \t]*#[ \t]*define[ \t]*_Complex_I.*"; +tSCC zHpux_SystimeSelect0[] = + "^extern struct sigevent;"; -#define HPUX_IMAGINARY_I_TEST_CT 1 -static tTestDesc aHpux_Imaginary_ITests[] = { - { TT_EGREP, zHpux_Imaginary_ISelect0, (regex_t*)NULL }, }; +#define HPUX_SYSTIME_TEST_CT 1 +static tTestDesc aHpux_SystimeTests[] = { + { TT_EGREP, zHpux_SystimeSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Hpux_Imaginary_I + * Fix Command Arguments for Hpux_Systime */ -static const char* apzHpux_Imaginary_IPatch[] = { +static const char* apzHpux_SystimePatch[] = { "format", - "#define _Complex_I (__extension__ 1.0iF)", + "struct sigevent;", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * @@ -4556,7 +4693,7 @@ tSCC zHuge_Val_HexName[] = * File name selection pattern */ tSCC zHuge_Val_HexList[] = - "bits/huge_val.h\0"; + "bits/huge_val.h\0*/bits/huge_val.h\0"; /* * Machine/OS name selection pattern */ @@ -4598,7 +4735,7 @@ tSCC zHuge_Valf_HexName[] = * File name selection pattern */ tSCC zHuge_Valf_HexList[] = - "bits/huge_val.h\0"; + "bits/huge_val.h\0*/bits/huge_val.h\0"; /* * Machine/OS name selection pattern */ @@ -4640,7 +4777,7 @@ tSCC zHuge_Vall_HexName[] = * File name selection pattern */ tSCC zHuge_Vall_HexList[] = - "bits/huge_val.h\0"; + "bits/huge_val.h\0*/bits/huge_val.h\0"; /* * Machine/OS name selection pattern */ @@ -6206,94 +6343,290 @@ tSCC* apzSolaris_Complex_CxxMachs[] = { #define aSolaris_Complex_CxxTests (tTestDesc*)NULL /* - * Fix Command Arguments for Solaris_Complex_Cxx + * Fix Command Arguments for Solaris_Complex_Cxx + */ +static const char* apzSolaris_Complex_CxxPatch[] = { sed_cmd_z, + "-e", "/#if[ \t]*!defined(__cplusplus)/c\\\n\ +#ifdef\t__cplusplus\\\n\ +extern \"C\" {\\\n\ +#endif", + "-e", "/#endif[ \t]*\\/\\* !defined(__cplusplus) \\*\\//c\\\n\ +#ifdef\t__cplusplus\\\n\ +}\\\n\ +#endif", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Description of Solaris_Cxx_Linkage fix + */ +tSCC zSolaris_Cxx_LinkageName[] = + "solaris_cxx_linkage"; + +/* + * File name selection pattern + */ +tSCC zSolaris_Cxx_LinkageList[] = + "iso/stdlib_iso.h\0"; +/* + * Machine/OS name selection pattern + */ +tSCC* apzSolaris_Cxx_LinkageMachs[] = { + "*-*-solaris2*", + (const char*)NULL }; + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zSolaris_Cxx_LinkageSelect0[] = + "(#if __cplusplus >= 199711L)\n\ +(extern \"C\\+\\+\" \\{\n\ +)(.*(bsearch|qsort).*)"; + +#define SOLARIS_CXX_LINKAGE_TEST_CT 1 +static tTestDesc aSolaris_Cxx_LinkageTests[] = { + { TT_EGREP, zSolaris_Cxx_LinkageSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Solaris_Cxx_Linkage + */ +static const char* apzSolaris_Cxx_LinkagePatch[] = { + "format", + "%1 && !__GNUG__\n\ +%2%3", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Description of Solaris_Getc_Strict_Stdc fix + */ +tSCC zSolaris_Getc_Strict_StdcName[] = + "solaris_getc_strict_stdc"; + +/* + * File name selection pattern + */ +tSCC zSolaris_Getc_Strict_StdcList[] = + "iso/stdio_iso.h\0"; +/* + * Machine/OS name selection pattern + */ +tSCC* apzSolaris_Getc_Strict_StdcMachs[] = { + "*-*-solaris2*", + (const char*)NULL }; + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zSolaris_Getc_Strict_StdcSelect0[] = + "(.*&& )!defined\\(_STRICT_STDC\\)(.*)"; + +#define SOLARIS_GETC_STRICT_STDC_TEST_CT 1 +static tTestDesc aSolaris_Getc_Strict_StdcTests[] = { + { TT_EGREP, zSolaris_Getc_Strict_StdcSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Solaris_Getc_Strict_Stdc + */ +static const char* apzSolaris_Getc_Strict_StdcPatch[] = { + "format", + "%1(!defined(_STRICT_STDC) || (__cplusplus >= 199711L))%2", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Description of Solaris_Int_Const fix + */ +tSCC zSolaris_Int_ConstName[] = + "solaris_int_const"; + +/* + * File name selection pattern + */ +tSCC zSolaris_Int_ConstList[] = + "sys/int_const.h\0"; +/* + * Machine/OS name selection pattern + */ +tSCC* apzSolaris_Int_ConstMachs[] = { + "*-*-solaris2*", + (const char*)NULL }; + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zSolaris_Int_ConstSelect0[] = + "^#define[ \t]+UINT8_C\\(c\\)[ \t]+__CONCAT__.*\n\ +(/*.**/)\n\ +#define[ \t]+UINT16_C\\(c\\)[ \t]+__CONCAT__.*"; + +#define SOLARIS_INT_CONST_TEST_CT 1 +static tTestDesc aSolaris_Int_ConstTests[] = { + { TT_EGREP, zSolaris_Int_ConstSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Solaris_Int_Const + */ +static const char* apzSolaris_Int_ConstPatch[] = { + "format", + "#define\tUINT8_C(c)\t(c)\n\ +%1\n\ +#define\tUINT16_C(c)\t(c)", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Description of Solaris_Int_Limits_1 fix + */ +tSCC zSolaris_Int_Limits_1Name[] = + "solaris_int_limits_1"; + +/* + * File name selection pattern + */ +tSCC zSolaris_Int_Limits_1List[] = + "sys/int_limits.h\0"; +/* + * Machine/OS name selection pattern + */ +tSCC* apzSolaris_Int_Limits_1Machs[] = { + "*-*-solaris2*", + (const char*)NULL }; + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zSolaris_Int_Limits_1Select0[] = + "^#define[ \t]+UINT8_MAX[ \t]+\\(255U\\)\n\ +#define[ \t]+UINT16_MAX[ \t]+\\(65535U\\)"; + +#define SOLARIS_INT_LIMITS_1_TEST_CT 1 +static tTestDesc aSolaris_Int_Limits_1Tests[] = { + { TT_EGREP, zSolaris_Int_Limits_1Select0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Solaris_Int_Limits_1 + */ +static const char* apzSolaris_Int_Limits_1Patch[] = { + "format", + "#define\tUINT8_MAX\t(255)\n\ +#define\tUINT16_MAX\t(65535)", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Description of Solaris_Int_Limits_2 fix + */ +tSCC zSolaris_Int_Limits_2Name[] = + "solaris_int_limits_2"; + +/* + * File name selection pattern + */ +tSCC zSolaris_Int_Limits_2List[] = + "sys/int_limits.h\0"; +/* + * Machine/OS name selection pattern + */ +tSCC* apzSolaris_Int_Limits_2Machs[] = { + "*-*-solaris2*", + (const char*)NULL }; + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zSolaris_Int_Limits_2Select0[] = + "^#define[ \t]+(INT|UINT)_FAST16_(MAX|MIN)[ \t](INT|UINT)16.*"; + +#define SOLARIS_INT_LIMITS_2_TEST_CT 1 +static tTestDesc aSolaris_Int_Limits_2Tests[] = { + { TT_EGREP, zSolaris_Int_Limits_2Select0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Solaris_Int_Limits_2 */ -static const char* apzSolaris_Complex_CxxPatch[] = { sed_cmd_z, - "-e", "/#if[ \t]*!defined(__cplusplus)/c\\\n\ -#ifdef\t__cplusplus\\\n\ -extern \"C\" {\\\n\ -#endif", - "-e", "/#endif[ \t]*\\/\\* !defined(__cplusplus) \\*\\//c\\\n\ -#ifdef\t__cplusplus\\\n\ -}\\\n\ -#endif", +static const char* apzSolaris_Int_Limits_2Patch[] = { + "format", + "#define\t%1_FAST16_%2 %132_%2", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Solaris_Cxx_Linkage fix + * Description of Solaris_Int_Limits_3 fix */ -tSCC zSolaris_Cxx_LinkageName[] = - "solaris_cxx_linkage"; +tSCC zSolaris_Int_Limits_3Name[] = + "solaris_int_limits_3"; /* * File name selection pattern */ -tSCC zSolaris_Cxx_LinkageList[] = - "iso/stdlib_iso.h\0"; +tSCC zSolaris_Int_Limits_3List[] = + "sys/int_limits.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzSolaris_Cxx_LinkageMachs[] = { +tSCC* apzSolaris_Int_Limits_3Machs[] = { "*-*-solaris2*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zSolaris_Cxx_LinkageSelect0[] = - "(#if __cplusplus >= 199711L)\n\ -(extern \"C\\+\\+\" \\{\n\ -)(.*(bsearch|qsort).*)"; +tSCC zSolaris_Int_Limits_3Select0[] = + "^#define[ \t]+SIZE_MAX[ \t]+4294967295UL"; -#define SOLARIS_CXX_LINKAGE_TEST_CT 1 -static tTestDesc aSolaris_Cxx_LinkageTests[] = { - { TT_EGREP, zSolaris_Cxx_LinkageSelect0, (regex_t*)NULL }, }; +#define SOLARIS_INT_LIMITS_3_TEST_CT 1 +static tTestDesc aSolaris_Int_Limits_3Tests[] = { + { TT_EGREP, zSolaris_Int_Limits_3Select0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Solaris_Cxx_Linkage + * Fix Command Arguments for Solaris_Int_Limits_3 */ -static const char* apzSolaris_Cxx_LinkagePatch[] = { +static const char* apzSolaris_Int_Limits_3Patch[] = { "format", - "%1 && !__GNUG__\n\ -%2%3", + "#define\tSIZE_MAX\t4294967295U", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Solaris_Getc_Strict_Stdc fix + * Description of Solaris_Int_Types fix */ -tSCC zSolaris_Getc_Strict_StdcName[] = - "solaris_getc_strict_stdc"; +tSCC zSolaris_Int_TypesName[] = + "solaris_int_types"; /* * File name selection pattern */ -tSCC zSolaris_Getc_Strict_StdcList[] = - "iso/stdio_iso.h\0"; +tSCC zSolaris_Int_TypesList[] = + "sys/int_types.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzSolaris_Getc_Strict_StdcMachs[] = { - "*-*-solaris2*", - (const char*)NULL }; +#define apzSolaris_Int_TypesMachs (const char**)NULL /* * content selection pattern - do fix if pattern found */ -tSCC zSolaris_Getc_Strict_StdcSelect0[] = - "(.*&& )!defined\\(_STRICT_STDC\\)(.*)"; +tSCC zSolaris_Int_TypesSelect0[] = + "__STDC__ - 0 == 0"; -#define SOLARIS_GETC_STRICT_STDC_TEST_CT 1 -static tTestDesc aSolaris_Getc_Strict_StdcTests[] = { - { TT_EGREP, zSolaris_Getc_Strict_StdcSelect0, (regex_t*)NULL }, }; +/* + * content bypass pattern - skip fix if pattern found + */ +tSCC zSolaris_Int_TypesBypass0[] = + "_LONGLONG_TYPE"; + +#define SOLARIS_INT_TYPES_TEST_CT 2 +static tTestDesc aSolaris_Int_TypesTests[] = { + { TT_NEGREP, zSolaris_Int_TypesBypass0, (regex_t*)NULL }, + { TT_EGREP, zSolaris_Int_TypesSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Solaris_Getc_Strict_Stdc + * Fix Command Arguments for Solaris_Int_Types */ -static const char* apzSolaris_Getc_Strict_StdcPatch[] = { +static const char* apzSolaris_Int_TypesPatch[] = { "format", - "%1(!defined(_STRICT_STDC) || (__cplusplus >= 199711L))%2", + "(defined(_STDC_C99) || !defined(_STRICT_STDC) || defined(__GNUC__))", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * @@ -6385,6 +6718,45 @@ static const char* apzSolaris_Math_1Patch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Solaris_Math_10 fix + */ +tSCC zSolaris_Math_10Name[] = + "solaris_math_10"; + +/* + * File name selection pattern + */ +tSCC zSolaris_Math_10List[] = + "iso/math_c99.h\0"; +/* + * Machine/OS name selection pattern + */ +#define apzSolaris_Math_10Machs (const char**)NULL + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zSolaris_Math_10Select0[] = + "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; + +#define SOLARIS_MATH_10_TEST_CT 1 +static tTestDesc aSolaris_Math_10Tests[] = { + { TT_EGREP, zSolaris_Math_10Select0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Solaris_Math_10 + */ +static const char* apzSolaris_Math_10Patch[] = { + "format", + "#define\tisinf(x) __builtin_isinf(x)", + "^#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]*\\}\\)", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Solaris_Math_2 fix */ tSCC zSolaris_Math_2Name[] = @@ -6570,202 +6942,81 @@ tSCC zSolaris_Math_9Name[] = /* * File name selection pattern */ -tSCC zSolaris_Math_9List[] = - "iso/math_c99.h\0"; -/* - * Machine/OS name selection pattern - */ -#define apzSolaris_Math_9Machs (const char**)NULL - -/* - * content selection pattern - do fix if pattern found - */ -tSCC zSolaris_Math_9Select0[] = - "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; - -/* - * content bypass pattern - skip fix if pattern found - */ -tSCC zSolaris_Math_9Bypass0[] = - "__GNUC__"; - -#define SOLARIS_MATH_9_TEST_CT 2 -static tTestDesc aSolaris_Math_9Tests[] = { - { TT_NEGREP, zSolaris_Math_9Bypass0, (regex_t*)NULL }, - { TT_EGREP, zSolaris_Math_9Select0, (regex_t*)NULL }, }; - -/* - * Fix Command Arguments for Solaris_Math_9 - */ -static const char* apzSolaris_Math_9Patch[] = { - "format", - "#define\t%1(x, y)%2__builtin_%1(x, y)", - "^#define[ \t]+([a-z]+)\\(x, y\\)([ \t]+)\\(\\(x\\) __builtin_[a-z]+\\(y\\)\\)", - (char*)NULL }; - -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of Solaris_Math_10 fix - */ -tSCC zSolaris_Math_10Name[] = - "solaris_math_10"; - -/* - * File name selection pattern - */ -tSCC zSolaris_Math_10List[] = - "iso/math_c99.h\0"; -/* - * Machine/OS name selection pattern - */ -#define apzSolaris_Math_10Machs (const char**)NULL - -/* - * content selection pattern - do fix if pattern found - */ -tSCC zSolaris_Math_10Select0[] = - "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; - -#define SOLARIS_MATH_10_TEST_CT 1 -static tTestDesc aSolaris_Math_10Tests[] = { - { TT_EGREP, zSolaris_Math_10Select0, (regex_t*)NULL }, }; - -/* - * Fix Command Arguments for Solaris_Math_10 - */ -static const char* apzSolaris_Math_10Patch[] = { - "format", - "#define\tisinf(x) __builtin_isinf(x)", - "^#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]*\\}\\)", - (char*)NULL }; - -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of Solaris_Mutex_Init_2 fix - */ -tSCC zSolaris_Mutex_Init_2Name[] = - "solaris_mutex_init_2"; - -/* - * File name selection pattern - */ -tSCC zSolaris_Mutex_Init_2List[] = - "pthread.h\0"; -/* - * Machine/OS name selection pattern - */ -tSCC* apzSolaris_Mutex_Init_2Machs[] = { - "*-*-solaris2.[0-9]", - "*-*-solaris2.[0-9][!0-9]*", - (const char*)NULL }; - -/* - * content selection pattern - do fix if pattern found - */ -tSCC zSolaris_Mutex_Init_2Select0[] = - "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; - -#define SOLARIS_MUTEX_INIT_2_TEST_CT 1 -static tTestDesc aSolaris_Mutex_Init_2Tests[] = { - { TT_EGREP, zSolaris_Mutex_Init_2Select0, (regex_t*)NULL }, }; - -/* - * Fix Command Arguments for Solaris_Mutex_Init_2 - */ -static const char* apzSolaris_Mutex_Init_2Patch[] = { - "format", - "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n\ -%0\n\ -#else\n\ -%1, {0}}%4\n\ -#endif", - "(^#define[ \t]+PTHREAD_(MUTEX|COND)_INITIALIZER[ \t]+(|/*.**/[ \t]*\\\\\n\ -[ \t]*)\\{.*),[ \t]*0\\}(|[ \t].*)$", - (char*)NULL }; - -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of Solaris_Pow_Int_Overload fix - */ -tSCC zSolaris_Pow_Int_OverloadName[] = - "solaris_pow_int_overload"; - -/* - * File name selection pattern - */ -tSCC zSolaris_Pow_Int_OverloadList[] = - "iso/math_iso.h\0"; +tSCC zSolaris_Math_9List[] = + "iso/math_c99.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzSolaris_Pow_Int_OverloadMachs[] = { - "*-*-solaris2*", - (const char*)NULL }; +#define apzSolaris_Math_9Machs (const char**)NULL /* * content selection pattern - do fix if pattern found */ -tSCC zSolaris_Pow_Int_OverloadSelect0[] = - "^[ \t]*inline [a-z ]* pow\\([^()]*, int [^()]*\\) *\\{[^{}]*\n\ -[^{}]*\\}"; +tSCC zSolaris_Math_9Select0[] = + "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; -#define SOLARIS_POW_INT_OVERLOAD_TEST_CT 1 -static tTestDesc aSolaris_Pow_Int_OverloadTests[] = { - { TT_EGREP, zSolaris_Pow_Int_OverloadSelect0, (regex_t*)NULL }, }; +/* + * content bypass pattern - skip fix if pattern found + */ +tSCC zSolaris_Math_9Bypass0[] = + "__GNUC__"; + +#define SOLARIS_MATH_9_TEST_CT 2 +static tTestDesc aSolaris_Math_9Tests[] = { + { TT_NEGREP, zSolaris_Math_9Bypass0, (regex_t*)NULL }, + { TT_EGREP, zSolaris_Math_9Select0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Solaris_Pow_Int_Overload + * Fix Command Arguments for Solaris_Math_9 */ -static const char* apzSolaris_Pow_Int_OverloadPatch[] = { +static const char* apzSolaris_Math_9Patch[] = { "format", - "#if __cplusplus < 201103L\n\ -%0\n\ -#endif", + "#define\t%1(x, y)%2__builtin_%1(x, y)", + "^#define[ \t]+([a-z]+)\\(x, y\\)([ \t]+)\\(\\(x\\) __builtin_[a-z]+\\(y\\)\\)", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Solaris_Rwlock_Init_1 fix + * Description of Solaris_Mutex_Init_2 fix */ -tSCC zSolaris_Rwlock_Init_1Name[] = - "solaris_rwlock_init_1"; +tSCC zSolaris_Mutex_Init_2Name[] = + "solaris_mutex_init_2"; /* * File name selection pattern */ -tSCC zSolaris_Rwlock_Init_1List[] = +tSCC zSolaris_Mutex_Init_2List[] = "pthread.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzSolaris_Rwlock_Init_1Machs[] = { - "*-*-solaris*", +tSCC* apzSolaris_Mutex_Init_2Machs[] = { + "*-*-solaris2.[0-9]", + "*-*-solaris2.[0-9][!0-9]*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zSolaris_Rwlock_Init_1Select0[] = +tSCC zSolaris_Mutex_Init_2Select0[] = "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; -#define SOLARIS_RWLOCK_INIT_1_TEST_CT 1 -static tTestDesc aSolaris_Rwlock_Init_1Tests[] = { - { TT_EGREP, zSolaris_Rwlock_Init_1Select0, (regex_t*)NULL }, }; +#define SOLARIS_MUTEX_INIT_2_TEST_CT 1 +static tTestDesc aSolaris_Mutex_Init_2Tests[] = { + { TT_EGREP, zSolaris_Mutex_Init_2Select0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Solaris_Rwlock_Init_1 + * Fix Command Arguments for Solaris_Mutex_Init_2 */ -static const char* apzSolaris_Rwlock_Init_1Patch[] = { +static const char* apzSolaris_Mutex_Init_2Patch[] = { "format", "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n\ %0\n\ #else\n\ -%1{0, 0, 0, {{0}, {0}, {0}}, {{0}, {0}}, {{0}, {0}}}\n\ +%1, {0}}%4\n\ #endif", - "(^#define[ \t]+PTHREAD_RWLOCK_INITIALIZER[ \t]+)\\{0, 0, 0, \\{0, 0, 0\\}, \\{0, 0\\}, \\{0, 0\\}\\}[ \t]*$", + "(^#define[ \t]+PTHREAD_(MUTEX|COND)_INITIALIZER[ \t]+(|/*.**/[ \t]*\\\\\n\ +[ \t]*)\\{.*),[ \t]*0\\}(|[ \t].*)$", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * @@ -6851,235 +7102,121 @@ static const char* apzSolaris_Once_Init_2Patch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Solaris_Int_Const fix - */ -tSCC zSolaris_Int_ConstName[] = - "solaris_int_const"; - -/* - * File name selection pattern - */ -tSCC zSolaris_Int_ConstList[] = - "sys/int_const.h\0"; -/* - * Machine/OS name selection pattern - */ -tSCC* apzSolaris_Int_ConstMachs[] = { - "*-*-solaris2*", - (const char*)NULL }; - -/* - * content selection pattern - do fix if pattern found - */ -tSCC zSolaris_Int_ConstSelect0[] = - "^#define[ \t]+UINT8_C\\(c\\)[ \t]+__CONCAT__.*\n\ -(/*.**/)\n\ -#define[ \t]+UINT16_C\\(c\\)[ \t]+__CONCAT__.*"; - -#define SOLARIS_INT_CONST_TEST_CT 1 -static tTestDesc aSolaris_Int_ConstTests[] = { - { TT_EGREP, zSolaris_Int_ConstSelect0, (regex_t*)NULL }, }; - -/* - * Fix Command Arguments for Solaris_Int_Const - */ -static const char* apzSolaris_Int_ConstPatch[] = { - "format", - "#define\tUINT8_C(c)\t(c)\n\ -%1\n\ -#define\tUINT16_C(c)\t(c)", - (char*)NULL }; - -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of Solaris_Int_Limits_1 fix - */ -tSCC zSolaris_Int_Limits_1Name[] = - "solaris_int_limits_1"; - -/* - * File name selection pattern - */ -tSCC zSolaris_Int_Limits_1List[] = - "sys/int_limits.h\0"; -/* - * Machine/OS name selection pattern - */ -tSCC* apzSolaris_Int_Limits_1Machs[] = { - "*-*-solaris2*", - (const char*)NULL }; - -/* - * content selection pattern - do fix if pattern found - */ -tSCC zSolaris_Int_Limits_1Select0[] = - "^#define[ \t]+UINT8_MAX[ \t]+\\(255U\\)\n\ -#define[ \t]+UINT16_MAX[ \t]+\\(65535U\\)"; - -#define SOLARIS_INT_LIMITS_1_TEST_CT 1 -static tTestDesc aSolaris_Int_Limits_1Tests[] = { - { TT_EGREP, zSolaris_Int_Limits_1Select0, (regex_t*)NULL }, }; - -/* - * Fix Command Arguments for Solaris_Int_Limits_1 - */ -static const char* apzSolaris_Int_Limits_1Patch[] = { - "format", - "#define\tUINT8_MAX\t(255)\n\ -#define\tUINT16_MAX\t(65535)", - (char*)NULL }; - -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of Solaris_Int_Limits_2 fix + * Description of Solaris_Posix_Spawn_Restrict fix */ -tSCC zSolaris_Int_Limits_2Name[] = - "solaris_int_limits_2"; +tSCC zSolaris_Posix_Spawn_RestrictName[] = + "solaris_posix_spawn_restrict"; /* * File name selection pattern */ -tSCC zSolaris_Int_Limits_2List[] = - "sys/int_limits.h\0"; +tSCC zSolaris_Posix_Spawn_RestrictList[] = + "spawn.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzSolaris_Int_Limits_2Machs[] = { +tSCC* apzSolaris_Posix_Spawn_RestrictMachs[] = { "*-*-solaris2*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zSolaris_Int_Limits_2Select0[] = - "^#define[ \t]+(INT|UINT)_FAST16_(MAX|MIN)[ \t](INT|UINT)16.*"; +tSCC zSolaris_Posix_Spawn_RestrictSelect0[] = + "(.*[ \t]+)([a-z]+)\\[_RESTRICT_KYWD\\](.*)"; -#define SOLARIS_INT_LIMITS_2_TEST_CT 1 -static tTestDesc aSolaris_Int_Limits_2Tests[] = { - { TT_EGREP, zSolaris_Int_Limits_2Select0, (regex_t*)NULL }, }; +#define SOLARIS_POSIX_SPAWN_RESTRICT_TEST_CT 1 +static tTestDesc aSolaris_Posix_Spawn_RestrictTests[] = { + { TT_EGREP, zSolaris_Posix_Spawn_RestrictSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Solaris_Int_Limits_2 + * Fix Command Arguments for Solaris_Posix_Spawn_Restrict */ -static const char* apzSolaris_Int_Limits_2Patch[] = { +static const char* apzSolaris_Posix_Spawn_RestrictPatch[] = { "format", - "#define\t%1_FAST16_%2 %132_%2", + "%1*_RESTRICT_KYWD %2%3", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Solaris_Int_Limits_3 fix + * Description of Solaris_Pow_Int_Overload fix */ -tSCC zSolaris_Int_Limits_3Name[] = - "solaris_int_limits_3"; +tSCC zSolaris_Pow_Int_OverloadName[] = + "solaris_pow_int_overload"; /* * File name selection pattern */ -tSCC zSolaris_Int_Limits_3List[] = - "sys/int_limits.h\0"; +tSCC zSolaris_Pow_Int_OverloadList[] = + "iso/math_iso.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzSolaris_Int_Limits_3Machs[] = { +tSCC* apzSolaris_Pow_Int_OverloadMachs[] = { "*-*-solaris2*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zSolaris_Int_Limits_3Select0[] = - "^#define[ \t]+SIZE_MAX[ \t]+4294967295UL"; - -#define SOLARIS_INT_LIMITS_3_TEST_CT 1 -static tTestDesc aSolaris_Int_Limits_3Tests[] = { - { TT_EGREP, zSolaris_Int_Limits_3Select0, (regex_t*)NULL }, }; - -/* - * Fix Command Arguments for Solaris_Int_Limits_3 - */ -static const char* apzSolaris_Int_Limits_3Patch[] = { - "format", - "#define\tSIZE_MAX\t4294967295U", - (char*)NULL }; - -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of Solaris_Int_Types fix - */ -tSCC zSolaris_Int_TypesName[] = - "solaris_int_types"; - -/* - * File name selection pattern - */ -tSCC zSolaris_Int_TypesList[] = - "sys/int_types.h\0"; -/* - * Machine/OS name selection pattern - */ -#define apzSolaris_Int_TypesMachs (const char**)NULL - -/* - * content selection pattern - do fix if pattern found - */ -tSCC zSolaris_Int_TypesSelect0[] = - "__STDC__ - 0 == 0"; - -/* - * content bypass pattern - skip fix if pattern found - */ -tSCC zSolaris_Int_TypesBypass0[] = - "_LONGLONG_TYPE"; +tSCC zSolaris_Pow_Int_OverloadSelect0[] = + "^[ \t]*inline [a-z ]* pow\\([^()]*, int [^()]*\\) *\\{[^{}]*\n\ +[^{}]*\\}"; -#define SOLARIS_INT_TYPES_TEST_CT 2 -static tTestDesc aSolaris_Int_TypesTests[] = { - { TT_NEGREP, zSolaris_Int_TypesBypass0, (regex_t*)NULL }, - { TT_EGREP, zSolaris_Int_TypesSelect0, (regex_t*)NULL }, }; +#define SOLARIS_POW_INT_OVERLOAD_TEST_CT 1 +static tTestDesc aSolaris_Pow_Int_OverloadTests[] = { + { TT_EGREP, zSolaris_Pow_Int_OverloadSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Solaris_Int_Types + * Fix Command Arguments for Solaris_Pow_Int_Overload */ -static const char* apzSolaris_Int_TypesPatch[] = { +static const char* apzSolaris_Pow_Int_OverloadPatch[] = { "format", - "(defined(_STDC_C99) || !defined(_STRICT_STDC) || defined(__GNUC__))", + "#if __cplusplus < 201103L\n\ +%0\n\ +#endif", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Solaris_Posix_Spawn_Restrict fix + * Description of Solaris_Rwlock_Init_1 fix */ -tSCC zSolaris_Posix_Spawn_RestrictName[] = - "solaris_posix_spawn_restrict"; +tSCC zSolaris_Rwlock_Init_1Name[] = + "solaris_rwlock_init_1"; /* * File name selection pattern */ -tSCC zSolaris_Posix_Spawn_RestrictList[] = - "spawn.h\0"; +tSCC zSolaris_Rwlock_Init_1List[] = + "pthread.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzSolaris_Posix_Spawn_RestrictMachs[] = { - "*-*-solaris2*", +tSCC* apzSolaris_Rwlock_Init_1Machs[] = { + "*-*-solaris*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zSolaris_Posix_Spawn_RestrictSelect0[] = - "(.*[ \t]+)([a-z]+)\\[_RESTRICT_KYWD\\](.*)"; +tSCC zSolaris_Rwlock_Init_1Select0[] = + "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; -#define SOLARIS_POSIX_SPAWN_RESTRICT_TEST_CT 1 -static tTestDesc aSolaris_Posix_Spawn_RestrictTests[] = { - { TT_EGREP, zSolaris_Posix_Spawn_RestrictSelect0, (regex_t*)NULL }, }; +#define SOLARIS_RWLOCK_INIT_1_TEST_CT 1 +static tTestDesc aSolaris_Rwlock_Init_1Tests[] = { + { TT_EGREP, zSolaris_Rwlock_Init_1Select0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Solaris_Posix_Spawn_Restrict + * Fix Command Arguments for Solaris_Rwlock_Init_1 */ -static const char* apzSolaris_Posix_Spawn_RestrictPatch[] = { +static const char* apzSolaris_Rwlock_Init_1Patch[] = { "format", - "%1*_RESTRICT_KYWD %2%3", + "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n\ +%0\n\ +#else\n\ +%1{0, 0, 0, {{0}, {0}, {0}}, {{0}, {0}}, {{0}, {0}}}\n\ +#endif", + "(^#define[ \t]+PTHREAD_RWLOCK_INITIALIZER[ \t]+)\\{0, 0, 0, \\{0, 0, 0\\}, \\{0, 0\\}, \\{0, 0\\}\\}[ \t]*$", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * @@ -8184,7 +8321,7 @@ tSCC zThread_KeywordName[] = * File name selection pattern */ tSCC zThread_KeywordList[] = - "pthread.h\0bits/sigthread.h\0"; + "pthread.h\0bits/sigthread.h\0*/bits/sigthread.h\0"; /* * Machine/OS name selection pattern */ @@ -8352,383 +8489,383 @@ static const char* apzVa_I960_MacroPatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Vms_Define_Can_Use_Extern_Prefix fix + * Description of Vms_Add_Missing_Braces fix */ -tSCC zVms_Define_Can_Use_Extern_PrefixName[] = - "vms_define_can_use_extern_prefix"; +tSCC zVms_Add_Missing_BracesName[] = + "vms_add_missing_braces"; /* * File name selection pattern */ -tSCC zVms_Define_Can_Use_Extern_PrefixList[] = - "rtldef/decc$types.h\0"; +tSCC zVms_Add_Missing_BracesList[] = + "rtldef/signal.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzVms_Define_Can_Use_Extern_PrefixMachs[] = { +tSCC* apzVms_Add_Missing_BracesMachs[] = { "*-*-*vms*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zVms_Define_Can_Use_Extern_PrefixSelect0[] = - "#[ \t]*else\n\ -#[ \t]*if defined\\(__DECCXX\\)\n\ -#[ \t]*define __CAN_USE_EXTERN_PREFIX 1\n"; +tSCC zVms_Add_Missing_BracesSelect0[] = + "(_SIG_[A-Z]+_SET[ \t]+= \\{)(0x[0F]+, 0x[0F]+)"; -#define VMS_DEFINE_CAN_USE_EXTERN_PREFIX_TEST_CT 1 -static tTestDesc aVms_Define_Can_Use_Extern_PrefixTests[] = { - { TT_EGREP, zVms_Define_Can_Use_Extern_PrefixSelect0, (regex_t*)NULL }, }; +#define VMS_ADD_MISSING_BRACES_TEST_CT 1 +static tTestDesc aVms_Add_Missing_BracesTests[] = { + { TT_EGREP, zVms_Add_Missing_BracesSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Vms_Define_Can_Use_Extern_Prefix + * Fix Command Arguments for Vms_Add_Missing_Braces */ -static const char* apzVms_Define_Can_Use_Extern_PrefixPatch[] = { +static const char* apzVms_Add_Missing_BracesPatch[] = { "format", - "%0# elif defined (__GNUC__)\n\ -#\tdefine __CAN_USE_EXTERN_PREFIX 1\n", + "%1 {%2} ", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Vms_Use_Pragma_Extern_Model fix + * Description of Vms_Decc_Builtin fix */ -tSCC zVms_Use_Pragma_Extern_ModelName[] = - "vms_use_pragma_extern_model"; +tSCC zVms_Decc_BuiltinName[] = + "vms_decc_builtin"; /* * File name selection pattern */ -#define zVms_Use_Pragma_Extern_ModelList (char*)NULL +tSCC zVms_Decc_BuiltinList[] = + "rtldef/string.h\0rtldef/time.h\0rtldef/strings.h\0rtldef/socket.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzVms_Use_Pragma_Extern_ModelMachs[] = { +tSCC* apzVms_Decc_BuiltinMachs[] = { "*-*-*vms*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zVms_Use_Pragma_Extern_ModelSelect0[] = - "#if defined\\(__DECC\\) \\|\\| defined\\(__DECCXX\\)\n\ -# pragma extern_model __save\n"; +tSCC zVms_Decc_BuiltinSelect0[] = + "(__MEMSET|__MEMMOVE|__MEMCPY|__STRLEN|__STRCPY)"; -#define VMS_USE_PRAGMA_EXTERN_MODEL_TEST_CT 1 -static tTestDesc aVms_Use_Pragma_Extern_ModelTests[] = { - { TT_EGREP, zVms_Use_Pragma_Extern_ModelSelect0, (regex_t*)NULL }, }; +#define VMS_DECC_BUILTIN_TEST_CT 1 +static tTestDesc aVms_Decc_BuiltinTests[] = { + { TT_EGREP, zVms_Decc_BuiltinSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Vms_Use_Pragma_Extern_Model + * Fix Command Arguments for Vms_Decc_Builtin */ -static const char* apzVms_Use_Pragma_Extern_ModelPatch[] = { - "format", - "#if defined(__DECC) || defined(__DECCXX) || defined(__GNUC__)\n\ -# pragma extern_model __save\n", +static const char* apzVms_Decc_BuiltinPatch[] = { sed_cmd_z, + "-e", "s@__MEMSET@memset@", + "-e", "s@__MEMMOVE@memmove@", + "-e", "s@__MEMCPY@memcpy@", + "-e", "s@__STRLEN@strlen@", + "-e", "s@__STRCPY@strcpy@", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Vms_Disable_Decc_String_Builtins fix + * Description of Vms_Define_Can_Use_Extern_Prefix fix */ -tSCC zVms_Disable_Decc_String_BuiltinsName[] = - "vms_disable_decc_string_builtins"; +tSCC zVms_Define_Can_Use_Extern_PrefixName[] = + "vms_define_can_use_extern_prefix"; /* * File name selection pattern */ -tSCC zVms_Disable_Decc_String_BuiltinsList[] = - "rtldef/string.h\0"; +tSCC zVms_Define_Can_Use_Extern_PrefixList[] = + "rtldef/decc$types.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzVms_Disable_Decc_String_BuiltinsMachs[] = { +tSCC* apzVms_Define_Can_Use_Extern_PrefixMachs[] = { "*-*-*vms*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zVms_Disable_Decc_String_BuiltinsSelect0[] = - "#if !defined\\(__VAX\\)\n"; +tSCC zVms_Define_Can_Use_Extern_PrefixSelect0[] = + "#[ \t]*else\n\ +#[ \t]*if defined\\(__DECCXX\\)\n\ +#[ \t]*define __CAN_USE_EXTERN_PREFIX 1\n"; -#define VMS_DISABLE_DECC_STRING_BUILTINS_TEST_CT 1 -static tTestDesc aVms_Disable_Decc_String_BuiltinsTests[] = { - { TT_EGREP, zVms_Disable_Decc_String_BuiltinsSelect0, (regex_t*)NULL }, }; +#define VMS_DEFINE_CAN_USE_EXTERN_PREFIX_TEST_CT 1 +static tTestDesc aVms_Define_Can_Use_Extern_PrefixTests[] = { + { TT_EGREP, zVms_Define_Can_Use_Extern_PrefixSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Vms_Disable_Decc_String_Builtins + * Fix Command Arguments for Vms_Define_Can_Use_Extern_Prefix */ -static const char* apzVms_Disable_Decc_String_BuiltinsPatch[] = { +static const char* apzVms_Define_Can_Use_Extern_PrefixPatch[] = { "format", - "#if !defined(__VAX) && !defined(__GNUC__)\n", + "%0# elif defined (__GNUC__)\n\ +#\tdefine __CAN_USE_EXTERN_PREFIX 1\n", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Vms_Use_Quoted_Include fix + * Description of Vms_Disable_Decc_String_Builtins fix */ -tSCC zVms_Use_Quoted_IncludeName[] = - "vms_use_quoted_include"; +tSCC zVms_Disable_Decc_String_BuiltinsName[] = + "vms_disable_decc_string_builtins"; /* * File name selection pattern */ -tSCC zVms_Use_Quoted_IncludeList[] = - "rtldef/wait.h\0starlet_c/pthread.h\0"; +tSCC zVms_Disable_Decc_String_BuiltinsList[] = + "rtldef/string.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzVms_Use_Quoted_IncludeMachs[] = { +tSCC* apzVms_Disable_Decc_String_BuiltinsMachs[] = { "*-*-*vms*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zVms_Use_Quoted_IncludeSelect0[] = - "(#[ \t]*include[ \t]+)<(resource|builtins)\\.h>"; +tSCC zVms_Disable_Decc_String_BuiltinsSelect0[] = + "#if !defined\\(__VAX\\)\n"; -#define VMS_USE_QUOTED_INCLUDE_TEST_CT 1 -static tTestDesc aVms_Use_Quoted_IncludeTests[] = { - { TT_EGREP, zVms_Use_Quoted_IncludeSelect0, (regex_t*)NULL }, }; +#define VMS_DISABLE_DECC_STRING_BUILTINS_TEST_CT 1 +static tTestDesc aVms_Disable_Decc_String_BuiltinsTests[] = { + { TT_EGREP, zVms_Disable_Decc_String_BuiltinsSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Vms_Use_Quoted_Include + * Fix Command Arguments for Vms_Disable_Decc_String_Builtins */ -static const char* apzVms_Use_Quoted_IncludePatch[] = { +static const char* apzVms_Disable_Decc_String_BuiltinsPatch[] = { "format", - "%1", + "#if !defined(__VAX) && !defined(__GNUC__)\n", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Vms_Add_Missing_Braces fix + * Description of Vms_Do_Not_Redeclare_Hostalias fix */ -tSCC zVms_Add_Missing_BracesName[] = - "vms_add_missing_braces"; +tSCC zVms_Do_Not_Redeclare_HostaliasName[] = + "vms_do_not_redeclare_hostalias"; /* * File name selection pattern */ -tSCC zVms_Add_Missing_BracesList[] = - "rtldef/signal.h\0"; +tSCC zVms_Do_Not_Redeclare_HostaliasList[] = + "rtldef/resolv.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzVms_Add_Missing_BracesMachs[] = { +tSCC* apzVms_Do_Not_Redeclare_HostaliasMachs[] = { "*-*-*vms*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zVms_Add_Missing_BracesSelect0[] = - "(_SIG_[A-Z]+_SET[ \t]+= \\{)(0x[0F]+, 0x[0F]+)"; +tSCC zVms_Do_Not_Redeclare_HostaliasSelect0[] = + "(void[ \t]+fp_nquery \\(const u_char \\*, int, FILE \\*\\);)\n\ +(__char_ptr32[ \t]+hostalias \\(const char \\*\\);)"; -#define VMS_ADD_MISSING_BRACES_TEST_CT 1 -static tTestDesc aVms_Add_Missing_BracesTests[] = { - { TT_EGREP, zVms_Add_Missing_BracesSelect0, (regex_t*)NULL }, }; +#define VMS_DO_NOT_REDECLARE_HOSTALIAS_TEST_CT 1 +static tTestDesc aVms_Do_Not_Redeclare_HostaliasTests[] = { + { TT_EGREP, zVms_Do_Not_Redeclare_HostaliasSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Vms_Add_Missing_Braces + * Fix Command Arguments for Vms_Do_Not_Redeclare_Hostalias */ -static const char* apzVms_Add_Missing_BracesPatch[] = { +static const char* apzVms_Do_Not_Redeclare_HostaliasPatch[] = { "format", - "%1 {%2} ", + "%1\n\ +/* %2 */", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Vms_Do_Not_Redeclare_Hostalias fix + * Description of Vms_Forward_Declare_Struct fix */ -tSCC zVms_Do_Not_Redeclare_HostaliasName[] = - "vms_do_not_redeclare_hostalias"; +tSCC zVms_Forward_Declare_StructName[] = + "vms_forward_declare_struct"; /* * File name selection pattern */ -tSCC zVms_Do_Not_Redeclare_HostaliasList[] = - "rtldef/resolv.h\0"; +tSCC zVms_Forward_Declare_StructList[] = + "rtldef/if.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzVms_Do_Not_Redeclare_HostaliasMachs[] = { +tSCC* apzVms_Forward_Declare_StructMachs[] = { "*-*-*vms*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zVms_Do_Not_Redeclare_HostaliasSelect0[] = - "(void[ \t]+fp_nquery \\(const u_char \\*, int, FILE \\*\\);)\n\ -(__char_ptr32[ \t]+hostalias \\(const char \\*\\);)"; +tSCC zVms_Forward_Declare_StructSelect0[] = + "(/\\* forward decls for C\\+\\+ \\*/\n\ +)#ifdef __cplusplus\n"; -#define VMS_DO_NOT_REDECLARE_HOSTALIAS_TEST_CT 1 -static tTestDesc aVms_Do_Not_Redeclare_HostaliasTests[] = { - { TT_EGREP, zVms_Do_Not_Redeclare_HostaliasSelect0, (regex_t*)NULL }, }; +#define VMS_FORWARD_DECLARE_STRUCT_TEST_CT 1 +static tTestDesc aVms_Forward_Declare_StructTests[] = { + { TT_EGREP, zVms_Forward_Declare_StructSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Vms_Do_Not_Redeclare_Hostalias + * Fix Command Arguments for Vms_Forward_Declare_Struct */ -static const char* apzVms_Do_Not_Redeclare_HostaliasPatch[] = { +static const char* apzVms_Forward_Declare_StructPatch[] = { "format", - "%1\n\ -/* %2 */", + "%1#if defined (__cplusplus) || defined (__GNUC__)\n", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Vms_Decc_Builtin fix + * Description of Vms_No_64bit_Getopt fix */ -tSCC zVms_Decc_BuiltinName[] = - "vms_decc_builtin"; +tSCC zVms_No_64bit_GetoptName[] = + "vms_no_64bit_getopt"; /* * File name selection pattern */ -tSCC zVms_Decc_BuiltinList[] = - "rtldef/string.h\0rtldef/time.h\0rtldef/strings.h\0rtldef/socket.h\0"; +tSCC zVms_No_64bit_GetoptList[] = + "rtldef/stdio.h\0rtldef/unistd.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzVms_Decc_BuiltinMachs[] = { +tSCC* apzVms_No_64bit_GetoptMachs[] = { "*-*-*vms*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zVms_Decc_BuiltinSelect0[] = - "(__MEMSET|__MEMMOVE|__MEMCPY|__STRLEN|__STRCPY)"; +tSCC zVms_No_64bit_GetoptSelect0[] = + "^[ \t]*(extern[ \t]*)?(int[ \t]*(getopt|optind|opterr|optopt)|(char \\*optarg))([ \t]*\\(.*\\))?;\n"; -#define VMS_DECC_BUILTIN_TEST_CT 1 -static tTestDesc aVms_Decc_BuiltinTests[] = { - { TT_EGREP, zVms_Decc_BuiltinSelect0, (regex_t*)NULL }, }; +#define VMS_NO_64BIT_GETOPT_TEST_CT 1 +static tTestDesc aVms_No_64bit_GetoptTests[] = { + { TT_EGREP, zVms_No_64bit_GetoptSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Vms_Decc_Builtin + * Fix Command Arguments for Vms_No_64bit_Getopt */ -static const char* apzVms_Decc_BuiltinPatch[] = { sed_cmd_z, - "-e", "s@__MEMSET@memset@", - "-e", "s@__MEMMOVE@memmove@", - "-e", "s@__MEMCPY@memcpy@", - "-e", "s@__STRLEN@strlen@", - "-e", "s@__STRCPY@strcpy@", +static const char* apzVms_No_64bit_GetoptPatch[] = { + "format", + "#if __INITIAL_POINTER_SIZE != 64 /* getopt is short ptr only. */\n\ +%0#endif\n", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Vms_No_64bit_Getopt fix + * Description of Vms_Use_Fast_Setjmp fix */ -tSCC zVms_No_64bit_GetoptName[] = - "vms_no_64bit_getopt"; +tSCC zVms_Use_Fast_SetjmpName[] = + "vms_use_fast_setjmp"; /* * File name selection pattern */ -tSCC zVms_No_64bit_GetoptList[] = - "rtldef/stdio.h\0rtldef/unistd.h\0"; +tSCC zVms_Use_Fast_SetjmpList[] = + "rtldef/setjmp.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzVms_No_64bit_GetoptMachs[] = { +tSCC* apzVms_Use_Fast_SetjmpMachs[] = { "*-*-*vms*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zVms_No_64bit_GetoptSelect0[] = - "^[ \t]*(extern[ \t]*)?(int[ \t]*(getopt|optind|opterr|optopt)|(char \\*optarg))([ \t]*\\(.*\\))?;\n"; +tSCC zVms_Use_Fast_SetjmpSelect0[] = + "(#[ \t]*if[ \t]*defined\\(__FAST_SETJMP\\)[ \t]*\\|\\|)"; -#define VMS_NO_64BIT_GETOPT_TEST_CT 1 -static tTestDesc aVms_No_64bit_GetoptTests[] = { - { TT_EGREP, zVms_No_64bit_GetoptSelect0, (regex_t*)NULL }, }; +#define VMS_USE_FAST_SETJMP_TEST_CT 1 +static tTestDesc aVms_Use_Fast_SetjmpTests[] = { + { TT_EGREP, zVms_Use_Fast_SetjmpSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Vms_No_64bit_Getopt + * Fix Command Arguments for Vms_Use_Fast_Setjmp */ -static const char* apzVms_No_64bit_GetoptPatch[] = { +static const char* apzVms_Use_Fast_SetjmpPatch[] = { "format", - "#if __INITIAL_POINTER_SIZE != 64 /* getopt is short ptr only. */\n\ -%0#endif\n", + "%0 defined (__GNUC__) ||", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Vms_Forward_Declare_Struct fix + * Description of Vms_Use_Pragma_Extern_Model fix */ -tSCC zVms_Forward_Declare_StructName[] = - "vms_forward_declare_struct"; +tSCC zVms_Use_Pragma_Extern_ModelName[] = + "vms_use_pragma_extern_model"; /* * File name selection pattern */ -tSCC zVms_Forward_Declare_StructList[] = - "rtldef/if.h\0"; +#define zVms_Use_Pragma_Extern_ModelList (char*)NULL /* * Machine/OS name selection pattern */ -tSCC* apzVms_Forward_Declare_StructMachs[] = { +tSCC* apzVms_Use_Pragma_Extern_ModelMachs[] = { "*-*-*vms*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zVms_Forward_Declare_StructSelect0[] = - "(/\\* forward decls for C\\+\\+ \\*/\n\ -)#ifdef __cplusplus\n"; +tSCC zVms_Use_Pragma_Extern_ModelSelect0[] = + "#if defined\\(__DECC\\) \\|\\| defined\\(__DECCXX\\)\n\ +# pragma extern_model __save\n"; -#define VMS_FORWARD_DECLARE_STRUCT_TEST_CT 1 -static tTestDesc aVms_Forward_Declare_StructTests[] = { - { TT_EGREP, zVms_Forward_Declare_StructSelect0, (regex_t*)NULL }, }; +#define VMS_USE_PRAGMA_EXTERN_MODEL_TEST_CT 1 +static tTestDesc aVms_Use_Pragma_Extern_ModelTests[] = { + { TT_EGREP, zVms_Use_Pragma_Extern_ModelSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Vms_Forward_Declare_Struct + * Fix Command Arguments for Vms_Use_Pragma_Extern_Model */ -static const char* apzVms_Forward_Declare_StructPatch[] = { +static const char* apzVms_Use_Pragma_Extern_ModelPatch[] = { "format", - "%1#if defined (__cplusplus) || defined (__GNUC__)\n", + "#if defined(__DECC) || defined(__DECCXX) || defined(__GNUC__)\n\ +# pragma extern_model __save\n", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Vms_Use_Fast_Setjmp fix + * Description of Vms_Use_Quoted_Include fix */ -tSCC zVms_Use_Fast_SetjmpName[] = - "vms_use_fast_setjmp"; +tSCC zVms_Use_Quoted_IncludeName[] = + "vms_use_quoted_include"; /* * File name selection pattern */ -tSCC zVms_Use_Fast_SetjmpList[] = - "rtldef/setjmp.h\0"; +tSCC zVms_Use_Quoted_IncludeList[] = + "rtldef/wait.h\0starlet_c/pthread.h\0"; /* * Machine/OS name selection pattern */ -tSCC* apzVms_Use_Fast_SetjmpMachs[] = { +tSCC* apzVms_Use_Quoted_IncludeMachs[] = { "*-*-*vms*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zVms_Use_Fast_SetjmpSelect0[] = - "(#[ \t]*if[ \t]*defined\\(__FAST_SETJMP\\)[ \t]*\\|\\|)"; +tSCC zVms_Use_Quoted_IncludeSelect0[] = + "(#[ \t]*include[ \t]+)<(resource|builtins)\\.h>"; -#define VMS_USE_FAST_SETJMP_TEST_CT 1 -static tTestDesc aVms_Use_Fast_SetjmpTests[] = { - { TT_EGREP, zVms_Use_Fast_SetjmpSelect0, (regex_t*)NULL }, }; +#define VMS_USE_QUOTED_INCLUDE_TEST_CT 1 +static tTestDesc aVms_Use_Quoted_IncludeTests[] = { + { TT_EGREP, zVms_Use_Quoted_IncludeSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Vms_Use_Fast_Setjmp + * Fix Command Arguments for Vms_Use_Quoted_Include */ -static const char* apzVms_Use_Fast_SetjmpPatch[] = { +static const char* apzVms_Use_Quoted_IncludePatch[] = { "format", - "%0 defined (__GNUC__) ||", + "%1", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * @@ -9261,143 +9398,6 @@ static const char* apzX11_SprintfPatch[] = { #endif /* !defined __STDC__ */", (char*)NULL }; -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of Feraiseexcept_Nosse_Invalid fix - */ -tSCC zFeraiseexcept_Nosse_InvalidName[] = - "feraiseexcept_nosse_invalid"; - -/* - * File name selection pattern - */ -tSCC zFeraiseexcept_Nosse_InvalidList[] = - "bits/fenv.h\0"; -/* - * Machine/OS name selection pattern - */ -tSCC* apzFeraiseexcept_Nosse_InvalidMachs[] = { - "i[34567]86-*-linux*", - "x86*-linux*", - "amd64-*-linux*", - (const char*)NULL }; - -/* - * content selection pattern - do fix if pattern found - */ -tSCC zFeraiseexcept_Nosse_InvalidSelect0[] = - "^([\t ]*)__asm__ __volatile__ \\(\"divss %0, %0 *\" : : \"x\" \\(__f\\)\\);$"; - -/* - * content bypass pattern - skip fix if pattern found - */ -tSCC zFeraiseexcept_Nosse_InvalidBypass0[] = - "\"fdiv .*; fwait\""; - -#define FERAISEEXCEPT_NOSSE_INVALID_TEST_CT 2 -static tTestDesc aFeraiseexcept_Nosse_InvalidTests[] = { - { TT_NEGREP, zFeraiseexcept_Nosse_InvalidBypass0, (regex_t*)NULL }, - { TT_EGREP, zFeraiseexcept_Nosse_InvalidSelect0, (regex_t*)NULL }, }; - -/* - * Fix Command Arguments for Feraiseexcept_Nosse_Invalid - */ -static const char* apzFeraiseexcept_Nosse_InvalidPatch[] = { - "format", - "# ifdef __SSE_MATH__\n\ -%0\n\ -# else\n\ -%1__asm__ __volatile__ (\"fdiv %%%%st, %%%%st(0); fwait\"\n\ -%1\t\t\t: \"=t\" (__f) : \"0\" (__f));\n\ -# endif", - (char*)NULL }; - -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of Feraiseexcept_Nosse_Divbyzero fix - */ -tSCC zFeraiseexcept_Nosse_DivbyzeroName[] = - "feraiseexcept_nosse_divbyzero"; - -/* - * File name selection pattern - */ -tSCC zFeraiseexcept_Nosse_DivbyzeroList[] = - "bits/fenv.h\0"; -/* - * Machine/OS name selection pattern - */ -tSCC* apzFeraiseexcept_Nosse_DivbyzeroMachs[] = { - "i[34567]86-*-linux*", - "x86*-linux*", - "amd64-*-linux*", - (const char*)NULL }; - -/* - * content selection pattern - do fix if pattern found - */ -tSCC zFeraiseexcept_Nosse_DivbyzeroSelect0[] = - "^([\t ]*)__asm__ __volatile__ \\(\"divss %1, %0 *\" : : \"x\" \\(__f\\), \"x\" \\(__g\\)\\);$"; - -/* - * content bypass pattern - skip fix if pattern found - */ -tSCC zFeraiseexcept_Nosse_DivbyzeroBypass0[] = - "\"fdivp .*; fwait\""; - -#define FERAISEEXCEPT_NOSSE_DIVBYZERO_TEST_CT 2 -static tTestDesc aFeraiseexcept_Nosse_DivbyzeroTests[] = { - { TT_NEGREP, zFeraiseexcept_Nosse_DivbyzeroBypass0, (regex_t*)NULL }, - { TT_EGREP, zFeraiseexcept_Nosse_DivbyzeroSelect0, (regex_t*)NULL }, }; - -/* - * Fix Command Arguments for Feraiseexcept_Nosse_Divbyzero - */ -static const char* apzFeraiseexcept_Nosse_DivbyzeroPatch[] = { - "format", - "# ifdef __SSE_MATH__\n\ -%0\n\ -# else\n\ -%1__asm__ __volatile__ (\"fdivp %%%%st, %%%%st(1); fwait\"\n\ -%1\t\t\t: \"=t\" (__f) : \"0\" (__f), \"u\" (__g) : \"st(1)\");\n\ -# endif", - (char*)NULL }; - -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of Complier_H_Tradcpp fix - */ -tSCC zComplier_H_TradcppName[] = - "complier_h_tradcpp"; - -/* - * File name selection pattern - */ -tSCC zComplier_H_TradcppList[] = - "linux/compiler.h\0"; -/* - * Machine/OS name selection pattern - */ -#define apzComplier_H_TradcppMachs (const char**)NULL - -/* - * content selection pattern - do fix if pattern found - */ -tSCC zComplier_H_TradcppSelect0[] = - "#define __builtin_warning\\(x, y\\.\\.\\.\\) \\(1\\)"; - -#define COMPLIER_H_TRADCPP_TEST_CT 1 -static tTestDesc aComplier_H_TradcppTests[] = { - { TT_EGREP, zComplier_H_TradcppSelect0, (regex_t*)NULL }, }; - -/* - * Fix Command Arguments for Complier_H_Tradcpp - */ -static const char* apzComplier_H_TradcppPatch[] = { - "format", - "/* __builtin_warning(x, y...) is obsolete */", - (char*)NULL }; - /* * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -9458,6 +9458,7 @@ typedef enum { BROKEN_CABS_FIXIDX, BROKEN_NAN_FIXIDX, BSD_STDIO_ATTRS_CONFLICT_FIXIDX, + COMPLIER_H_TRADCPP_FIXIDX, CTRL_QUOTES_DEF_FIXIDX, CTRL_QUOTES_USE_FIXIDX, CXX_UNREADY_FIXIDX, @@ -9475,6 +9476,8 @@ typedef enum { DEC_INTERN_ASM_FIXIDX, DJGPP_WCHAR_H_FIXIDX, ECD_CURSOR_FIXIDX, + FERAISEEXCEPT_NOSSE_DIVBYZERO_FIXIDX, + FERAISEEXCEPT_NOSSE_INVALID_FIXIDX, FREEBSD_GCC3_BREAKAGE_FIXIDX, FREEBSD_GCC4_BREAKAGE_FIXIDX, GLIBC_C99_INLINE_1_FIXIDX, @@ -9496,28 +9499,28 @@ typedef enum { HPUX10_CTYPE_DECLARATIONS2_FIXIDX, HPUX10_STDIO_DECLARATIONS_FIXIDX, HPUX11_ABS_FIXIDX, + HPUX11_EXTERN_SENDFILE_FIXIDX, + HPUX11_EXTERN_SENDPATH_FIXIDX, HPUX11_FABSF_FIXIDX, HPUX11_PTHREAD_CONST_FIXIDX, HPUX11_SIZE_T_FIXIDX, HPUX11_SNPRINTF_FIXIDX, HPUX11_VSNPRINTF_FIXIDX, HPUX8_BOGUS_INLINES_FIXIDX, + HPUX_C99_INTPTR_FIXIDX, + HPUX_C99_INTTYPES_FIXIDX, + HPUX_C99_INTTYPES2_FIXIDX, HPUX_CTYPE_MACROS_FIXIDX, + HPUX_EXTERN_ERRNO_FIXIDX, HPUX_HTONL_FIXIDX, + HPUX_IMAGINARY_I_FIXIDX, + HPUX_INTTYPE_INT8_T_FIXIDX, HPUX_LONG_DOUBLE_FIXIDX, HPUX_LONG_DOUBLE_2_FIXIDX, - HPUX_SYSTIME_FIXIDX, - HPUX_SPU_INFO_FIXIDX, - HPUX11_EXTERN_SENDFILE_FIXIDX, - HPUX11_EXTERN_SENDPATH_FIXIDX, - HPUX_EXTERN_ERRNO_FIXIDX, HPUX_PTHREAD_INITIALIZERS_FIXIDX, - HPUX_C99_INTPTR_FIXIDX, - HPUX_C99_INTTYPES_FIXIDX, - HPUX_C99_INTTYPES2_FIXIDX, + HPUX_SPU_INFO_FIXIDX, HPUX_STDINT_LEAST_FAST_FIXIDX, - HPUX_INTTYPE_INT8_T_FIXIDX, - HPUX_IMAGINARY_I_FIXIDX, + HPUX_SYSTIME_FIXIDX, HUGE_VAL_HEX_FIXIDX, HUGE_VALF_HEX_FIXIDX, HUGE_VALL_HEX_FIXIDX, @@ -9563,25 +9566,25 @@ typedef enum { SOLARIS_COMPLEX_CXX_FIXIDX, SOLARIS_CXX_LINKAGE_FIXIDX, SOLARIS_GETC_STRICT_STDC_FIXIDX, + SOLARIS_INT_CONST_FIXIDX, + SOLARIS_INT_LIMITS_1_FIXIDX, + SOLARIS_INT_LIMITS_2_FIXIDX, + SOLARIS_INT_LIMITS_3_FIXIDX, + SOLARIS_INT_TYPES_FIXIDX, SOLARIS_LONGJMP_NORETURN_FIXIDX, SOLARIS_MATH_1_FIXIDX, + SOLARIS_MATH_10_FIXIDX, SOLARIS_MATH_2_FIXIDX, SOLARIS_MATH_3_FIXIDX, SOLARIS_MATH_4_FIXIDX, SOLARIS_MATH_8_FIXIDX, SOLARIS_MATH_9_FIXIDX, - SOLARIS_MATH_10_FIXIDX, SOLARIS_MUTEX_INIT_2_FIXIDX, - SOLARIS_POW_INT_OVERLOAD_FIXIDX, - SOLARIS_RWLOCK_INIT_1_FIXIDX, SOLARIS_ONCE_INIT_1_FIXIDX, SOLARIS_ONCE_INIT_2_FIXIDX, - SOLARIS_INT_CONST_FIXIDX, - SOLARIS_INT_LIMITS_1_FIXIDX, - SOLARIS_INT_LIMITS_2_FIXIDX, - SOLARIS_INT_LIMITS_3_FIXIDX, - SOLARIS_INT_TYPES_FIXIDX, SOLARIS_POSIX_SPAWN_RESTRICT_FIXIDX, + SOLARIS_POW_INT_OVERLOAD_FIXIDX, + SOLARIS_RWLOCK_INIT_1_FIXIDX, SOLARIS_STD___FILBUF_FIXIDX, SOLARIS_STDIO_TAG_FIXIDX, SOLARIS_SYS_VA_LIST_FIXIDX, @@ -9614,16 +9617,16 @@ typedef enum { ULTRIX_CONST_FIXIDX, ULTRIX_CONST2_FIXIDX, VA_I960_MACRO_FIXIDX, + VMS_ADD_MISSING_BRACES_FIXIDX, + VMS_DECC_BUILTIN_FIXIDX, VMS_DEFINE_CAN_USE_EXTERN_PREFIX_FIXIDX, - VMS_USE_PRAGMA_EXTERN_MODEL_FIXIDX, VMS_DISABLE_DECC_STRING_BUILTINS_FIXIDX, - VMS_USE_QUOTED_INCLUDE_FIXIDX, - VMS_ADD_MISSING_BRACES_FIXIDX, VMS_DO_NOT_REDECLARE_HOSTALIAS_FIXIDX, - VMS_DECC_BUILTIN_FIXIDX, - VMS_NO_64BIT_GETOPT_FIXIDX, VMS_FORWARD_DECLARE_STRUCT_FIXIDX, + VMS_NO_64BIT_GETOPT_FIXIDX, VMS_USE_FAST_SETJMP_FIXIDX, + VMS_USE_PRAGMA_EXTERN_MODEL_FIXIDX, + VMS_USE_QUOTED_INCLUDE_FIXIDX, VOID_NULL_FIXIDX, VXWORKS_GCC_PROBLEM_FIXIDX, VXWORKS_IOCTL_MACRO_FIXIDX, @@ -9636,10 +9639,7 @@ typedef enum { X11_CLASS_FIXIDX, X11_CLASS_USAGE_FIXIDX, X11_NEW_FIXIDX, - X11_SPRINTF_FIXIDX, - FERAISEEXCEPT_NOSSE_INVALID_FIXIDX, - FERAISEEXCEPT_NOSSE_DIVBYZERO_FIXIDX, - COMPLIER_H_TRADCPP_FIXIDX + X11_SPRINTF_FIXIDX } t_fixinc_idx; tFixDesc fixDescList[ FIX_COUNT ] = { @@ -9878,6 +9878,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = { BSD_STDIO_ATTRS_CONFLICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aBsd_Stdio_Attrs_ConflictTests, apzBsd_Stdio_Attrs_ConflictPatch, 0 }, + { zComplier_H_TradcppName, zComplier_H_TradcppList, + apzComplier_H_TradcppMachs, + COMPLIER_H_TRADCPP_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aComplier_H_TradcppTests, apzComplier_H_TradcppPatch, 0 }, + { zCtrl_Quotes_DefName, zCtrl_Quotes_DefList, apzCtrl_Quotes_DefMachs, CTRL_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -9963,6 +9968,16 @@ tFixDesc fixDescList[ FIX_COUNT ] = { ECD_CURSOR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aEcd_CursorTests, apzEcd_CursorPatch, 0 }, + { zFeraiseexcept_Nosse_DivbyzeroName, zFeraiseexcept_Nosse_DivbyzeroList, + apzFeraiseexcept_Nosse_DivbyzeroMachs, + FERAISEEXCEPT_NOSSE_DIVBYZERO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aFeraiseexcept_Nosse_DivbyzeroTests, apzFeraiseexcept_Nosse_DivbyzeroPatch, 0 }, + + { zFeraiseexcept_Nosse_InvalidName, zFeraiseexcept_Nosse_InvalidList, + apzFeraiseexcept_Nosse_InvalidMachs, + FERAISEEXCEPT_NOSSE_INVALID_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aFeraiseexcept_Nosse_InvalidTests, apzFeraiseexcept_Nosse_InvalidPatch, 0 }, + { zFreebsd_Gcc3_BreakageName, zFreebsd_Gcc3_BreakageList, apzFreebsd_Gcc3_BreakageMachs, FREEBSD_GCC3_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -10068,6 +10083,16 @@ tFixDesc fixDescList[ FIX_COUNT ] = { HPUX11_ABS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aHpux11_AbsTests, apzHpux11_AbsPatch, 0 }, + { zHpux11_Extern_SendfileName, zHpux11_Extern_SendfileList, + apzHpux11_Extern_SendfileMachs, + HPUX11_EXTERN_SENDFILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aHpux11_Extern_SendfileTests, apzHpux11_Extern_SendfilePatch, 0 }, + + { zHpux11_Extern_SendpathName, zHpux11_Extern_SendpathList, + apzHpux11_Extern_SendpathMachs, + HPUX11_EXTERN_SENDPATH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aHpux11_Extern_SendpathTests, apzHpux11_Extern_SendpathPatch, 0 }, + { zHpux11_FabsfName, zHpux11_FabsfList, apzHpux11_FabsfMachs, HPUX11_FABSF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -10098,16 +10123,46 @@ tFixDesc fixDescList[ FIX_COUNT ] = { HPUX8_BOGUS_INLINES_TEST_CT, FD_MACH_ONLY, aHpux8_Bogus_InlinesTests, apzHpux8_Bogus_InlinesPatch, 0 }, + { zHpux_C99_IntptrName, zHpux_C99_IntptrList, + apzHpux_C99_IntptrMachs, + HPUX_C99_INTPTR_TEST_CT, FD_MACH_ONLY, + aHpux_C99_IntptrTests, apzHpux_C99_IntptrPatch, 0 }, + + { zHpux_C99_InttypesName, zHpux_C99_InttypesList, + apzHpux_C99_InttypesMachs, + HPUX_C99_INTTYPES_TEST_CT, FD_MACH_ONLY, + aHpux_C99_InttypesTests, apzHpux_C99_InttypesPatch, 0 }, + + { zHpux_C99_Inttypes2Name, zHpux_C99_Inttypes2List, + apzHpux_C99_Inttypes2Machs, + HPUX_C99_INTTYPES2_TEST_CT, FD_MACH_ONLY, + aHpux_C99_Inttypes2Tests, apzHpux_C99_Inttypes2Patch, 0 }, + { zHpux_Ctype_MacrosName, zHpux_Ctype_MacrosList, apzHpux_Ctype_MacrosMachs, HPUX_CTYPE_MACROS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aHpux_Ctype_MacrosTests, apzHpux_Ctype_MacrosPatch, 0 }, + { zHpux_Extern_ErrnoName, zHpux_Extern_ErrnoList, + apzHpux_Extern_ErrnoMachs, + HPUX_EXTERN_ERRNO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aHpux_Extern_ErrnoTests, apzHpux_Extern_ErrnoPatch, 0 }, + { zHpux_HtonlName, zHpux_HtonlList, apzHpux_HtonlMachs, HPUX_HTONL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aHpux_HtonlTests, apzHpux_HtonlPatch, 0 }, + { zHpux_Imaginary_IName, zHpux_Imaginary_IList, + apzHpux_Imaginary_IMachs, + HPUX_IMAGINARY_I_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aHpux_Imaginary_ITests, apzHpux_Imaginary_IPatch, 0 }, + + { zHpux_Inttype_Int8_TName, zHpux_Inttype_Int8_TList, + apzHpux_Inttype_Int8_TMachs, + HPUX_INTTYPE_INT8_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aHpux_Inttype_Int8_TTests, apzHpux_Inttype_Int8_TPatch, 0 }, + { zHpux_Long_DoubleName, zHpux_Long_DoubleList, apzHpux_Long_DoubleMachs, HPUX_LONG_DOUBLE_TEST_CT, FD_MACH_ONLY, @@ -10118,65 +10173,25 @@ tFixDesc fixDescList[ FIX_COUNT ] = { HPUX_LONG_DOUBLE_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aHpux_Long_Double_2Tests, apzHpux_Long_Double_2Patch, 0 }, - { zHpux_SystimeName, zHpux_SystimeList, - apzHpux_SystimeMachs, - HPUX_SYSTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aHpux_SystimeTests, apzHpux_SystimePatch, 0 }, - - { zHpux_Spu_InfoName, zHpux_Spu_InfoList, - apzHpux_Spu_InfoMachs, - HPUX_SPU_INFO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aHpux_Spu_InfoTests, apzHpux_Spu_InfoPatch, 0 }, - - { zHpux11_Extern_SendfileName, zHpux11_Extern_SendfileList, - apzHpux11_Extern_SendfileMachs, - HPUX11_EXTERN_SENDFILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aHpux11_Extern_SendfileTests, apzHpux11_Extern_SendfilePatch, 0 }, - - { zHpux11_Extern_SendpathName, zHpux11_Extern_SendpathList, - apzHpux11_Extern_SendpathMachs, - HPUX11_EXTERN_SENDPATH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aHpux11_Extern_SendpathTests, apzHpux11_Extern_SendpathPatch, 0 }, - - { zHpux_Extern_ErrnoName, zHpux_Extern_ErrnoList, - apzHpux_Extern_ErrnoMachs, - HPUX_EXTERN_ERRNO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aHpux_Extern_ErrnoTests, apzHpux_Extern_ErrnoPatch, 0 }, - { zHpux_Pthread_InitializersName, zHpux_Pthread_InitializersList, apzHpux_Pthread_InitializersMachs, HPUX_PTHREAD_INITIALIZERS_TEST_CT, FD_MACH_ONLY, aHpux_Pthread_InitializersTests, apzHpux_Pthread_InitializersPatch, 0 }, - { zHpux_C99_IntptrName, zHpux_C99_IntptrList, - apzHpux_C99_IntptrMachs, - HPUX_C99_INTPTR_TEST_CT, FD_MACH_ONLY, - aHpux_C99_IntptrTests, apzHpux_C99_IntptrPatch, 0 }, - - { zHpux_C99_InttypesName, zHpux_C99_InttypesList, - apzHpux_C99_InttypesMachs, - HPUX_C99_INTTYPES_TEST_CT, FD_MACH_ONLY, - aHpux_C99_InttypesTests, apzHpux_C99_InttypesPatch, 0 }, - - { zHpux_C99_Inttypes2Name, zHpux_C99_Inttypes2List, - apzHpux_C99_Inttypes2Machs, - HPUX_C99_INTTYPES2_TEST_CT, FD_MACH_ONLY, - aHpux_C99_Inttypes2Tests, apzHpux_C99_Inttypes2Patch, 0 }, + { zHpux_Spu_InfoName, zHpux_Spu_InfoList, + apzHpux_Spu_InfoMachs, + HPUX_SPU_INFO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aHpux_Spu_InfoTests, apzHpux_Spu_InfoPatch, 0 }, { zHpux_Stdint_Least_FastName, zHpux_Stdint_Least_FastList, apzHpux_Stdint_Least_FastMachs, HPUX_STDINT_LEAST_FAST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aHpux_Stdint_Least_FastTests, apzHpux_Stdint_Least_FastPatch, 0 }, - { zHpux_Inttype_Int8_TName, zHpux_Inttype_Int8_TList, - apzHpux_Inttype_Int8_TMachs, - HPUX_INTTYPE_INT8_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aHpux_Inttype_Int8_TTests, apzHpux_Inttype_Int8_TPatch, 0 }, - - { zHpux_Imaginary_IName, zHpux_Imaginary_IList, - apzHpux_Imaginary_IMachs, - HPUX_IMAGINARY_I_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aHpux_Imaginary_ITests, apzHpux_Imaginary_IPatch, 0 }, + { zHpux_SystimeName, zHpux_SystimeList, + apzHpux_SystimeMachs, + HPUX_SYSTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aHpux_SystimeTests, apzHpux_SystimePatch, 0 }, { zHuge_Val_HexName, zHuge_Val_HexList, apzHuge_Val_HexMachs, @@ -10403,6 +10418,31 @@ tFixDesc fixDescList[ FIX_COUNT ] = { SOLARIS_GETC_STRICT_STDC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aSolaris_Getc_Strict_StdcTests, apzSolaris_Getc_Strict_StdcPatch, 0 }, + { zSolaris_Int_ConstName, zSolaris_Int_ConstList, + apzSolaris_Int_ConstMachs, + SOLARIS_INT_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aSolaris_Int_ConstTests, apzSolaris_Int_ConstPatch, 0 }, + + { zSolaris_Int_Limits_1Name, zSolaris_Int_Limits_1List, + apzSolaris_Int_Limits_1Machs, + SOLARIS_INT_LIMITS_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aSolaris_Int_Limits_1Tests, apzSolaris_Int_Limits_1Patch, 0 }, + + { zSolaris_Int_Limits_2Name, zSolaris_Int_Limits_2List, + apzSolaris_Int_Limits_2Machs, + SOLARIS_INT_LIMITS_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aSolaris_Int_Limits_2Tests, apzSolaris_Int_Limits_2Patch, 0 }, + + { zSolaris_Int_Limits_3Name, zSolaris_Int_Limits_3List, + apzSolaris_Int_Limits_3Machs, + SOLARIS_INT_LIMITS_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aSolaris_Int_Limits_3Tests, apzSolaris_Int_Limits_3Patch, 0 }, + + { zSolaris_Int_TypesName, zSolaris_Int_TypesList, + apzSolaris_Int_TypesMachs, + SOLARIS_INT_TYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aSolaris_Int_TypesTests, apzSolaris_Int_TypesPatch, 0 }, + { zSolaris_Longjmp_NoreturnName, zSolaris_Longjmp_NoreturnList, apzSolaris_Longjmp_NoreturnMachs, SOLARIS_LONGJMP_NORETURN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -10413,6 +10453,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = { SOLARIS_MATH_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aSolaris_Math_1Tests, apzSolaris_Math_1Patch, 0 }, + { zSolaris_Math_10Name, zSolaris_Math_10List, + apzSolaris_Math_10Machs, + SOLARIS_MATH_10_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aSolaris_Math_10Tests, apzSolaris_Math_10Patch, 0 }, + { zSolaris_Math_2Name, zSolaris_Math_2List, apzSolaris_Math_2Machs, SOLARIS_MATH_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -10438,26 +10483,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = { SOLARIS_MATH_9_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aSolaris_Math_9Tests, apzSolaris_Math_9Patch, 0 }, - { zSolaris_Math_10Name, zSolaris_Math_10List, - apzSolaris_Math_10Machs, - SOLARIS_MATH_10_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aSolaris_Math_10Tests, apzSolaris_Math_10Patch, 0 }, - { zSolaris_Mutex_Init_2Name, zSolaris_Mutex_Init_2List, apzSolaris_Mutex_Init_2Machs, SOLARIS_MUTEX_INIT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aSolaris_Mutex_Init_2Tests, apzSolaris_Mutex_Init_2Patch, 0 }, - { zSolaris_Pow_Int_OverloadName, zSolaris_Pow_Int_OverloadList, - apzSolaris_Pow_Int_OverloadMachs, - SOLARIS_POW_INT_OVERLOAD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aSolaris_Pow_Int_OverloadTests, apzSolaris_Pow_Int_OverloadPatch, 0 }, - - { zSolaris_Rwlock_Init_1Name, zSolaris_Rwlock_Init_1List, - apzSolaris_Rwlock_Init_1Machs, - SOLARIS_RWLOCK_INIT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aSolaris_Rwlock_Init_1Tests, apzSolaris_Rwlock_Init_1Patch, 0 }, - { zSolaris_Once_Init_1Name, zSolaris_Once_Init_1List, apzSolaris_Once_Init_1Machs, SOLARIS_ONCE_INIT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -10468,36 +10498,21 @@ tFixDesc fixDescList[ FIX_COUNT ] = { SOLARIS_ONCE_INIT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aSolaris_Once_Init_2Tests, apzSolaris_Once_Init_2Patch, 0 }, - { zSolaris_Int_ConstName, zSolaris_Int_ConstList, - apzSolaris_Int_ConstMachs, - SOLARIS_INT_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aSolaris_Int_ConstTests, apzSolaris_Int_ConstPatch, 0 }, - - { zSolaris_Int_Limits_1Name, zSolaris_Int_Limits_1List, - apzSolaris_Int_Limits_1Machs, - SOLARIS_INT_LIMITS_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aSolaris_Int_Limits_1Tests, apzSolaris_Int_Limits_1Patch, 0 }, - - { zSolaris_Int_Limits_2Name, zSolaris_Int_Limits_2List, - apzSolaris_Int_Limits_2Machs, - SOLARIS_INT_LIMITS_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aSolaris_Int_Limits_2Tests, apzSolaris_Int_Limits_2Patch, 0 }, - - { zSolaris_Int_Limits_3Name, zSolaris_Int_Limits_3List, - apzSolaris_Int_Limits_3Machs, - SOLARIS_INT_LIMITS_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aSolaris_Int_Limits_3Tests, apzSolaris_Int_Limits_3Patch, 0 }, - - { zSolaris_Int_TypesName, zSolaris_Int_TypesList, - apzSolaris_Int_TypesMachs, - SOLARIS_INT_TYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aSolaris_Int_TypesTests, apzSolaris_Int_TypesPatch, 0 }, - { zSolaris_Posix_Spawn_RestrictName, zSolaris_Posix_Spawn_RestrictList, apzSolaris_Posix_Spawn_RestrictMachs, SOLARIS_POSIX_SPAWN_RESTRICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aSolaris_Posix_Spawn_RestrictTests, apzSolaris_Posix_Spawn_RestrictPatch, 0 }, + { zSolaris_Pow_Int_OverloadName, zSolaris_Pow_Int_OverloadList, + apzSolaris_Pow_Int_OverloadMachs, + SOLARIS_POW_INT_OVERLOAD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aSolaris_Pow_Int_OverloadTests, apzSolaris_Pow_Int_OverloadPatch, 0 }, + + { zSolaris_Rwlock_Init_1Name, zSolaris_Rwlock_Init_1List, + apzSolaris_Rwlock_Init_1Machs, + SOLARIS_RWLOCK_INIT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aSolaris_Rwlock_Init_1Tests, apzSolaris_Rwlock_Init_1Patch, 0 }, + { zSolaris_Std___FilbufName, zSolaris_Std___FilbufList, apzSolaris_Std___FilbufMachs, SOLARIS_STD___FILBUF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -10658,56 +10673,56 @@ tFixDesc fixDescList[ FIX_COUNT ] = { VA_I960_MACRO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aVa_I960_MacroTests, apzVa_I960_MacroPatch, 0 }, + { zVms_Add_Missing_BracesName, zVms_Add_Missing_BracesList, + apzVms_Add_Missing_BracesMachs, + VMS_ADD_MISSING_BRACES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aVms_Add_Missing_BracesTests, apzVms_Add_Missing_BracesPatch, 0 }, + + { zVms_Decc_BuiltinName, zVms_Decc_BuiltinList, + apzVms_Decc_BuiltinMachs, + VMS_DECC_BUILTIN_TEST_CT, FD_MACH_ONLY, + aVms_Decc_BuiltinTests, apzVms_Decc_BuiltinPatch, 0 }, + { zVms_Define_Can_Use_Extern_PrefixName, zVms_Define_Can_Use_Extern_PrefixList, apzVms_Define_Can_Use_Extern_PrefixMachs, VMS_DEFINE_CAN_USE_EXTERN_PREFIX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aVms_Define_Can_Use_Extern_PrefixTests, apzVms_Define_Can_Use_Extern_PrefixPatch, 0 }, - { zVms_Use_Pragma_Extern_ModelName, zVms_Use_Pragma_Extern_ModelList, - apzVms_Use_Pragma_Extern_ModelMachs, - VMS_USE_PRAGMA_EXTERN_MODEL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aVms_Use_Pragma_Extern_ModelTests, apzVms_Use_Pragma_Extern_ModelPatch, 0 }, - { zVms_Disable_Decc_String_BuiltinsName, zVms_Disable_Decc_String_BuiltinsList, apzVms_Disable_Decc_String_BuiltinsMachs, VMS_DISABLE_DECC_STRING_BUILTINS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aVms_Disable_Decc_String_BuiltinsTests, apzVms_Disable_Decc_String_BuiltinsPatch, 0 }, - { zVms_Use_Quoted_IncludeName, zVms_Use_Quoted_IncludeList, - apzVms_Use_Quoted_IncludeMachs, - VMS_USE_QUOTED_INCLUDE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aVms_Use_Quoted_IncludeTests, apzVms_Use_Quoted_IncludePatch, 0 }, - - { zVms_Add_Missing_BracesName, zVms_Add_Missing_BracesList, - apzVms_Add_Missing_BracesMachs, - VMS_ADD_MISSING_BRACES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aVms_Add_Missing_BracesTests, apzVms_Add_Missing_BracesPatch, 0 }, - { zVms_Do_Not_Redeclare_HostaliasName, zVms_Do_Not_Redeclare_HostaliasList, apzVms_Do_Not_Redeclare_HostaliasMachs, VMS_DO_NOT_REDECLARE_HOSTALIAS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aVms_Do_Not_Redeclare_HostaliasTests, apzVms_Do_Not_Redeclare_HostaliasPatch, 0 }, - { zVms_Decc_BuiltinName, zVms_Decc_BuiltinList, - apzVms_Decc_BuiltinMachs, - VMS_DECC_BUILTIN_TEST_CT, FD_MACH_ONLY, - aVms_Decc_BuiltinTests, apzVms_Decc_BuiltinPatch, 0 }, + { zVms_Forward_Declare_StructName, zVms_Forward_Declare_StructList, + apzVms_Forward_Declare_StructMachs, + VMS_FORWARD_DECLARE_STRUCT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aVms_Forward_Declare_StructTests, apzVms_Forward_Declare_StructPatch, 0 }, { zVms_No_64bit_GetoptName, zVms_No_64bit_GetoptList, apzVms_No_64bit_GetoptMachs, VMS_NO_64BIT_GETOPT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aVms_No_64bit_GetoptTests, apzVms_No_64bit_GetoptPatch, 0 }, - { zVms_Forward_Declare_StructName, zVms_Forward_Declare_StructList, - apzVms_Forward_Declare_StructMachs, - VMS_FORWARD_DECLARE_STRUCT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aVms_Forward_Declare_StructTests, apzVms_Forward_Declare_StructPatch, 0 }, - { zVms_Use_Fast_SetjmpName, zVms_Use_Fast_SetjmpList, apzVms_Use_Fast_SetjmpMachs, VMS_USE_FAST_SETJMP_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aVms_Use_Fast_SetjmpTests, apzVms_Use_Fast_SetjmpPatch, 0 }, + { zVms_Use_Pragma_Extern_ModelName, zVms_Use_Pragma_Extern_ModelList, + apzVms_Use_Pragma_Extern_ModelMachs, + VMS_USE_PRAGMA_EXTERN_MODEL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aVms_Use_Pragma_Extern_ModelTests, apzVms_Use_Pragma_Extern_ModelPatch, 0 }, + + { zVms_Use_Quoted_IncludeName, zVms_Use_Quoted_IncludeList, + apzVms_Use_Quoted_IncludeMachs, + VMS_USE_QUOTED_INCLUDE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aVms_Use_Quoted_IncludeTests, apzVms_Use_Quoted_IncludePatch, 0 }, + { zVoid_NullName, zVoid_NullList, apzVoid_NullMachs, VOID_NULL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -10771,20 +10786,5 @@ tFixDesc fixDescList[ FIX_COUNT ] = { { zX11_SprintfName, zX11_SprintfList, apzX11_SprintfMachs, X11_SPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aX11_SprintfTests, apzX11_SprintfPatch, 0 }, - - { zFeraiseexcept_Nosse_InvalidName, zFeraiseexcept_Nosse_InvalidList, - apzFeraiseexcept_Nosse_InvalidMachs, - FERAISEEXCEPT_NOSSE_INVALID_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aFeraiseexcept_Nosse_InvalidTests, apzFeraiseexcept_Nosse_InvalidPatch, 0 }, - - { zFeraiseexcept_Nosse_DivbyzeroName, zFeraiseexcept_Nosse_DivbyzeroList, - apzFeraiseexcept_Nosse_DivbyzeroMachs, - FERAISEEXCEPT_NOSSE_DIVBYZERO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aFeraiseexcept_Nosse_DivbyzeroTests, apzFeraiseexcept_Nosse_DivbyzeroPatch, 0 }, - - { zComplier_H_TradcppName, zComplier_H_TradcppList, - apzComplier_H_TradcppMachs, - COMPLIER_H_TRADCPP_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aComplier_H_TradcppTests, apzComplier_H_TradcppPatch, 0 } + aX11_SprintfTests, apzX11_SprintfPatch, 0 } }; diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def index 11ac944..411300f 100644 --- a/fixincludes/inclhack.def +++ b/fixincludes/inclhack.def @@ -11,7 +11,7 @@ autogen definitions fixincl; pattern='^/\*$' \ trailer='^/\*EOF\*[/]' \ input=inclhack.def \ - key='hackname[ ]*=[ ]*(.*);' + key=$'hackname[ \t]*=[ \t]*(.*);' Set up a debug test so we can make the templates emit special code while debugging these fixes: */ @@ -1140,6 +1140,20 @@ fix = { }; /* + * Old Linux kernel's header breaks Traditional CPP + */ +fix = { + hackname = complier_h_tradcpp; + files = linux/compiler.h; + + select = "#define __builtin_warning\\(x, y\\.\\.\\.\\) \\(1\\)"; + c_fix = format; + c_fix_arg = "/* __builtin_warning(x, y...) is obsolete */"; + + test_text = "#define __builtin_warning(x, y...) (1)"; +}; + +/* * Fix various macros used to define ioctl numbers. * The traditional syntax was: * @@ -1509,6 +1523,60 @@ fix = { }; /* + * 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*'; + files = bits/fenv.h, '*/bits/fenv.h'; + select = "^([\t ]*)__asm__ __volatile__ \\(\"divss %1, %0 *\" : " + ": \"x\" \\(__f\\), \"x\" \\(__g\\)\\);$"; + bypass = "\"fdivp .*; fwait\""; + + c_fix = format; + c_fix_arg = <<- _EOText_ + # ifdef __SSE_MATH__ + %0 + # else + %1__asm__ __volatile__ ("fdivp %%%%st, %%%%st(1); fwait" + %1 : "=t" (__f) : "0" (__f), "u" (__g) : "st(1)"); + # endif + _EOText_; + + test_text = <<- _EOText_ + __asm__ __volatile__ ("divss %1, %0" : : "x" (__f), "x" (__g)); + _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_invalid; + mach = 'i[34567]86-*-linux*', 'x86*-linux*', 'amd64-*-linux*'; + files = bits/fenv.h, '*/bits/fenv.h'; + select = "^([\t ]*)__asm__ __volatile__ \\(\"divss %0, %0 *\" : " + ": \"x\" \\(__f\\)\\);$"; + bypass = "\"fdiv .*; fwait\""; + + c_fix = format; + c_fix_arg = <<- _EOText_ + # ifdef __SSE_MATH__ + %0 + # else + %1__asm__ __volatile__ ("fdiv %%%%st, %%%%st(0); fwait" + %1 : "=t" (__f) : "0" (__f)); + # endif + _EOText_; + + test_text = <<- _EOText_ + __asm__ __volatile__ ("divss %0, %0" : : "x" (__f)); + _EOText_; +}; + +/* * 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 * (by design?) when __GNUC__ is set beyond 2. @@ -1738,7 +1806,7 @@ fix = { versions. */ fix = { hackname = glibc_strncpy; - files = bits/string2.h; + files = bits/string2.h, '*/bits/string2.h'; bypass = "__builtin_strncpy"; c_fix = format; c_fix_arg = "# define strncpy(dest, src, n) __builtin_strncpy (dest, src, n)"; @@ -2007,6 +2075,34 @@ fix = { }; /* + * hpux sendfile() + */ +fix = { + hackname = hpux11_extern_sendfile; + mach = "*-hp-hpux11.[12]*"; + files = sys/socket.h; + 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"; +}; + +/* + * hpux sendpath() + */ +fix = { + hackname = hpux11_extern_sendpath; + mach = "*-hp-hpux11.[12]*"; + files = sys/socket.h; + 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"; +}; + +/* * Keep HP-UX 11 from stomping on C++ math namespace * with defines for fabsf. */ @@ -2107,6 +2203,76 @@ fix = { }; /* + * hpux intptr + */ +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)@"; + test_text = "#define PTRDIFF_MAX INT32_MAX\n" + "#define PTRDIFF_MIN INT32_MIN\n" + "#define INTPTR_MAX INT32_MAX\n" + "#define INTPTR_MIN INT32_MIN\n" + "#define UINTPTR_MAX UINT32_MAX\n" + "#define SIZE_MAX UINT32_MAX\n"; +}; + +/* + * These hacks are need in inttypes.h on 11.23 and in stdint.h on 11.31. + */ +fix = { + hackname = hpux_c99_inttypes; + 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)@"; + 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" + "#define UINT32_C(__c) __CONCAT__(__c,ul)\n"; +}; + +/* + * These hacks are need in inttypes.h on 11.23 and in stdint.h on 11.31. + */ +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)@"; + 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" + "# define UINT16_C(__c) ((unsigned short)(__c))\n"; +}; + +/* * Fix hpux broken ctype macros */ fix = { @@ -2122,6 +2288,26 @@ fix = { }; /* + * hpux errno() + */ +fix = { + hackname = hpux_extern_errno; + mach = "*-hp-hpux10.*"; + mach = "*-hp-hpux11.[0-2]*"; + files = errno.h; + select = "^[ \t]*extern int errno;$"; + c_fix = format; + c_fix_arg = "#ifdef __cplusplus\n" + "extern \"C\" {\n" + "#endif\n" + "%0\n" + "#ifdef __cplusplus\n" + "}\n" + "#endif"; + test_text = " extern int errno;\n"; +}; + +/* * Fix hpux broken #ifndef _XOPEN_SOURCE_EXTENDED conditional on htonl etc. */ fix = { @@ -2149,6 +2335,33 @@ fix = { }; /* + * These hacks are need in inttypes.h on 11.23 and in stdint.h on 11.31. + */ +fix = { + hackname = hpux_imaginary_i; + mach = "ia64-hp-hpux11.*"; + files = complex.h; + select = "^[ \t]*#[ \t]*define[ \t]*_Complex_I.*"; + c_fix = format; + c_fix_arg = "#define _Complex_I (__extension__ 1.0iF)"; + test_text = "#define _Complex_I (0.f+_Imaginary_I)\n"; +}; + +/* + * These hacks are need in inttypes.h on 11.23 and in stdint.h on 11.31. + */ +fix = { + hackname = hpux_inttype_int8_t; + mach = "*-hp-hpux1[01].*"; + files = sys/_inttypes.h; + select = "^[ \t]*typedef[ \t]*char[ \t]*int(_least){0,1}8_t.*"; + c_fix = format; + c_fix_arg = "typedef signed char int%18_t;"; + test_text = "typedef char int_least8_t;\n" + "typedef char int8_t;\n"; +}; + +/* * HP-UX long_double */ fix = { @@ -2170,10 +2383,10 @@ fix = { "extern long_double strtold(const char *, char **);\n"; }; - /* - * We cannot use the above rule on 11.31 because it removes the strtold - * definition. ia64 is OK with no hack, PA needs some help. - */ +/* + * We cannot use the above rule on 11.31 because it removes the strtold + * definition. ia64 is OK with no hack, PA needs some help. + */ fix = { hackname = hpux_long_double_2; mach = "hppa*-*-hpux11.3*"; @@ -2190,17 +2403,45 @@ fix = { }; /* - * Fix hpux10.20 to avoid invalid forward decl + * Add missing braces to pthread initializer defines. */ fix = { - hackname = hpux_systime; - files = sys/time.h; - select = "^extern struct sigevent;"; - - c_fix = format; - c_fix_arg = "struct sigevent;"; - - test_text = 'extern struct sigevent;'; + hackname = hpux_pthread_initializers; + mach = "*-hp-hpux11.[0-3]*"; + files = sys/pthread.h; + sed = "s@^[ \t]*1, 1, 1, 1,[ \t]*\\\\" + "@\t{ 1, 1, 1, 1 },\t\t\t\t\t\t\t\\\\@"; + sed = "s@^[ \t]*1,[ \t]*\\\\" + "@\t{ 1, 0 }@"; + sed = "/^[ \t]*0$/d"; + sed = "s@__PTHREAD_MUTEX_VALID, 0" + "@{ __PTHREAD_MUTEX_VALID, 0 }@"; + sed = "s@^[ \t]*0, 0, -1, 0,[ \t]*\\\\" + "@\t{ 0, 0, -1, 0 },\t\t\t\t\t\t\\\\@"; + sed = "s@0, __LWP_MTX_VALID, 0, 1, 1, 1, 1,[ \t]*\\\\" + "@{ 0, __LWP_MTX_VALID }, { 0, 1, 1, 1, 1 },\t\t\t\\\\@"; + sed = "s@^[ \t]*__LWP_MTX_VALID, 0, 1, 1, 1, 1,[ \t]*\\\\" + "@\t{ 0, __LWP_MTX_VALID }, { 0, 1, 1, 1, 1 },\t\t\t\\\\@"; + sed = "s@^[ \t]*0, 0[ \t]*\\\\" + "@\t{ 0, 0 }\t\t\t\t\t\t\t\\\\@"; + sed = "s@__PTHREAD_COND_VALID, 0" + "@{ __PTHREAD_COND_VALID, 0 }@"; + sed = "s@__LWP_COND_VALID, 0,[ \t]*\\\\" + "@{ __LWP_COND_VALID, 0 },\t\t\t\t\t\\\\@"; + sed = "s@__PTHREAD_RWLOCK_VALID, 0" + "@{ __PTHREAD_RWLOCK_VALID, 0 }@"; + sed = "s@__LWP_RWLOCK_VALID, 0,[ \t]*\\\\" + "@{ __LWP_RWLOCK_VALID, 0 },\t\t\t\t\t\\\\@"; + sed = "s@^[ \t]*0, 0, 0, 0, 0, 0, 0[ \t]*\\\\" + "@\t{ 0, 0, 0, 0, 0 }, { 0, 0}\t\t\t\t\t\\\\@"; + test_text = "#define PTHREAD_MUTEX_INITIALIZER {\t\t\t\t\t\\\\\n" + "\t__PTHREAD_MUTEX_VALID, 0,\t\t\t\t\t\\\\\n" + "\t(PTHREAD_MUTEX_DEFAULT | PTHREAD_PROCESS_PRIVATE),\t\t\\\\\n" + "\t__SPNLCK_INITIALIZER,\t\t\t\t\t\t\\\\\n" + "\t0, 0, -1, 0,\t\t\t\t\t\t\t\\\\\n" + "\t0, __LWP_MTX_VALID, 0, 1, 1, 1, 1,\t\t\t\t\\\\\n" + "\t0, 0\t\t\t\t\t\t\t\t\\\\\n" + "}\n"; }; /* @@ -2226,152 +2467,9 @@ fix = { test_text = "extern union mpinfou spu_info[];"; }; -fix = { - hackname = hpux11_extern_sendfile; - mach = "*-hp-hpux11.[12]*"; - files = sys/socket.h; - 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"; -}; - -fix = { - hackname = hpux11_extern_sendpath; - mach = "*-hp-hpux11.[12]*"; - files = sys/socket.h; - 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"; -}; - -fix = { - hackname = hpux_extern_errno; - mach = "*-hp-hpux10.*"; - mach = "*-hp-hpux11.[0-2]*"; - files = errno.h; - select = "^[ \t]*extern int errno;$"; - c_fix = format; - 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. - */ -fix = { - hackname = hpux_pthread_initializers; - mach = "*-hp-hpux11.[0-3]*"; - files = sys/pthread.h; - sed = "s@^[ \t]*1, 1, 1, 1,[ \t]*\\\\" - "@\t{ 1, 1, 1, 1 },\t\t\t\t\t\t\t\\\\@"; - sed = "s@^[ \t]*1,[ \t]*\\\\" - "@\t{ 1, 0 }@"; - sed = "/^[ \t]*0$/d"; - sed = "s@__PTHREAD_MUTEX_VALID, 0" - "@{ __PTHREAD_MUTEX_VALID, 0 }@"; - sed = "s@^[ \t]*0, 0, -1, 0,[ \t]*\\\\" - "@\t{ 0, 0, -1, 0 },\t\t\t\t\t\t\\\\@"; - sed = "s@0, __LWP_MTX_VALID, 0, 1, 1, 1, 1,[ \t]*\\\\" - "@{ 0, __LWP_MTX_VALID }, { 0, 1, 1, 1, 1 },\t\t\t\\\\@"; - sed = "s@^[ \t]*__LWP_MTX_VALID, 0, 1, 1, 1, 1,[ \t]*\\\\" - "@\t{ 0, __LWP_MTX_VALID }, { 0, 1, 1, 1, 1 },\t\t\t\\\\@"; - sed = "s@^[ \t]*0, 0[ \t]*\\\\" - "@\t{ 0, 0 }\t\t\t\t\t\t\t\\\\@"; - sed = "s@__PTHREAD_COND_VALID, 0" - "@{ __PTHREAD_COND_VALID, 0 }@"; - sed = "s@__LWP_COND_VALID, 0,[ \t]*\\\\" - "@{ __LWP_COND_VALID, 0 },\t\t\t\t\t\\\\@"; - sed = "s@__PTHREAD_RWLOCK_VALID, 0" - "@{ __PTHREAD_RWLOCK_VALID, 0 }@"; - sed = "s@__LWP_RWLOCK_VALID, 0,[ \t]*\\\\" - "@{ __LWP_RWLOCK_VALID, 0 },\t\t\t\t\t\\\\@"; - sed = "s@^[ \t]*0, 0, 0, 0, 0, 0, 0[ \t]*\\\\" - "@\t{ 0, 0, 0, 0, 0 }, { 0, 0}\t\t\t\t\t\\\\@"; - test_text = "#define PTHREAD_MUTEX_INITIALIZER {\t\t\t\t\t\\\\\n" - "\t__PTHREAD_MUTEX_VALID, 0,\t\t\t\t\t\\\\\n" - "\t(PTHREAD_MUTEX_DEFAULT | PTHREAD_PROCESS_PRIVATE),\t\t\\\\\n" - "\t__SPNLCK_INITIALIZER,\t\t\t\t\t\t\\\\\n" - "\t0, 0, -1, 0,\t\t\t\t\t\t\t\\\\\n" - "\t0, __LWP_MTX_VALID, 0, 1, 1, 1, 1,\t\t\t\t\\\\\n" - "\t0, 0\t\t\t\t\t\t\t\t\\\\\n" - "}\n"; -}; - -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)@"; - test_text = "#define PTRDIFF_MAX INT32_MAX\n" - "#define PTRDIFF_MIN INT32_MIN\n" - "#define INTPTR_MAX INT32_MAX\n" - "#define INTPTR_MIN INT32_MIN\n" - "#define UINTPTR_MAX UINT32_MAX\n" - "#define SIZE_MAX UINT32_MAX\n"; -}; - /* * These hacks are need in inttypes.h on 11.23 and in stdint.h on 11.31. */ - -fix = { - hackname = hpux_c99_inttypes; - 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)@"; - 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" - "#define UINT32_C(__c) __CONCAT__(__c,ul)\n"; -}; - -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)@"; - 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" - "# define UINT16_C(__c) ((unsigned short)(__c))\n"; -}; - fix = { hackname = hpux_stdint_least_fast; mach = "*-hp-hpux11.2*"; @@ -2385,25 +2483,18 @@ fix = { _EOFix_; }; +/* + * Fix hpux10.20 to avoid invalid forward decl + */ fix = { - hackname = hpux_inttype_int8_t; - mach = "*-hp-hpux1[01].*"; - files = sys/_inttypes.h; - select = "^[ \t]*typedef[ \t]*char[ \t]*int(_least){0,1}8_t.*"; - c_fix = format; - c_fix_arg = "typedef signed char int%18_t;"; - test_text = "typedef char int_least8_t;\n" - "typedef char int8_t;\n"; -}; + hackname = hpux_systime; + files = sys/time.h; + select = "^extern struct sigevent;"; -fix = { - hackname = hpux_imaginary_i; - mach = "ia64-hp-hpux11.*"; - files = complex.h; - select = "^[ \t]*#[ \t]*define[ \t]*_Complex_I.*"; c_fix = format; - c_fix_arg = "#define _Complex_I (__extension__ 1.0iF)"; - test_text = "#define _Complex_I (0.f+_Imaginary_I)\n"; + c_fix_arg = "struct sigevent;"; + + test_text = 'extern struct sigevent;'; }; /* @@ -2411,7 +2502,7 @@ fix = { */ fix = { hackname = huge_val_hex; - files = bits/huge_val.h; + files = bits/huge_val.h, '*/bits/huge_val.h'; select = "^#[ \t]*define[ \t]*HUGE_VAL[ \t].*0x1\\.0p.*"; bypass = "__builtin_huge_val"; @@ -2426,7 +2517,7 @@ fix = { */ fix = { hackname = huge_valf_hex; - files = bits/huge_val.h; + files = bits/huge_val.h, '*/bits/huge_val.h'; select = "^#[ \t]*define[ \t]*HUGE_VALF[ \t].*0x1\\.0p.*"; bypass = "__builtin_huge_valf"; @@ -2441,7 +2532,7 @@ fix = { */ fix = { hackname = huge_vall_hex; - files = bits/huge_val.h; + files = bits/huge_val.h, '*/bits/huge_val.h'; select = "^#[ \t]*define[ \t]*HUGE_VALL[ \t].*0x1\\.0p.*"; bypass = "__builtin_huge_vall"; @@ -2579,7 +2670,8 @@ fix = { test_text = "#define __CONCAT__(a,b) a/**/b"; }; -/* The /usr/include/sys/ucontext.h on ia64-*linux-gnu systems defines +/* + * 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++. */ @@ -2792,9 +2884,11 @@ 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. */ +/* + * 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. + */ fix = { hackname = newlib_stdint_1; files = stdint-newlib.h, stdint.h; @@ -3242,6 +3336,98 @@ fix = { }; /* + * Sun Solaris 2 has a version of sys/int_const.h that defines + * UINT8_C and UINT16_C to unsigned constants. + */ +fix = { + hackname = solaris_int_const; + files = sys/int_const.h; + mach = '*-*-solaris2*'; + c_fix = format; + c_fix_arg = "#define\tUINT8_C(c)\t(c)\n" + "%1\n" + "#define\tUINT16_C(c)\t(c)"; + select = "^#define[ \t]+UINT8_C\\(c\\)[ \t]+__CONCAT__.*\n" + "(/\*.*\*/)\n" + "#define[ \t]+UINT16_C\\(c\\)[ \t]+__CONCAT__.*"; + test_text = + "#define UINT8_C(c) __CONCAT__(c,u)\n" + "/* CSTYLED */\n" + "#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. + */ +fix = { + hackname = solaris_int_limits_1; + files = sys/int_limits.h; + mach = '*-*-solaris2*'; + c_fix = format; + c_fix_arg = "#define\tUINT8_MAX\t(255)\n" + "#define\tUINT16_MAX\t(65535)"; + select = "^#define[ \t]+UINT8_MAX[ \t]+\\(255U\\)\n" + "#define[ \t]+UINT16_MAX[ \t]+\\(65535U\\)"; + test_text = + "#define UINT8_MAX (255U)\n" + "#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. + */ +fix = { + hackname = solaris_int_limits_2; + files = sys/int_limits.h; + mach = '*-*-solaris2*'; + c_fix = format; + c_fix_arg = "#define\t%1_FAST16_%2 %132_%2"; + select = "^#define[ \t]+(INT|UINT)_FAST16_(MAX|MIN)[ \t](INT|UINT)16.*"; + test_text = + "#define INT_FAST16_MAX INT16_MAX\n" + "#define UINT_FAST16_MAX UINT16_MAX\n" + "#define INT_FAST16_MIN INT16_MIN"; +}; + +/* + * Sun Solaris 2 has a version of sys/int_limits.h that defines + * SIZE_MAX as unsigned long. + */ +fix = { + hackname = solaris_int_limits_3; + files = sys/int_limits.h; + mach = '*-*-solaris2*'; + c_fix = format; + c_fix_arg = "#define\tSIZE_MAX\t4294967295U"; + select = "^#define[ \t]+SIZE_MAX[ \t]+4294967295UL"; + test_text = + "#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. + */ +fix = { + hackname = solaris_int_types; + select = "__STDC__ - 0 == 0"; + bypass = "_LONGLONG_TYPE"; + files = sys/int_types.h; + c_fix = format; + c_fix_arg = + "(defined(_STDC_C99) || !defined(_STRICT_STDC) || defined(__GNUC__))"; + test_text = + "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n" + "typedef long long int64_t;\n" + "#endif\n\n" + "#if defined(_LP64) || (__STDC__ - 0 == 0 && !defined(_NO_LONGLONG))\n" + "typedef int64_t intmax_t;\n" + "#endif"; +}; + +/* * Before Solaris 10, doesn't mark longjump noreturn. */ fix = { @@ -3279,6 +3465,35 @@ fix = { "#define HUGE_VALL __builtin_huge_vall"; }; +/* + * On Solaris 11, if you do isinf(NaN) you'll get a floating point + * exception. Provide an alternative using GCC's builtin. + */ +fix = { + hackname = solaris_math_10; + select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; + files = iso/math_c99.h; + 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]*\\}\\)"; + test_text = + '#pragma ident "@(#)math_c99.h 1.12 07/01/21 SMI"'"\n" + "#undef isinf\n" + "#define isinf(x) __extension__( \\\\\n" + " { __typeof(x) __x_i = (x); \\\\\n" + " __x_i == (__typeof(__x_i)) INFINITY || \\\\\n" + " __x_i == (__typeof(__x_i)) (-INFINITY); })"; +}; + +/* + * Solaris math INFINITY + */ fix = { hackname = solaris_math_2; select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; @@ -3293,6 +3508,9 @@ fix = { "#define INFINITY __builtin_infinity"; }; +/* + * Solaris math NAN + */ fix = { hackname = solaris_math_3; select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; @@ -3307,6 +3525,9 @@ fix = { "#define NAN __builtin_nan"; }; +/* + * Solaris math fpclassify + */ fix = { hackname = solaris_math_4; select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; @@ -3323,6 +3544,9 @@ fix = { "#define fpclassify(x) __builtin_fpclassify(x)"; }; +/* + * Solaris math signbit + */ fix = { hackname = solaris_math_8; select = '@\(#\)math_c99\.h' "[ \t]+1\\.[0-9]+[ \t]+[0-9/]+ SMI"; @@ -3342,6 +3566,9 @@ fix = { _EOText_; }; +/* + * Solaris math comparison macros + */ fix = { hackname = solaris_math_9; select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; @@ -3368,33 +3595,6 @@ fix = { }; /* - * On Solaris 11, if you do isinf(NaN) you'll get a floating point - * exception. Provide an alternative using GCC's builtin. - */ - -fix = { - hackname = solaris_math_10; - select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; - files = iso/math_c99.h; - 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]*\\}\\)"; - test_text = - '#pragma ident "@(#)math_c99.h 1.12 07/01/21 SMI"'"\n" - "#undef isinf\n" - "#define isinf(x) __extension__( \\\\\n" - " { __typeof(x) __x_i = (x); \\\\\n" - " __x_i == (__typeof(__x_i)) INFINITY || \\\\\n" - " __x_i == (__typeof(__x_i)) (-INFINITY); })"; -}; - -/* * Sun Solaris defines PTHREAD_MUTEX_INITIALIZER with a trailing * "0" for the last field of the pthread_mutex_t structure, which is * of type upad64_t, which itself is typedef'd to int64_t, but with @@ -3433,49 +3633,6 @@ fix = { }; /* - * The pow overloads with int were removed in C++ 2011 DR 550. - */ -fix = { - hackname = solaris_pow_int_overload; - mach = '*-*-solaris2*'; - files = "iso/math_iso.h"; - select = "^[ \t]*inline [a-z ]* pow\\([^()]*, int [^()]*\\)" - " *\\{[^{}]*\n[^{}]*\\}"; - c_fix = format; - c_fix_arg = "#if __cplusplus < 201103L\n%0\n#endif"; - - test_text = - " inline long double pow(long double __X, int __Y) { return\n" - " __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 - * upad64_t, which itself is typedef'd to int64_t, but with __STDC__ - * defined (e.g. by -ansi) it is a union. So change the initializer - * to "{0}" instead. - */ -fix = { - hackname = solaris_rwlock_init_1; - select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; - files = pthread.h; - mach = '*-*-solaris*'; - c_fix = format; - c_fix_arg = "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n" - "%0\n" - "#else\n" - "%1{0, 0, 0, {{0}, {0}, {0}}, {{0}, {0}}, {{0}, {0}}}\n" - "#endif"; - c_fix_arg = "(^#define[ \t]+PTHREAD_RWLOCK_INITIALIZER[ \t]+)" - "\\{0, 0, 0, \\{0, 0, 0\\}, \\{0, 0\\}, \\{0, 0\\}\\}[ \t]*$"; - - test_text = - '#ident "@(#)pthread.h 1.26 98/04/12 SMI"'"\n" - "#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 * contains one. Wrap the macro definition in an extra layer. @@ -3526,111 +3683,62 @@ fix = { }; /* - * Sun Solaris 2 has a version of sys/int_const.h that defines - * UINT8_C and UINT16_C to unsigned constants. - */ -fix = { - hackname = solaris_int_const; - files = sys/int_const.h; - mach = '*-*-solaris2*'; - c_fix = format; - c_fix_arg = "#define\tUINT8_C(c)\t(c)\n" - "%1\n" - "#define\tUINT16_C(c)\t(c)"; - select = "^#define[ \t]+UINT8_C\\(c\\)[ \t]+__CONCAT__.*\n" - "(/\*.*\*/)\n" - "#define[ \t]+UINT16_C\\(c\\)[ \t]+__CONCAT__.*"; - test_text = - "#define UINT8_C(c) __CONCAT__(c,u)\n" - "/* CSTYLED */\n" - "#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. - */ -fix = { - hackname = solaris_int_limits_1; - files = sys/int_limits.h; - mach = '*-*-solaris2*'; - c_fix = format; - c_fix_arg = "#define\tUINT8_MAX\t(255)\n" - "#define\tUINT16_MAX\t(65535)"; - select = "^#define[ \t]+UINT8_MAX[ \t]+\\(255U\\)\n" - "#define[ \t]+UINT16_MAX[ \t]+\\(65535U\\)"; - test_text = - "#define UINT8_MAX (255U)\n" - "#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. + * Solaris 10+ uses char *const argv[_RESTRICT_KYWD] in the + * posix_spawn declarations, which doesn't work with C++. */ fix = { - hackname = solaris_int_limits_2; - files = sys/int_limits.h; + hackname = solaris_posix_spawn_restrict; + files = spawn.h; mach = '*-*-solaris2*'; c_fix = format; - c_fix_arg = "#define\t%1_FAST16_%2 %132_%2"; - select = "^#define[ \t]+(INT|UINT)_FAST16_(MAX|MIN)[ \t](INT|UINT)16.*"; + c_fix_arg = "%1*_RESTRICT_KYWD %2%3"; + select = "(.*[ \t]+)([a-z]+)\\[_RESTRICT_KYWD\\](.*)"; test_text = - "#define INT_FAST16_MAX INT16_MAX\n" - "#define UINT_FAST16_MAX UINT16_MAX\n" - "#define INT_FAST16_MIN INT16_MIN"; + "char *const argv[_RESTRICT_KYWD],\n" + "char *const envp[_RESTRICT_KYWD]);"; }; /* - * Sun Solaris 2 has a version of sys/int_limits.h that defines - * SIZE_MAX as unsigned long. + * The pow overloads with int were removed in C++ 2011 DR 550. */ fix = { - hackname = solaris_int_limits_3; - files = sys/int_limits.h; + hackname = solaris_pow_int_overload; mach = '*-*-solaris2*'; + files = "iso/math_iso.h"; + select = "^[ \t]*inline [a-z ]* pow\\([^()]*, int [^()]*\\)" + " *\\{[^{}]*\n[^{}]*\\}"; c_fix = format; - c_fix_arg = "#define\tSIZE_MAX\t4294967295U"; - select = "^#define[ \t]+SIZE_MAX[ \t]+4294967295UL"; - test_text = - "#define SIZE_MAX 4294967295UL"; -}; + c_fix_arg = "#if __cplusplus < 201103L\n%0\n#endif"; -/* - * 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. - */ -fix = { - hackname = solaris_int_types; - select = "__STDC__ - 0 == 0"; - bypass = "_LONGLONG_TYPE"; - files = sys/int_types.h; - c_fix = format; - c_fix_arg = - "(defined(_STDC_C99) || !defined(_STRICT_STDC) || defined(__GNUC__))"; test_text = - "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n" - "typedef long long int64_t;\n" - "#endif\n\n" - "#if defined(_LP64) || (__STDC__ - 0 == 0 && !defined(_NO_LONGLONG))\n" - "typedef int64_t intmax_t;\n" - "#endif"; + " inline long double pow(long double __X, int __Y) { return\n" + " __powl(__X, (long double) (__Y)); }"; }; /* - * Solaris 10+ uses char *const argv[_RESTRICT_KYWD] in the - * posix_spawn declarations, which doesn't work with C++. + * Sun Solaris defines PTHREAD_RWLOCK_INITIALIZER with a "0" for some + * fields of the pthread_rwlock_t structure, which are of type + * upad64_t, which itself is typedef'd to int64_t, but with __STDC__ + * defined (e.g. by -ansi) it is a union. So change the initializer + * to "{0}" instead. */ fix = { - hackname = solaris_posix_spawn_restrict; - files = spawn.h; - mach = '*-*-solaris2*'; - c_fix = format; - c_fix_arg = "%1*_RESTRICT_KYWD %2%3"; - select = "(.*[ \t]+)([a-z]+)\\[_RESTRICT_KYWD\\](.*)"; + hackname = solaris_rwlock_init_1; + select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; + files = pthread.h; + mach = '*-*-solaris*'; + c_fix = format; + c_fix_arg = "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n" + "%0\n" + "#else\n" + "%1{0, 0, 0, {{0}, {0}, {0}}, {{0}, {0}}, {{0}, {0}}}\n" + "#endif"; + c_fix_arg = "(^#define[ \t]+PTHREAD_RWLOCK_INITIALIZER[ \t]+)" + "\\{0, 0, 0, \\{0, 0, 0\\}, \\{0, 0\\}, \\{0, 0\\}\\}[ \t]*$"; + test_text = - "char *const argv[_RESTRICT_KYWD],\n" - "char *const envp[_RESTRICT_KYWD]);"; + '#ident "@(#)pthread.h 1.26 98/04/12 SMI"'"\n" + "#define PTHREAD_RWLOCK_INITIALIZER\t{0, 0, 0, {0, 0, 0}, {0, 0}, {0, 0}}"; }; /* @@ -4076,7 +4184,7 @@ fix = { c_fix = format; c_fix_arg = "unsigned int newev;"; - test_text = " unsigned int new; /* New console (if changing) */"; + test_text = " unsigned int new; /* New console (if changing) */"; }; /* @@ -4240,7 +4348,7 @@ fix = { fix = { hackname = thread_keyword; files = "pthread.h"; - files = "bits/sigthread.h"; + files = bits/sigthread.h, '*/bits/sigthread.h'; select = "([* ])__thread([,)])"; c_fix = format; c_fix_arg = "%1__thr%2"; @@ -4326,6 +4434,41 @@ fix = { }; /* + * On VMS, add missing braces around sigset_t constants. + */ +fix = { + hackname = vms_add_missing_braces; + select = "(_SIG_[A-Z]+_SET[ \t]+= \\{)(0x[0F]+, 0x[0F]+)"; + mach = "*-*-*vms*"; + files = "rtldef/signal.h"; + c_fix = format; + + c_fix_arg = '%1 {%2} '; + + test_text = "static const __sigset_t _SIG_EMPTY_SET = " + "{0x00000000, 0x00000000},\n" + " _SIG_FULL_SET = {0xFFFFFFFF, 0xFFFFFFFF};\n"; +}; + +/* + * On VMS, some DEC-C builtins are directly used. + */ +fix = { + hackname = vms_decc_builtin; + select = "(__MEMSET|__MEMMOVE|__MEMCPY|__STRLEN|__STRCPY)"; + mach = "*-*-*vms*"; + files = rtldef/string.h, rtldef/time.h, rtldef/strings.h, + rtldef/socket.h; + sed = "s@__MEMSET@memset@"; + sed = "s@__MEMMOVE@memmove@"; + sed = "s@__MEMCPY@memcpy@"; + sed = "s@__STRLEN@strlen@"; + sed = "s@__STRCPY@strcpy@"; + + test_text = "define FD_ZERO(__p) __MEMSET((__p), 0, sizeof(*(__p)))\n"; +}; + +/* * Define __CAN_USE_EXTERN_PREFIX on vms. */ fix = { @@ -4349,27 +4492,6 @@ fix = { }; /* - * On VMS, use pragma extern_model instead of VAX-C keywords. - */ -fix = { - hackname = vms_use_pragma_extern_model; - select = "#if defined\\(__DECC\\) \\|\\| defined\\(__DECCXX\\)\n" - "# pragma extern_model __save\n"; - mach = "*-*-*vms*"; - c_fix = format; - - c_fix_arg = "#if defined(__DECC) || defined(__DECCXX) || defined(__GNUC__)\n" - "# pragma extern_model __save\n"; - - test_text = "#if defined(__DECC) || defined(__DECCXX)\n" - "# pragma extern_model __save\n" - "# pragma extern_model strict_refdef\n" - " extern struct x zz$yy;\n" - "# pragma extern_model __restore\n" - "#endif\n"; -}; - -/* * On VMS, disable the use of dec-c string builtins */ fix = { @@ -4385,39 +4507,6 @@ fix = { }; /* - * On VMS, change to to avoid a - * conflict while building gcc. Likewise for - */ -fix = { - hackname = vms_use_quoted_include; - select = "(#[ \t]*include[ \t]+)<(resource|builtins)\\.h>"; - mach = "*-*-*vms*"; - files = rtldef/wait.h, starlet_c/pthread.h; - c_fix = format; - - c_fix_arg = '%1'; - - test_text = "# include "; -}; - -/* - * On VMS, add missing braces around sigset_t constants. - */ -fix = { - hackname = vms_add_missing_braces; - select = "(_SIG_[A-Z]+_SET[ \t]+= \\{)(0x[0F]+, 0x[0F]+)"; - mach = "*-*-*vms*"; - files = "rtldef/signal.h"; - c_fix = format; - - c_fix_arg = '%1 {%2} '; - - test_text = "static const __sigset_t _SIG_EMPTY_SET = " - "{0x00000000, 0x00000000},\n" - " _SIG_FULL_SET = {0xFFFFFFFF, 0xFFFFFFFF};\n"; -}; - -/* * On VMS, fix incompatible redeclaration of hostalias. */ fix = { @@ -4436,21 +4525,23 @@ fix = { }; /* - * On VMS, some DEC-C builtins are directly used. + * On VMS, forward declare structure before referencing them in prototypes. */ fix = { - hackname = vms_decc_builtin; - select = "(__MEMSET|__MEMMOVE|__MEMCPY|__STRLEN|__STRCPY)"; + hackname = vms_forward_declare_struct; + select = "(/\\* forward decls for C\\+\\+ \\*/\n)" + "#ifdef __cplusplus\n"; mach = "*-*-*vms*"; - files = rtldef/string.h, rtldef/time.h, rtldef/strings.h, - rtldef/socket.h; - sed = "s@__MEMSET@memset@"; - sed = "s@__MEMMOVE@memmove@"; - sed = "s@__MEMCPY@memcpy@"; - sed = "s@__STRLEN@strlen@"; - sed = "s@__STRCPY@strcpy@"; + files = rtldef/if.h; + c_fix = format; - test_text = "define FD_ZERO(__p) __MEMSET((__p), 0, sizeof(*(__p)))\n"; + c_fix_arg = "%1" + "#if defined (__cplusplus) || defined (__GNUC__)\n"; + + test_text = "/* forward decls for C++ */\n" + "#ifdef __cplusplus\n" + "struct foo;\n" + "#endif\n"; }; /* @@ -4474,39 +4565,56 @@ fix = { }; /* - * On VMS, forward declare structure before referencing them in prototypes. + * On VMS, force the use of fast setjmp, as the normal setjmp uses conditions + * which is not yet fully supported by gcc. */ fix = { - hackname = vms_forward_declare_struct; - select = "(/\\* forward decls for C\\+\\+ \\*/\n)" - "#ifdef __cplusplus\n"; + hackname = vms_use_fast_setjmp; + select = "(#[ \t]*if[ \t]*defined\\(__FAST_SETJMP\\)[ \t]*\\|\\|)"; mach = "*-*-*vms*"; - files = rtldef/if.h; + files = rtldef/setjmp.h; c_fix = format; - c_fix_arg = "%1" - "#if defined (__cplusplus) || defined (__GNUC__)\n"; + c_fix_arg = "%0 defined (__GNUC__) ||"; - test_text = "/* forward decls for C++ */\n" - "#ifdef __cplusplus\n" - "struct foo;\n" - "#endif\n"; + test_text = "# if defined(__FAST_SETJMP) || defined(__UNIX_SETJMP)"; }; /* - * On VMS, force the use of fast setjmp, as the normal setjmp uses conditions - * which is not yet fully supported by gcc. + * On VMS, use pragma extern_model instead of VAX-C keywords. */ fix = { - hackname = vms_use_fast_setjmp; - select = "(#[ \t]*if[ \t]*defined\\(__FAST_SETJMP\\)[ \t]*\\|\\|)"; + hackname = vms_use_pragma_extern_model; + select = "#if defined\\(__DECC\\) \\|\\| defined\\(__DECCXX\\)\n" + "# pragma extern_model __save\n"; mach = "*-*-*vms*"; - files = rtldef/setjmp.h; c_fix = format; - c_fix_arg = "%0 defined (__GNUC__) ||"; + c_fix_arg = "#if defined(__DECC) || defined(__DECCXX) || defined(__GNUC__)\n" + "# pragma extern_model __save\n"; - test_text = "# if defined(__FAST_SETJMP) || defined(__UNIX_SETJMP)"; + test_text = "#if defined(__DECC) || defined(__DECCXX)\n" + "# pragma extern_model __save\n" + "# pragma extern_model strict_refdef\n" + " extern struct x zz$yy;\n" + "# pragma extern_model __restore\n" + "#endif\n"; +}; + +/* + * On VMS, change to to avoid a + * conflict while building gcc. Likewise for + */ +fix = { + hackname = vms_use_quoted_include; + select = "(#[ \t]*include[ \t]+)<(resource|builtins)\\.h>"; + mach = "*-*-*vms*"; + files = rtldef/wait.h, starlet_c/pthread.h; + c_fix = format; + + c_fix_arg = '%1'; + + test_text = "# include "; }; /* @@ -4773,73 +4881,4 @@ fix = { test_text = "extern char *\tsprintf();"; }; - -/* - * 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_invalid; - mach = 'i[34567]86-*-linux*', 'x86*-linux*', 'amd64-*-linux*'; - files = bits/fenv.h; - select = "^([\t ]*)__asm__ __volatile__ \\(\"divss %0, %0 *\" : " - ": \"x\" \\(__f\\)\\);$"; - bypass = "\"fdiv .*; fwait\""; - - c_fix = format; - c_fix_arg = <<- _EOText_ - # ifdef __SSE_MATH__ - %0 - # else - %1__asm__ __volatile__ ("fdiv %%%%st, %%%%st(0); fwait" - %1 : "=t" (__f) : "0" (__f)); - # endif - _EOText_; - - test_text = <<- _EOText_ - __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*'; - files = bits/fenv.h; - select = "^([\t ]*)__asm__ __volatile__ \\(\"divss %1, %0 *\" : " - ": \"x\" \\(__f\\), \"x\" \\(__g\\)\\);$"; - bypass = "\"fdivp .*; fwait\""; - - c_fix = format; - c_fix_arg = <<- _EOText_ - # ifdef __SSE_MATH__ - %0 - # else - %1__asm__ __volatile__ ("fdivp %%%%st, %%%%st(1); fwait" - %1 : "=t" (__f) : "0" (__f), "u" (__g) : "st(1)"); - # endif - _EOText_; - - test_text = <<- _EOText_ - __asm__ __volatile__ ("divss %1, %0" : : "x" (__f), "x" (__g)); - _EOText_; -}; - -/* - * Old Linux kernel's header breaks Traditional CPP - */ -fix = { - hackname = complier_h_tradcpp; - files = linux/compiler.h; - - select = "#define __builtin_warning\\(x, y\\.\\.\\.\\) \\(1\\)"; - c_fix = format; - c_fix_arg = "/* __builtin_warning(x, y...) is obsolete */"; - - test_text = "#define __builtin_warning(x, y...) (1)"; -}; - /*EOF*/ diff --git a/fixincludes/tests/base/bits/fenv.h b/fixincludes/tests/base/bits/fenv.h index a82ec25..eec612b 100644 --- a/fixincludes/tests/base/bits/fenv.h +++ b/fixincludes/tests/base/bits/fenv.h @@ -9,16 +9,6 @@ -#if defined( FERAISEEXCEPT_NOSSE_INVALID_CHECK ) -# ifdef __SSE_MATH__ - __asm__ __volatile__ ("divss %0, %0" : : "x" (__f)); -# else - __asm__ __volatile__ ("fdiv %%st, %%st(0); fwait" - : "=t" (__f) : "0" (__f)); -# endif -#endif /* FERAISEEXCEPT_NOSSE_INVALID_CHECK */ - - #if defined( FERAISEEXCEPT_NOSSE_DIVBYZERO_CHECK ) # ifdef __SSE_MATH__ __asm__ __volatile__ ("divss %1, %0" : : "x" (__f), "x" (__g)); @@ -27,3 +17,13 @@ : "=t" (__f) : "0" (__f), "u" (__g) : "st(1)"); # endif #endif /* FERAISEEXCEPT_NOSSE_DIVBYZERO_CHECK */ + + +#if defined( FERAISEEXCEPT_NOSSE_INVALID_CHECK ) +# ifdef __SSE_MATH__ + __asm__ __volatile__ ("divss %0, %0" : : "x" (__f)); +# else + __asm__ __volatile__ ("fdiv %%st, %%st(0); fwait" + : "=t" (__f) : "0" (__f)); +# endif +#endif /* FERAISEEXCEPT_NOSSE_INVALID_CHECK */ diff --git a/fixincludes/tests/base/iso/math_c99.h b/fixincludes/tests/base/iso/math_c99.h index 4d9b631..3758cb9 100644 --- a/fixincludes/tests/base/iso/math_c99.h +++ b/fixincludes/tests/base/iso/math_c99.h @@ -20,6 +20,13 @@ #endif /* SOLARIS_MATH_1_CHECK */ +#if defined( SOLARIS_MATH_10_CHECK ) +#pragma ident "@(#)math_c99.h 1.12 07/01/21 SMI" +#undef isinf +#define isinf(x) __builtin_isinf(x) +#endif /* SOLARIS_MATH_10_CHECK */ + + #if defined( SOLARIS_MATH_2_CHECK ) #ident "@(#)math_c99.h 1.9 04/11/01 SMI" #undef INFINITY @@ -68,10 +75,3 @@ #undef isunordered #define isunordered(x, y) __builtin_isunordered(x, y) #endif /* SOLARIS_MATH_9_CHECK */ - - -#if defined( SOLARIS_MATH_10_CHECK ) -#pragma ident "@(#)math_c99.h 1.12 07/01/21 SMI" -#undef isinf -#define isinf(x) __builtin_isinf(x) -#endif /* SOLARIS_MATH_10_CHECK */ diff --git a/fixincludes/tests/base/linux/vt.h b/fixincludes/tests/base/linux/vt.h index 4814ab6..94e44ef 100644 --- a/fixincludes/tests/base/linux/vt.h +++ b/fixincludes/tests/base/linux/vt.h @@ -10,5 +10,5 @@ #if defined( SUSE_LINUX_VT_CXX_CHECK ) -unsigned int newev; /* New console (if changing) */ +unsigned int newev; /* New console (if changing) */ #endif /* SUSE_LINUX_VT_CXX_CHECK */ diff --git a/fixincludes/tests/base/pthread.h b/fixincludes/tests/base/pthread.h index 1d28067..c39cd94 100644 --- a/fixincludes/tests/base/pthread.h +++ b/fixincludes/tests/base/pthread.h @@ -125,16 +125,6 @@ extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask); #endif /* SOLARIS_MUTEX_INIT_2_CHECK */ -#if defined( SOLARIS_RWLOCK_INIT_1_CHECK ) -#ident "@(#)pthread.h 1.26 98/04/12 SMI" -#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG) -#define PTHREAD_RWLOCK_INITIALIZER {0, 0, 0, {0, 0, 0}, {0, 0}, {0, 0}} -#else -#define PTHREAD_RWLOCK_INITIALIZER {0, 0, 0, {{0}, {0}, {0}}, {{0}, {0}}, {{0}, {0}}} -#endif -#endif /* SOLARIS_RWLOCK_INIT_1_CHECK */ - - #if defined( SOLARIS_ONCE_INIT_1_CHECK ) #pragma ident "@(#)pthread.h 1.37 04/09/28 SMI" #if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG) @@ -156,6 +146,16 @@ extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask); #endif /* SOLARIS_ONCE_INIT_2_CHECK */ +#if defined( SOLARIS_RWLOCK_INIT_1_CHECK ) +#ident "@(#)pthread.h 1.26 98/04/12 SMI" +#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG) +#define PTHREAD_RWLOCK_INITIALIZER {0, 0, 0, {0, 0, 0}, {0, 0}, {0, 0}} +#else +#define PTHREAD_RWLOCK_INITIALIZER {0, 0, 0, {{0}, {0}, {0}}, {{0}, {0}}, {{0}, {0}}} +#endif +#endif /* SOLARIS_RWLOCK_INIT_1_CHECK */ + + #if defined( THREAD_KEYWORD_CHECK ) extern int pthread_create (pthread_t *__restrict __thr, extern int pthread_kill (pthread_t __thr, int __signo); diff --git a/fixincludes/tests/base/rtldef/string.h b/fixincludes/tests/base/rtldef/string.h index 6249b0c..e013548 100644 --- a/fixincludes/tests/base/rtldef/string.h +++ b/fixincludes/tests/base/rtldef/string.h @@ -9,13 +9,13 @@ -#if defined( VMS_DISABLE_DECC_STRING_BUILTINS_CHECK ) -#if !defined(__VAX) && !defined(__GNUC__) - -#endif /* VMS_DISABLE_DECC_STRING_BUILTINS_CHECK */ - - #if defined( VMS_DECC_BUILTIN_CHECK ) define FD_ZERO(__p) memset((__p), 0, sizeof(*(__p))) #endif /* VMS_DECC_BUILTIN_CHECK */ + + +#if defined( VMS_DISABLE_DECC_STRING_BUILTINS_CHECK ) +#if !defined(__VAX) && !defined(__GNUC__) + +#endif /* VMS_DISABLE_DECC_STRING_BUILTINS_CHECK */ -- 2.7.4