* inclhack.def (aix_once_init_[12]): New fix. * fixincl.x: Rebuilt. * tests/base/pthread.h: New tests. Index: tests/base/pthread.h =================================================================== --- tests/base/pthread.h (revision 181090) +++ tests/base/pthread.h (working copy) @@ -9,6 +9,20 @@ +#if defined( AIX_ONCE_INIT_1_CHECK ) +#define PTHREAD_ONCE_INIT \ +{{ \ + +#endif /* AIX_ONCE_INIT_1_CHECK */ + + +#if defined( AIX_ONCE_INIT_2_CHECK ) + 0 \ +}} + +#endif /* AIX_ONCE_INIT_2_CHECK */ + + #if defined( AIX_PTHREAD_CHECK ) #define PTHREAD_MUTEX_INITIALIZER \ {...init stuff...} Index: fixincl.x =================================================================== --- fixincl.x (revision 181090) +++ fixincl.x (working copy) @@ -2,11 +2,11 @@ * * DO NOT EDIT THIS FILE (fixincl.x) * - * It has been AutoGen-ed Sunday October 23, 2011 at 12:18:29 PM EST + * It has been AutoGen-ed November 7, 2011 at 01:16:39 PM by AutoGen 5.10 * From the definitions inclhack.def * and the template file fixincl */ -/* DO NOT SVN-MERGE THIS FILE, EITHER Sun Oct 23 12:18:29 EST 2011 +/* DO NOT SVN-MERGE THIS FILE, EITHER Mon Nov 7 13:16:39 EST 2011 * * You must regenerate it. Use the ./genfixes script. * @@ -15,7 +15,7 @@ * certain ANSI-incompatible system header files which are fixed to work * correctly with ANSI C and placed in a directory that GNU C will search. * - * This file contains 220 fixup descriptions. + * This file contains 222 fixup descriptions. * * See README for more information. * @@ -559,6 +559,84 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Aix_Once_Init_1 fix + */ +tSCC zAix_Once_Init_1Name[] = + "aix_once_init_1"; + +/* + * File name selection pattern + */ +tSCC zAix_Once_Init_1List[] = + "pthread.h\0"; +/* + * Machine/OS name selection pattern + */ +tSCC* apzAix_Once_Init_1Machs[] = { + "*-*-aix*", + (const char*)NULL }; + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zAix_Once_Init_1Select0[] = + "#define[ \t]PTHREAD_ONCE_INIT \\\\\n\ +\\{ \\\\\n"; + +#define AIX_ONCE_INIT_1_TEST_CT 1 +static tTestDesc aAix_Once_Init_1Tests[] = { + { TT_EGREP, zAix_Once_Init_1Select0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Aix_Once_Init_1 + */ +static const char* apzAix_Once_Init_1Patch[] = { + "format", + "#define PTHREAD_ONCE_INIT \\\n\ +{{ \\\n", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Description of Aix_Once_Init_2 fix + */ +tSCC zAix_Once_Init_2Name[] = + "aix_once_init_2"; + +/* + * File name selection pattern + */ +tSCC zAix_Once_Init_2List[] = + "pthread.h\0"; +/* + * Machine/OS name selection pattern + */ +tSCC* apzAix_Once_Init_2Machs[] = { + "*-*-aix*", + (const char*)NULL }; + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zAix_Once_Init_2Select0[] = + "[ \t]0 \\\\\n\ +\\}\n"; + +#define AIX_ONCE_INIT_2_TEST_CT 1 +static tTestDesc aAix_Once_Init_2Tests[] = { + { TT_EGREP, zAix_Once_Init_2Select0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Aix_Once_Init_2 + */ +static const char* apzAix_Once_Init_2Patch[] = { + "format", + "\t0 \\\n\ +}}\n", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Aix_Pthread fix */ tSCC zAix_PthreadName[] = @@ -8956,9 +9034,9 @@ * * List of all fixes */ -#define REGEX_COUNT 262 +#define REGEX_COUNT 264 #define MACH_LIST_SIZE_LIMIT 181 -#define FIX_COUNT 220 +#define FIX_COUNT 222 /* * Enumerate the fixes @@ -8974,6 +9052,8 @@ AAB_SUN_MEMCPY_FIXIDX, AIX_COMPLEX_FIXIDX, AIX_NET_IF_ARP_FIXIDX, + AIX_ONCE_INIT_1_FIXIDX, + AIX_ONCE_INIT_2_FIXIDX, AIX_PTHREAD_FIXIDX, AIX_STDINT_1_FIXIDX, AIX_STDINT_2_FIXIDX, @@ -9237,6 +9317,16 @@ AIX_NET_IF_ARP_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aAix_Net_If_ArpTests, apzAix_Net_If_ArpPatch, 0 }, + { zAix_Once_Init_1Name, zAix_Once_Init_1List, + apzAix_Once_Init_1Machs, + AIX_ONCE_INIT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aAix_Once_Init_1Tests, apzAix_Once_Init_1Patch, 0 }, + + { zAix_Once_Init_2Name, zAix_Once_Init_2List, + apzAix_Once_Init_2Machs, + AIX_ONCE_INIT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aAix_Once_Init_2Tests, apzAix_Once_Init_2Patch, 0 }, + { zAix_PthreadName, zAix_PthreadList, apzAix_PthreadMachs, AIX_PTHREAD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, Index: inclhack.def =================================================================== --- inclhack.def (revision 181090) +++ inclhack.def (working copy) @@ -384,6 +384,35 @@ }; /* + * pthread.h on AIX defines PTHREAD_ONCE_INIT without enough braces. + */ +fix = { + hackname = aix_once_init_1; + mach = "*-*-aix*"; + files = "pthread.h"; + select = "#define[ \t]PTHREAD_ONCE_INIT \\\\\n" + "\\{ \\\\\n"; + c_fix = format; + c_fix_arg = "#define PTHREAD_ONCE_INIT \\\n" + "{{ \\\n"; + test_text = "#define PTHREAD_ONCE_INIT \\\\\n" + "{ \\\\\n"; +}; + +fix = { + hackname = aix_once_init_2; + mach = "*-*-aix*"; + files = "pthread.h"; + select = "[ \t]0 \\\\\n" + "\\}\n"; + c_fix = format; + c_fix_arg = " 0 \\\n" + "}}\n"; + test_text = " 0 \\\\\n" + "}\n"; +}; + +/* * pthread.h on AIX 4.3.3 tries to define a macro without whitspace * which violates a requirement of ISO C. */