inclhack.def (solaris_math_10): New.

* inclhack.def (solaris_math_10): New.
	* tests/base/iso/math_c99.h: Update.

	* fixincl.x: Regenerate.

From-SVN: r132468
This commit is contained in:
Kaveh R. Ghazi 2008-02-20 04:20:59 +00:00 committed by Kaveh Ghazi
parent 2bf41bf05d
commit c951ae4036
4 changed files with 101 additions and 13 deletions

View File

@ -1,3 +1,10 @@
2008-02-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* inclhack.def (solaris_math_10): New.
* tests/base/iso/math_c99.h: Update.
* fixincl.x: Regenerate.
2008-02-04 Ismail Dönmez <ismail@pardus.org.tr>
* inclhack.def: (bsd_stdio_attrs_conflict, freebsd_gcc3_breakage,

View File

@ -2,11 +2,11 @@
*
* DO NOT EDIT THIS FILE (fixincl.x)
*
* It has been AutoGen-ed Monday February 4, 2008 at 09:22:58 PM GMTST
* It has been AutoGen-ed Wednesday February 20, 2008 at 05:10:00 AM CET
* From the definitions inclhack.def
* and the template file fixincl
*/
/* DO NOT SVN-MERGE THIS FILE, EITHER Mon Feb 4 21:22:58 GMTST 2008
/* DO NOT SVN-MERGE THIS FILE, EITHER Wed Feb 20 05:10:00 CET 2008
*
* You must regenerate it. Use the ./genfixes script.
*
@ -15,25 +15,30 @@
* 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 211 fixup descriptions.
* This file contains 212 fixup descriptions.
*
* See README for more information.
*
* inclhack copyright (c) 1998, 1999, 2000, 2001
* The Free Software Foundation, Inc.
*
* inclhack is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* inclhack is free software.
*
* inclhack is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* You may redistribute it and/or modify it under the terms of the
* GNU General Public License, as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* inclhack is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
* You should have received a copy of the GNU General Public License
* along with inclhack. If not, write to:
* The Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor
* Boston, MA 02110-1301, USA.
*/
/* * * * * * * * * * * * * * * * * * * * * * * * * *
@ -5884,6 +5889,45 @@ static const char* apzSolaris_Math_9Patch[] = {
"^#define[ \t]+([a-z]+)\\(x, y\\)([ \t]+)\\(\\(x\\) __builtin_[a-z]+\\(y\\)\\)",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Description of Solaris_Math_10 fix
*/
tSCC zSolaris_Math_10Name[] =
"solaris_math_10";
/*
* File name selection pattern
*/
tSCC zSolaris_Math_10List[] =
"iso/math_c99.h\0";
/*
* Machine/OS name selection pattern
*/
#define apzSolaris_Math_10Machs (const char**)NULL
/*
* content selection pattern - do fix if pattern found
*/
tSCC zSolaris_Math_10Select0[] =
"@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
#define SOLARIS_MATH_10_TEST_CT 1
static tTestDesc aSolaris_Math_10Tests[] = {
{ TT_EGREP, zSolaris_Math_10Select0, (regex_t*)NULL }, };
/*
* Fix Command Arguments for Solaris_Math_10
*/
static const char* apzSolaris_Math_10Patch[] = {
"format",
"#define\tisinf(x) __builtin_isinf(x)",
"^#define[ \t]+isinf\\(x\\)[ \t]+__extension__\\([ \t]*\\\\\n\
[ \t]*\\{[ \t]*__typeof\\(x\\)[ \t]*__x_i[ \t]*=[ \t]*\\(x\\);[ \t]*\\\\\n\
[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*INFINITY[ \t]*\\|\\|[ \t]*\\\\\n\
[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*\\(-INFINITY\\);[ \t]*\\}\\)",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Description of Solaris_Mutex_Init_1 fix
@ -8567,9 +8611,9 @@ static const char* apzX11_SprintfPatch[] = {
*
* List of all fixes
*/
#define REGEX_COUNT 254
#define REGEX_COUNT 255
#define MACH_LIST_SIZE_LIMIT 261
#define FIX_COUNT 211
#define FIX_COUNT 212
/*
* Enumerate the fixes
@ -8718,6 +8762,7 @@ typedef enum {
SOLARIS_MATH_4_FIXIDX,
SOLARIS_MATH_8_FIXIDX,
SOLARIS_MATH_9_FIXIDX,
SOLARIS_MATH_10_FIXIDX,
SOLARIS_MUTEX_INIT_1_FIXIDX,
SOLARIS_MUTEX_INIT_2_FIXIDX,
SOLARIS_RWLOCK_INIT_1_FIXIDX,
@ -9504,6 +9549,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
SOLARIS_MATH_9_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aSolaris_Math_9Tests, apzSolaris_Math_9Patch, 0 },
{ zSolaris_Math_10Name, zSolaris_Math_10List,
apzSolaris_Math_10Machs,
SOLARIS_MATH_10_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aSolaris_Math_10Tests, apzSolaris_Math_10Patch, 0 },
{ zSolaris_Mutex_Init_1Name, zSolaris_Mutex_Init_1List,
apzSolaris_Mutex_Init_1Machs,
SOLARIS_MUTEX_INIT_1_TEST_CT, FD_MACH_ONLY,

View File

@ -3222,6 +3222,30 @@ fix = {
"#define isunordered(x, y) ((x) __builtin_isunordered(y))";
};
/*
* On Solaris 11, if you do isinf(NaN) you'll get a floating point
* exception. Provide an alternative using GCC's builtin.
*/
fix = {
hackname = solaris_math_10;
select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
files = iso/math_c99.h;
c_fix = format;
c_fix_arg = "#define\tisinf(x) __builtin_isinf(x)";
c_fix_arg = "^#define[ \t]+isinf\\(x\\)[ \t]+__extension__\\([ \t]*\\\\\n"
"[ \t]*\\{[ \t]*__typeof\\(x\\)[ \t]*__x_i[ \t]*=[ \t]*\\(x\\);[ \t]*\\\\\n"
"[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*INFINITY[ \t]*\\|\\|[ \t]*\\\\\n"
"[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*\\(-INFINITY\\);[ \t]*\\}\\)";
test_text =
'#pragma ident "@(#)math_c99.h 1.12 07/01/21 SMI"'"\n"
"#undef isinf\n"
"#define isinf(x) __extension__( \\\\\n"
" { __typeof(x) __x_i = (x); \\\\\n"
" __x_i == (__typeof(__x_i)) INFINITY || \\\\\n"
" __x_i == (__typeof(__x_i)) (-INFINITY); })";
};
/*
* Sun Solaris 2.5.1, 2.6 defines PTHREAD_{MUTEX|COND}_INITIALIZER
* incorrectly, so we replace them with versions that correspond to

View File

@ -77,3 +77,10 @@
#undef isunordered
#define isunordered(x, y) __builtin_isunordered(x, y)
#endif /* SOLARIS_MATH_9_CHECK */
#if defined( SOLARIS_MATH_10_CHECK )
#pragma ident "@(#)math_c99.h 1.12 07/01/21 SMI"
#undef isinf
#define isinf(x) __builtin_isinf(x)
#endif /* SOLARIS_MATH_10_CHECK */