OSDN Git Service

the fixinc directory is now "fixincludes"
authorkorbb <korbb@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Mar 2010 03:49:08 +0000 (03:49 +0000)
committerkorbb <korbb@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Mar 2010 03:49:08 +0000 (03:49 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157398 138bc75d-0d04-0410-961f-82ee72b054a4

fixincludes/README
fixincludes/fixincl.x
fixincludes/inclhack.def

index 5536a34..bd39a0c 100644 (file)
@@ -45,7 +45,7 @@ To make your fix, you will need to do several things:
     "test_text" entry(ies) that validate your fix.  This will
     help ensure that future fixes won't negate your work.
 
-5.  Go into the fixinc build directory and type, "make check".
+5.  Go into the fixincludes build directory and type, "make check".
     You are guaranteed to have issues printed out as a result.
     Look at the diffs produced.  Make sure you have not clobbered
     the proper functioning of a different fix.  Make sure your
@@ -319,7 +319,7 @@ EXAMPLES OF FIXES:
 
     I would really recommend, however:
 
-        cd ${top_builddir}/gcc/fixinc
+        cd ${top_builddir}/fixincludes
         make check
 
     To do this, you *must* have autogen installed on your system.
index fa05d88..572637e 100644 (file)
@@ -2,11 +2,19 @@
  * 
  * DO NOT EDIT THIS FILE   (fixincl.x)
  * 
+<<<<<<< .mine
+ * It has been AutoGen-ed  September  5, 2009 at 01:31:09 PM by AutoGen 5.9.9
+=======
  * It has been AutoGen-ed  Friday January 29, 2010 at 04:49:43 PM MET
+>>>>>>> .r157397
  * From the definitions    inclhack.def
  * and the template file   fixincl
  */
+<<<<<<< .mine
+/* DO NOT SVN-MERGE THIS FILE, EITHER Sat Sep  5 13:31:09 PDT 2009
+=======
 /* DO NOT SVN-MERGE THIS FILE, EITHER Fri Jan 29 16:49:43 MET 2010
+>>>>>>> .r157397
  *
  * You must regenerate it.  Use the ./genfixes script.
  *
@@ -6114,6 +6122,63 @@ static const char* apzRs6000_ParamPatch[] = {
 
 /* * * * * * * * * * * * * * * * * * * * * * * * * *
  *
+<<<<<<< .mine
+ *  Description of Sco_Math fix
+ */
+tSCC zSco_MathName[] =
+     "sco_math";
+
+/*
+ *  File name selection pattern
+ */
+tSCC zSco_MathList[] =
+  "math.h\0*/math.h\0";
+/*
+ *  Machine/OS name selection pattern
+ */
+#define apzSco_MathMachs (const char**)NULL
+
+/*
+ *  content selection pattern - do fix if pattern found
+ */
+tSCC zSco_MathSelect0[] =
+       "inline double abs";
+
+/*
+ *  content bypass pattern - skip fix if pattern found
+ */
+tSCC zSco_MathBypass0[] =
+       "__GNUG__";
+
+#define    SCO_MATH_TEST_CT  2
+static tTestDesc aSco_MathTests[] = {
+  { TT_NEGREP,   zSco_MathBypass0, (regex_t*)NULL },
+  { TT_EGREP,    zSco_MathSelect0, (regex_t*)NULL }, };
+
+/*
+ *  Fix Command Arguments for Sco_Math
+ */
+static const char* apzSco_MathPatch[] = { sed_cmd_z,
+    "-e", "/#define.*__fp_class(a) \\\\/i\\\n\
+#ifndef __GNUC__\n",
+    "-e", "/.*__builtin_generic/a\\\n\
+#else\\\n\
+#define __fp_class(a) \\\\\\\n\
+\\  __builtin_choose_expr(__builtin_types_compatible_p(typeof(a),long double),\\\\\\\n\
+\\   __fpclassifyl(a), \\\\\\\n\
+\\    __builtin_choose_expr(__builtin_types_compatible_p(typeof(a), float), \\\\\\\n\
+\\      __fpclassifyf(a),__fpclassify(a)))\\\n\
+#endif\n",
+    "-e", "/extern \"C++\"/N;/inline double abs/i\\\n\
+#ifndef __GNUC__\n",
+    "-e", "/inline long double trunc/N;/inline long double trunc.*}.*extern \"C++\"/a\\\n\
+#endif /* ! __GNUC__ */\n",
+    (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+=======
+>>>>>>> .r157397
  *  Description of Solaris_Complex fix
  */
 tSCC zSolaris_ComplexName[] =
index 8240b7d..79295e6 100644 (file)
@@ -3248,6 +3248,45 @@ fix = {
 
 
 /*
+<<<<<<< .mine
+ *  On OpenServer and on UnixWare 7, <math.h> uses the native compiler
+ *  __builtin_generic. We fix that usage to use the GCC equivalent.
+ * It also has a plethora of inline functions that conflict with libstdc++.
+ */
+fix = {
+    hackname = sco_math;
+    files    = math.h, '*/math.h';
+    select   = "inline double abs";
+    bypass   = "__GNUG__";
+    sed      = "/#define.*__fp_class(a) \\\\/i\\\n"
+              "#ifndef __GNUC__\n";
+    sed      =
+"/.*__builtin_generic/a\\\n"
+"#else\\\n"
+"#define __fp_class(a) \\\\\\\n"
+"\\  __builtin_choose_expr(__builtin_types_compatible_p(typeof(a),long double),\\\\\\\n"
+"\\   __fpclassifyl(a), \\\\\\\n"
+"\\    __builtin_choose_expr(__builtin_types_compatible_p(typeof(a), float), \\\\\\\n"
+"\\      __fpclassifyf(a),__fpclassify(a)))\\\n"
+"#endif\n";
+
+    sed      = "/extern \"C++\"/N;"
+              "/inline double abs/i\\\n"
+               "#ifndef __GNUC__\n";
+    sed      = "/inline long double trunc/N;"
+              "/inline long double trunc.*}.*extern \"C++\"/a\\\n"
+              "#endif /* ! __GNUC__ */\n";
+
+    test_text =
+    "#define __fp_class(a) \\\\\n"
+    " __builtin_generic(a,\"ld:__fplcassifyl;f:__fpclassifyf;:__fpclassify\")\n";
+
+};
+
+
+/*
+=======
+>>>>>>> .r157397
  * Solaris 10+ complex.h defines _Complex_I and _Imaginary_I in terms of
  * themselves, which are Sun Studio compiler intrinsics.  Remove _Imaginary_I
  * and imaginary definitions which are not supported by GCC.