summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel/gcc/files/gcc-13-darwin14-math_h.patch')
-rw-r--r--sys-devel/gcc/files/gcc-13-darwin14-math_h.patch96
1 files changed, 96 insertions, 0 deletions
diff --git a/sys-devel/gcc/files/gcc-13-darwin14-math_h.patch b/sys-devel/gcc/files/gcc-13-darwin14-math_h.patch
new file mode 100644
index 0000000000..124dccf518
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-13-darwin14-math_h.patch
@@ -0,0 +1,96 @@
+From 93f803d53b5ccaabded9d7b4512b54da81c1c616 Mon Sep 17 00:00:00 2001
+From: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+Date: Thu, 17 Aug 2023 10:16:57 +0200
+Subject: [PATCH] fixincludes: Update darwin_flt_eval_method for macOS 14
+
+On macOS 14, a guard in <math.h> changed:
+
+@@ -43 +44 @@
+-#if __FLT_EVAL_METHOD__ == 0
++#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == -1
+@@ -49 +50 @@
+-#elif __FLT_EVAL_METHOD__ == 2 || __FLT_EVAL_METHOD__ == -1
++#elif __FLT_EVAL_METHOD__ == 2
+
+Therefore the darwin_flt_eval_method fixincludes fix doesn't match any
+longer, leading to a large number of testsuite failures like
+
+/private/var/gcc/regression/master/14-gcc/build/gcc/include-fixed/math.h:69:5:
+error: #error "Unsupported value of __FLT_EVAL_METHOD__."
+
+where __FLT_EVAL_METHOD__ = 16.
+
+This patch adjusts the fix to allow for both forms.
+
+Tested with make check in fixincludes on x86_64-apple-darwin23.0.0 and
+verifying that <math.h> has indeed been fixed as expected.
+
+2023-08-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ fixincludes:
+ * inclhack.def (darwin_flt_eval_method): Handle macOS 14 guard
+ variant.
+ * fixincl.x: Regenerate.
+ * tests/base/math.h [DARWIN_FLT_EVAL_METHOD_CHECK]: Update test.
+---
+ fixincludes/fixincl.x | 8 ++++----
+ fixincludes/inclhack.def | 7 ++++---
+ fixincludes/tests/base/math.h | 1 +
+ 3 files changed, 9 insertions(+), 7 deletions(-)
+
+diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
+index 416d2c2e3a4..e52f11d8460 100644
+--- a/fixincludes/fixincl.x
++++ b/fixincludes/fixincl.x
+@@ -3674,7 +3674,7 @@ tSCC* apzDarwin_Flt_Eval_MethodMachs[] = {
+ * content selection pattern - do fix if pattern found
+ */
+ tSCC zDarwin_Flt_Eval_MethodSelect0[] =
+- "^#if __FLT_EVAL_METHOD__ == 0$";
++ "^#if __FLT_EVAL_METHOD__ == 0( \\|\\| __FLT_EVAL_METHOD__ == -1)?$";
+
+ #define DARWIN_FLT_EVAL_METHOD_TEST_CT 1
+ static tTestDesc aDarwin_Flt_Eval_MethodTests[] = {
+@@ -3685,7 +3685,7 @@ static tTestDesc aDarwin_Flt_Eval_MethodTests[] = {
+ */
+ static const char* apzDarwin_Flt_Eval_MethodPatch[] = {
+ "format",
+- "#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 16",
++ "%0 || __FLT_EVAL_METHOD__ == 16",
+ (char*)NULL };
+
+ /* * * * * * * * * * * * * * * * * * * * * * * * * *
+diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
+index 45e0cbc0c10..19e0ea2df66 100644
+--- a/fixincludes/inclhack.def
++++ b/fixincludes/inclhack.def
+@@ -1819,10 +1819,11 @@ fix = {
+ hackname = darwin_flt_eval_method;
+ mach = "*-*-darwin*";
+ files = math.h;
+- select = "^#if __FLT_EVAL_METHOD__ == 0$";
++ select = "^#if __FLT_EVAL_METHOD__ == 0( \\|\\| __FLT_EVAL_METHOD__ == -1)?$";
+ c_fix = format;
+- c_fix_arg = "#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 16";
+- test_text = "#if __FLT_EVAL_METHOD__ == 0";
++ c_fix_arg = "%0 || __FLT_EVAL_METHOD__ == 16";
++ test_text = "#if __FLT_EVAL_METHOD__ == 0\n"
++ "#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == -1";
+ };
+
+ /*
+diff --git a/fixincludes/tests/base/math.h b/fixincludes/tests/base/math.h
+index 29b67579748..7b92f29a409 100644
+--- a/fixincludes/tests/base/math.h
++++ b/fixincludes/tests/base/math.h
+@@ -32,6 +32,7 @@
+
+ #if defined( DARWIN_FLT_EVAL_METHOD_CHECK )
+ #if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 16
++#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == -1 || __FLT_EVAL_METHOD__ == 16
+ #endif /* DARWIN_FLT_EVAL_METHOD_CHECK */
+
+
+--
+2.39.3
+