inclhack.def (AAB_aix_fcntl): New fix.

* inclhack.def (AAB_aix_fcntl): New fix.
        * fixincl.x: Regenerate.

From-SVN: r191859
This commit is contained in:
David Edelsohn 2012-09-29 21:02:42 +00:00 committed by David Edelsohn
parent b64ca2cebd
commit 31d206662a
3 changed files with 109 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2012-09-29 David Edelsohn <dje.gcc@gmail.com>
* inclhack.def (AAB_aix_fcntl): New fix.
* fixincl.x: Regenerate.
2012-06-19 David Edelsohn <dje.gcc@gmail.com> 2012-06-19 David Edelsohn <dje.gcc@gmail.com>
* inclhack.def (aix_mutex_initializer_1): New fix. * inclhack.def (aix_mutex_initializer_1): New fix.

View File

@ -2,11 +2,11 @@
* *
* DO NOT EDIT THIS FILE (fixincl.x) * DO NOT EDIT THIS FILE (fixincl.x)
* *
* It has been AutoGen-ed June 19, 2012 at 09:23:54 AM by AutoGen 5.10 * It has been AutoGen-ed Saturday September 29, 2012 at 01:58:03 PM PDT
* From the definitions inclhack.def * From the definitions inclhack.def
* and the template file fixincl * and the template file fixincl
*/ */
/* DO NOT SVN-MERGE THIS FILE, EITHER Tue Jun 19 09:23:54 EDT 2012 /* DO NOT SVN-MERGE THIS FILE, EITHER Sat Sep 29 13:58:03 PDT 2012
* *
* 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 215 fixup descriptions. * This file contains 216 fixup descriptions.
* *
* See README for more information. * See README for more information.
* *
@ -99,6 +99,60 @@ extern off64_t ftello(FILE *) __asm__(\"ftello64\");\n\
#endif\n", #endif\n",
(char*)NULL }; (char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Description of Aab_Aix_Fcntl fix
*/
tSCC zAab_Aix_FcntlName[] =
"AAB_aix_fcntl";
/*
* File name selection pattern
*/
tSCC zAab_Aix_FcntlList[] =
"fcntl.h\0";
/*
* Machine/OS name selection pattern
*/
tSCC* apzAab_Aix_FcntlMachs[] = {
"*-*-aix*",
(const char*)NULL };
/*
* content selection pattern - do fix if pattern found
*/
tSCC zAab_Aix_FcntlSelect0[] =
"define open[ \t]open64";
#define AAB_AIX_FCNTL_TEST_CT 1
static tTestDesc aAab_Aix_FcntlTests[] = {
{ TT_EGREP, zAab_Aix_FcntlSelect0, (regex_t*)NULL }, };
/*
* Fix Command Arguments for Aab_Aix_Fcntl
*/
static const char* apzAab_Aix_FcntlPatch[] = {
"wrap",
"",
"\n\
#if defined __GNUG__ && defined _LARGE_FILES && defined __cplusplus\n\
#define __need__aix_fcntl_h_fix\n\
#ifdef __need__aix_fcntl_h_fix\n\
#undef open\n\
#undef creat\n\
#undef openat\n\
/* Alias the symbols using asm */\n\
extern \"C\" {\n\
extern int open(const char *, int, ...) __asm__(\"open64\");\n\
extern int creat(const char *, mode_t) __asm__(\"creat64\");\n\
#if (_XOPEN_SOURCE >= 700)\n\
extern int openat(int, const char *, int, ...) __asm__(\"open64at\");\n\
#endif\n\
}\n\
#endif\n\
#endif\n",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* Description of Aab_Darwin7_9_Long_Double_Funcs fix * Description of Aab_Darwin7_9_Long_Double_Funcs fix
@ -8746,15 +8800,16 @@ static const char* apzX11_SprintfPatch[] = {
* *
* List of all fixes * List of all fixes
*/ */
#define REGEX_COUNT 258 #define REGEX_COUNT 259
#define MACH_LIST_SIZE_LIMIT 181 #define MACH_LIST_SIZE_LIMIT 181
#define FIX_COUNT 215 #define FIX_COUNT 216
/* /*
* Enumerate the fixes * Enumerate the fixes
*/ */
typedef enum { typedef enum {
AAB_AIX_STDIO_FIXIDX, AAB_AIX_STDIO_FIXIDX,
AAB_AIX_FCNTL_FIXIDX,
AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_FIXIDX, AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_FIXIDX,
AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_2_FIXIDX, AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_2_FIXIDX,
AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX, AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX,
@ -8977,6 +9032,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
AAB_AIX_STDIO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, AAB_AIX_STDIO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aAab_Aix_StdioTests, apzAab_Aix_StdioPatch, 0 }, aAab_Aix_StdioTests, apzAab_Aix_StdioPatch, 0 },
{ zAab_Aix_FcntlName, zAab_Aix_FcntlList,
apzAab_Aix_FcntlMachs,
AAB_AIX_FCNTL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aAab_Aix_FcntlTests, apzAab_Aix_FcntlPatch, 0 },
{ zAab_Darwin7_9_Long_Double_FuncsName, zAab_Darwin7_9_Long_Double_FuncsList, { zAab_Darwin7_9_Long_Double_FuncsName, zAab_Darwin7_9_Long_Double_FuncsList,
apzAab_Darwin7_9_Long_Double_FuncsMachs, apzAab_Darwin7_9_Long_Double_FuncsMachs,
AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT, AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,

View File

@ -65,6 +65,45 @@ fix = {
}; };
/* On AIX when _LARGE_FILES is defined fcntl.h defines open to
* open64 and creat to creat64. This fixes fcntl.h to
* undef those defines and use __asm__ to alias the symbols if
* building with g++ and -D_LARGE_FILES
*/
fix = {
hackname = AAB_aix_fcntl;
files = fcntl.h;
select = "define open[ \t]open64";
mach = "*-*-aix*";
test-text = ''; /* no way to test */
c_fix = wrap;
c_fix_arg = "";
c_fix_arg = <<- _EOArg_
#if defined __GNUG__ && defined _LARGE_FILES && defined __cplusplus
#define __need__aix_fcntl_h_fix
#ifdef __need__aix_fcntl_h_fix
#undef open
#undef creat
#undef openat
/* Alias the symbols using asm */
extern "C" {
extern int open(const char *, int, ...) __asm__("open64");
extern int creat(const char *, mode_t) __asm__("creat64");
#if (_XOPEN_SOURCE >= 700)
extern int openat(int, const char *, int, ...) __asm__("open64at");
#endif
}
#endif
#endif
_EOArg_;
};
/* /*
* On Mac OS 10.3.9, the 'long double' functions are available in * On Mac OS 10.3.9, the 'long double' functions are available in
* libSystem, but are not prototyped in math.h. * libSystem, but are not prototyped in math.h.