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
4 changed files with 100 additions and 5 deletions
|
@ -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>
|
||||
|
||||
* inclhack.def (solaris_mutex_init_2): Update for Solaris9.
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
*
|
||||
* 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
|
||||
* 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.
|
||||
*
|
||||
|
@ -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 199 fixup descriptions.
|
||||
* This file contains 200 fixup descriptions.
|
||||
*
|
||||
* See README for more information.
|
||||
*
|
||||
|
@ -2180,6 +2180,42 @@ static const char* apzFreebsd_Gcc4_BreakagePatch[] = {
|
|||
"#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ >= 3",
|
||||
(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
|
||||
|
@ -8104,9 +8140,9 @@ static const char* apzX11_SprintfPatch[] = {
|
|||
*
|
||||
* List of all fixes
|
||||
*/
|
||||
#define REGEX_COUNT 242
|
||||
#define REGEX_COUNT 243
|
||||
#define MACH_LIST_SIZE_LIMIT 261
|
||||
#define FIX_COUNT 199
|
||||
#define FIX_COUNT 200
|
||||
|
||||
/*
|
||||
* Enumerate the fixes
|
||||
|
@ -8162,6 +8198,7 @@ typedef enum {
|
|||
EXCEPTION_STRUCTURE_FIXIDX,
|
||||
FREEBSD_GCC3_BREAKAGE_FIXIDX,
|
||||
FREEBSD_GCC4_BREAKAGE_FIXIDX,
|
||||
GLIBC_MUTEX_INIT_FIXIDX,
|
||||
GNU_TYPES_FIXIDX,
|
||||
HP_INLINE_FIXIDX,
|
||||
HP_SYSFILE_FIXIDX,
|
||||
|
@ -8564,6 +8601,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
|
|||
FREEBSD_GCC4_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||
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,
|
||||
apzGnu_TypesMachs,
|
||||
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
|
||||
* ptrdiff_t, size_t, and wchar_t.
|
||||
|
|
|
@ -56,6 +56,20 @@
|
|||
#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 )
|
||||
extern int __page_size;
|
||||
#endif /* PTHREAD_PAGE_SIZE_CHECK */
|
||||
|
|
Loading…
Add table
Reference in a new issue