mirror of git://gcc.gnu.org/git/gcc.git
inclhack.def (pthread_mutex_init): New fix.
* inclhack.def (pthread_mutex_init): New fix.
* tests/base/pthread.h: Update.
* fixincl.x: Regenerate.
From-SVN: r117343
This commit is contained in:
parent
da1e2517fa
commit
f6f7aabcd6
|
|
@ -1,3 +1,10 @@
|
||||||
|
2006-10-01 Uros Bizjak <uros@kss-loka.si>
|
||||||
|
|
||||||
|
* inclhack.def (glibc_mutex_init): New fix.
|
||||||
|
* tests/base/pthread.h: Update.
|
||||||
|
|
||||||
|
* fixincl.x: Regenerate.
|
||||||
|
|
||||||
2006-09-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
2006-09-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||||
|
|
||||||
* inclhack.def (solaris_mutex_init_2): Update for Solaris9.
|
* inclhack.def (solaris_mutex_init_2): Update for Solaris9.
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
*
|
*
|
||||||
* DO NOT EDIT THIS FILE (fixincl.x)
|
* DO NOT EDIT THIS FILE (fixincl.x)
|
||||||
*
|
*
|
||||||
* It has been AutoGen-ed Thursday September 28, 2006 at 11:06:33 PM EDT
|
* It has been AutoGen-ed Saturday September 30, 2006 at 01:08:07 PM CEST
|
||||||
* From the definitions inclhack.def
|
* From the definitions inclhack.def
|
||||||
* and the template file fixincl
|
* and the template file fixincl
|
||||||
*/
|
*/
|
||||||
/* DO NOT CVS-MERGE THIS FILE, EITHER Thu Sep 28 23:06:33 EDT 2006
|
/* DO NOT CVS-MERGE THIS FILE, EITHER Sat Sep 30 13:08:07 CEST 2006
|
||||||
*
|
*
|
||||||
* You must regenerate it. Use the ./genfixes script.
|
* You must regenerate it. Use the ./genfixes script.
|
||||||
*
|
*
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* certain ANSI-incompatible system header files which are fixed to work
|
* 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.
|
* correctly with ANSI C and placed in a directory that GNU C will search.
|
||||||
*
|
*
|
||||||
* This file contains 199 fixup descriptions.
|
* This file contains 200 fixup descriptions.
|
||||||
*
|
*
|
||||||
* See README for more information.
|
* See README for more information.
|
||||||
*
|
*
|
||||||
|
|
@ -2180,6 +2180,42 @@ static const char* apzFreebsd_Gcc4_BreakagePatch[] = {
|
||||||
"#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ >= 3",
|
"#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ >= 3",
|
||||||
(char*)NULL };
|
(char*)NULL };
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
*
|
||||||
|
* Description of Glibc_Mutex_Init fix
|
||||||
|
*/
|
||||||
|
tSCC zGlibc_Mutex_InitName[] =
|
||||||
|
"glibc_mutex_init";
|
||||||
|
|
||||||
|
/*
|
||||||
|
* File name selection pattern
|
||||||
|
*/
|
||||||
|
tSCC zGlibc_Mutex_InitList[] =
|
||||||
|
"|pthread.h|";
|
||||||
|
/*
|
||||||
|
* Machine/OS name selection pattern
|
||||||
|
*/
|
||||||
|
#define apzGlibc_Mutex_InitMachs (const char**)NULL
|
||||||
|
|
||||||
|
/*
|
||||||
|
* content selection pattern - do fix if pattern found
|
||||||
|
*/
|
||||||
|
tSCC zGlibc_Mutex_InitSelect0[] =
|
||||||
|
"\\{ *\\{ *0, *\\} *\\}";
|
||||||
|
|
||||||
|
#define GLIBC_MUTEX_INIT_TEST_CT 1
|
||||||
|
static tTestDesc aGlibc_Mutex_InitTests[] = {
|
||||||
|
{ TT_EGREP, zGlibc_Mutex_InitSelect0, (regex_t*)NULL }, };
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fix Command Arguments for Glibc_Mutex_Init
|
||||||
|
*/
|
||||||
|
static const char* apzGlibc_Mutex_InitPatch[] = { "sed",
|
||||||
|
"-e", "/define[ \t]\\+PTHREAD_MUTEX_INITIALIZER[ \t]*\\\\/,+1s/{ { 0, } }/{ { 0, 0, 0, 0, 0, 0 } }/",
|
||||||
|
"-e", "/define[ \t]\\+PTHREAD_RWLOCK_INITIALIZER[ \t]*\\\\/N;s/^[ \t]*#[ \t]*\\(define[ \t]\\+PTHREAD_RWLOCK_INITIALIZER[ \t]*\\\\\\)\\n[ \t]*{ { 0, } }/# if __WORDSIZE == 64\\n# \\1\\n { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }\\n# else\\n# \\1\\n { { 0, 0, 0, 0, 0, 0, 0, 0 } }\\n# endif/",
|
||||||
|
"-e", "/define[ \t]\\+PTHREAD_COND_INITIALIZER/s/{ { 0, } }/{ { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }/",
|
||||||
|
(char*)NULL };
|
||||||
|
|
||||||
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
*
|
*
|
||||||
* Description of Gnu_Types fix
|
* Description of Gnu_Types fix
|
||||||
|
|
@ -8104,9 +8140,9 @@ static const char* apzX11_SprintfPatch[] = {
|
||||||
*
|
*
|
||||||
* List of all fixes
|
* List of all fixes
|
||||||
*/
|
*/
|
||||||
#define REGEX_COUNT 242
|
#define REGEX_COUNT 243
|
||||||
#define MACH_LIST_SIZE_LIMIT 261
|
#define MACH_LIST_SIZE_LIMIT 261
|
||||||
#define FIX_COUNT 199
|
#define FIX_COUNT 200
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Enumerate the fixes
|
* Enumerate the fixes
|
||||||
|
|
@ -8162,6 +8198,7 @@ typedef enum {
|
||||||
EXCEPTION_STRUCTURE_FIXIDX,
|
EXCEPTION_STRUCTURE_FIXIDX,
|
||||||
FREEBSD_GCC3_BREAKAGE_FIXIDX,
|
FREEBSD_GCC3_BREAKAGE_FIXIDX,
|
||||||
FREEBSD_GCC4_BREAKAGE_FIXIDX,
|
FREEBSD_GCC4_BREAKAGE_FIXIDX,
|
||||||
|
GLIBC_MUTEX_INIT_FIXIDX,
|
||||||
GNU_TYPES_FIXIDX,
|
GNU_TYPES_FIXIDX,
|
||||||
HP_INLINE_FIXIDX,
|
HP_INLINE_FIXIDX,
|
||||||
HP_SYSFILE_FIXIDX,
|
HP_SYSFILE_FIXIDX,
|
||||||
|
|
@ -8564,6 +8601,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
|
||||||
FREEBSD_GCC4_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
FREEBSD_GCC4_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||||
aFreebsd_Gcc4_BreakageTests, apzFreebsd_Gcc4_BreakagePatch, 0 },
|
aFreebsd_Gcc4_BreakageTests, apzFreebsd_Gcc4_BreakagePatch, 0 },
|
||||||
|
|
||||||
|
{ zGlibc_Mutex_InitName, zGlibc_Mutex_InitList,
|
||||||
|
apzGlibc_Mutex_InitMachs,
|
||||||
|
GLIBC_MUTEX_INIT_TEST_CT, FD_MACH_ONLY,
|
||||||
|
aGlibc_Mutex_InitTests, apzGlibc_Mutex_InitPatch, 0 },
|
||||||
|
|
||||||
{ zGnu_TypesName, zGnu_TypesList,
|
{ zGnu_TypesName, zGnu_TypesList,
|
||||||
apzGnu_TypesMachs,
|
apzGnu_TypesMachs,
|
||||||
GNU_TYPES_TEST_CT, FD_MACH_IFNOT | FD_SUBROUTINE,
|
GNU_TYPES_TEST_CT, FD_MACH_IFNOT | FD_SUBROUTINE,
|
||||||
|
|
|
||||||
|
|
@ -1288,6 +1288,38 @@ fix = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* glibc-2.3.5 defines pthread mutex initializers incorrectly,
|
||||||
|
* so we replace them with versions that correspond to the
|
||||||
|
* definition.
|
||||||
|
*/
|
||||||
|
fix = {
|
||||||
|
hackname = glibc_mutex_init;
|
||||||
|
files = pthread.h;
|
||||||
|
select = '\{ *\{ *0, *\} *\}';
|
||||||
|
sed = "/define[ \t]\\+PTHREAD_MUTEX_INITIALIZER[ \t]*\\\\/,+1"
|
||||||
|
"s/{ { 0, } }/{ { 0, 0, 0, 0, 0, 0 } }/";
|
||||||
|
sed = "/define[ \t]\\+PTHREAD_RWLOCK_INITIALIZER[ \t]*\\\\/"
|
||||||
|
"N;s/^[ \t]*#[ \t]*"
|
||||||
|
"\\(define[ \t]\\+PTHREAD_RWLOCK_INITIALIZER[ \t]*\\\\\\)\\n"
|
||||||
|
"[ \t]*{ { 0, } }/# if __WORDSIZE == 64\\n"
|
||||||
|
"# \\1\\n"
|
||||||
|
" { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }\\n"
|
||||||
|
"# else\\n"
|
||||||
|
"# \\1\\n"
|
||||||
|
" { { 0, 0, 0, 0, 0, 0, 0, 0 } }\\n"
|
||||||
|
"# endif/";
|
||||||
|
sed = "/define[ \t]\\+PTHREAD_COND_INITIALIZER/"
|
||||||
|
"s/{ { 0, } }/{ { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }/";
|
||||||
|
|
||||||
|
test_text =
|
||||||
|
"#define PTHREAD_MUTEX_INITIALIZER \\\\\n"
|
||||||
|
" { { 0, } }\n"
|
||||||
|
"# define PTHREAD_RWLOCK_INITIALIZER \\\\\n"
|
||||||
|
" { { 0, } }\n"
|
||||||
|
"#define PTHREAD_COND_INITIALIZER { { 0, } }";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fix these files to use the types we think they should for
|
* Fix these files to use the types we think they should for
|
||||||
* ptrdiff_t, size_t, and wchar_t.
|
* ptrdiff_t, size_t, and wchar_t.
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,20 @@
|
||||||
#endif /* ALPHA_PTHREAD_INIT_CHECK */
|
#endif /* ALPHA_PTHREAD_INIT_CHECK */
|
||||||
|
|
||||||
|
|
||||||
|
#if defined( GLIBC_MUTEX_INIT_CHECK )
|
||||||
|
#define PTHREAD_MUTEX_INITIALIZER \
|
||||||
|
{ { 0, 0, 0, 0, 0, 0 } }
|
||||||
|
# if __WORDSIZE == 64
|
||||||
|
# define PTHREAD_RWLOCK_INITIALIZER \
|
||||||
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
|
||||||
|
# else
|
||||||
|
# define PTHREAD_RWLOCK_INITIALIZER \
|
||||||
|
{ { 0, 0, 0, 0, 0, 0, 0, 0 } }
|
||||||
|
# endif
|
||||||
|
#define PTHREAD_COND_INITIALIZER { { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }
|
||||||
|
#endif /* GLIBC_MUTEX_INIT_CHECK */
|
||||||
|
|
||||||
|
|
||||||
#if defined( PTHREAD_PAGE_SIZE_CHECK )
|
#if defined( PTHREAD_PAGE_SIZE_CHECK )
|
||||||
extern int __page_size;
|
extern int __page_size;
|
||||||
#endif /* PTHREAD_PAGE_SIZE_CHECK */
|
#endif /* PTHREAD_PAGE_SIZE_CHECK */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue