From: Richard Guenther Date: Mon, 21 Mar 2005 16:46:09 +0000 (+0000) Subject: re PR target/20166 (Bootstrap failure due to lack of fixinclude of pthread problem) X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=14bfd7c70da2851692cb29ada892ffa3dff40634;p=platform%2Fupstream%2Fgcc.git re PR target/20166 (Bootstrap failure due to lack of fixinclude of pthread problem) 2005-03-21 Richard Guenther PR target/20166 * inclhack.def: Add fix for array of incomplete structures in function prototype in pthread.h. * fixincl.x: Regenerate. * tests/base/pthread.h: Adjust. From-SVN: r96812 --- diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog index cde72ca..ff456bd 100644 --- a/fixincludes/ChangeLog +++ b/fixincludes/ChangeLog @@ -1,3 +1,11 @@ +2005-03-21 Richard Guenther + + PR target/20166 + * inclhack.def: Add fix for array of incomplete structures + in function prototype in pthread.h. + * fixincl.x: Regenerate. + * tests/base/pthread.h: Adjust. + 2005-03-15 Joseph S. Myers * inclhack.def (hpux_htonl): New fix. diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x index 4c790e7..7d6979d 100644 --- a/fixincludes/fixincl.x +++ b/fixincludes/fixincl.x @@ -2,11 +2,11 @@ * * DO NOT EDIT THIS FILE (fixincl.x) * - * It has been AutoGen-ed Monday March 14, 2005 at 09:43:34 PM UTC + * It has been AutoGen-ed Monday March 21, 2005 at 05:22:01 PM CET * From the definitions inclhack.def * and the template file fixincl */ -/* DO NOT CVS-MERGE THIS FILE, EITHER Mon Mar 14 21:43:34 UTC 2005 +/* DO NOT CVS-MERGE THIS FILE, EITHER Mon Mar 21 17:22:01 CET 2005 * * 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 178 fixup descriptions. + * This file contains 179 fixup descriptions. * * See README for more information. * @@ -4183,6 +4183,42 @@ static const char* apzPthread_Page_SizePatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Pthread_Incomplete_Struct_Argument fix + */ +tSCC zPthread_Incomplete_Struct_ArgumentName[] = + "pthread_incomplete_struct_argument"; + +/* + * File name selection pattern + */ +tSCC zPthread_Incomplete_Struct_ArgumentList[] = + "|pthread.h|"; +/* + * Machine/OS name selection pattern + */ +#define apzPthread_Incomplete_Struct_ArgumentMachs (const char**)NULL + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zPthread_Incomplete_Struct_ArgumentSelect0[] = + "struct __jmp_buf_tag"; + +#define PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT 1 +static tTestDesc aPthread_Incomplete_Struct_ArgumentTests[] = { + { TT_EGREP, zPthread_Incomplete_Struct_ArgumentSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Pthread_Incomplete_Struct_Argument + */ +static const char* apzPthread_Incomplete_Struct_ArgumentPatch[] = { + "format", + "%1 *%2%3", + "^(extern int __sigsetjmp \\(struct __jmp_buf_tag) (__env)\\[1\\](.*)$", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Read_Ret_Type fix */ tSCC zRead_Ret_TypeName[] = @@ -7125,9 +7161,9 @@ static const char* apzX11_SprintfPatch[] = { * * List of all fixes */ -#define REGEX_COUNT 208 +#define REGEX_COUNT 209 #define MACH_LIST_SIZE_LIMIT 261 -#define FIX_COUNT 178 +#define FIX_COUNT 179 /* * Enumerate the fixes @@ -7236,6 +7272,7 @@ typedef enum { OSF_NAMESPACE_A_FIXIDX, OSF_NAMESPACE_C_FIXIDX, PTHREAD_PAGE_SIZE_FIXIDX, + PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_FIXIDX, READ_RET_TYPE_FIXIDX, RPC_XDR_LVALUE_CAST_A_FIXIDX, RPC_XDR_LVALUE_CAST_B_FIXIDX, @@ -7829,6 +7866,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = { PTHREAD_PAGE_SIZE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aPthread_Page_SizeTests, apzPthread_Page_SizePatch, 0 }, + { zPthread_Incomplete_Struct_ArgumentName, zPthread_Incomplete_Struct_ArgumentList, + apzPthread_Incomplete_Struct_ArgumentMachs, + PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aPthread_Incomplete_Struct_ArgumentTests, apzPthread_Incomplete_Struct_ArgumentPatch, 0 }, + { zRead_Ret_TypeName, zRead_Ret_TypeList, apzRead_Ret_TypeMachs, READ_RET_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def index 7bd48db..f55a9f0 100644 --- a/fixincludes/inclhack.def +++ b/fixincludes/inclhack.def @@ -2315,6 +2315,19 @@ fix = { test_text = "int __page_size;"; }; +/* + * On broken glibc-2.3.3 systems an array of incomplete structures is + * passed to __sigsetjmp. Fix that to take a pointer instead. + */ +fix = { + hackname = pthread_incomplete_struct_argument; + files = pthread.h; + select = "struct __jmp_buf_tag"; + c_fix = format; + c_fix_arg = "%1 *%2%3"; + c_fix_arg = "^(extern int __sigsetjmp \\(struct __jmp_buf_tag) (__env)\\[1\\](.*)$"; + test_text = "extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask);"; +}; /* * On DYNIX/ptx, sys/mc_param.h has an embedded asm for the cpuid instruction diff --git a/fixincludes/tests/base/pthread.h b/fixincludes/tests/base/pthread.h index 767c6e2..9998f66 100644 --- a/fixincludes/tests/base/pthread.h +++ b/fixincludes/tests/base/pthread.h @@ -61,6 +61,11 @@ extern int __page_size; #endif /* PTHREAD_PAGE_SIZE_CHECK */ +#if defined( PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_CHECK ) +extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask); +#endif /* PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_CHECK */ + + #if defined( SOLARIS_MUTEX_INIT_1_CHECK ) #ident "@(#)pthread.h 1.16 97/05/05 SMI" #if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)