git: 70f1f8cf7762 - main - lang/gcc1[2-6]: actually fix build on powerpc64le/CURRENT
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 27 Jun 2026 20:55:27 UTC
The branch main has been updated by pkubaj:
URL: https://cgit.FreeBSD.org/ports/commit/?id=70f1f8cf7762db8fe6648bff3436cc604507d494
commit 70f1f8cf7762db8fe6648bff3436cc604507d494
Author: Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2026-06-27 20:53:18 +0000
Commit: Piotr Kubaj <pkubaj@FreeBSD.org>
CommitDate: 2026-06-27 20:55:24 +0000
lang/gcc1[2-6]: actually fix build on powerpc64le/CURRENT
Without this patch, gcc attempts to enable support for IBM long double,
when IEEE long double is enabled, which is wrong. Allow to only
specify IEEE long double.
The whole patchset for IEEE long double on FreeBSD/powerpc64le
is being upstreamed at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126012.
---
lang/gcc12/files/patch-libgfortran_kinds-override.h | 11 +++++++++++
lang/gcc13/files/patch-libgfortran_kinds-override.h | 11 +++++++++++
lang/gcc14/files/patch-libgfortran_kinds-override.h | 11 +++++++++++
lang/gcc15/files/patch-libgfortran_kinds-override.h | 11 +++++++++++
lang/gcc16/files/patch-libgfortran_kinds-override.h | 11 +++++++++++
5 files changed, 55 insertions(+)
diff --git a/lang/gcc12/files/patch-libgfortran_kinds-override.h b/lang/gcc12/files/patch-libgfortran_kinds-override.h
new file mode 100644
index 000000000000..eb92e972a84d
--- /dev/null
+++ b/lang/gcc12/files/patch-libgfortran_kinds-override.h
@@ -0,0 +1,11 @@
+--- libgfortran/kinds-override.h.orig
++++ libgfortran/kinds-override.h
+@@ -30,7 +30,7 @@
+ #endif
+
+ /* Keep these conditions on one line so grep can filter it out. */
+-#if defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG_DOUBLE__ == 16
++#if defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG_DOUBLE__ == 16 && !defined(__LONG_DOUBLE_IEEE128__)
+ typedef __float128 GFC_REAL_17;
+ typedef _Complex float __attribute__((mode(KC))) GFC_COMPLEX_17;
+ #define HAVE_GFC_REAL_17
diff --git a/lang/gcc13/files/patch-libgfortran_kinds-override.h b/lang/gcc13/files/patch-libgfortran_kinds-override.h
new file mode 100644
index 000000000000..0d60fa7bfaf3
--- /dev/null
+++ b/lang/gcc13/files/patch-libgfortran_kinds-override.h
@@ -0,0 +1,11 @@
+--- libgfortran/kinds-override.h.orig
++++ libgfortran/kinds-override.h
+@@ -30,7 +30,7 @@
+ #endif
+
+ /* Keep these conditions on one line so grep can filter it out. */
+-#if defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG_DOUBLE__ == 16
++#if defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG_DOUBLE__ == 16 && !defined(__LONG_DOUBLE_IEEE128__)
+ typedef _Float128 GFC_REAL_17;
+ typedef _Complex _Float128 GFC_COMPLEX_17;
+ #define HAVE_GFC_REAL_17
diff --git a/lang/gcc14/files/patch-libgfortran_kinds-override.h b/lang/gcc14/files/patch-libgfortran_kinds-override.h
new file mode 100644
index 000000000000..0d60fa7bfaf3
--- /dev/null
+++ b/lang/gcc14/files/patch-libgfortran_kinds-override.h
@@ -0,0 +1,11 @@
+--- libgfortran/kinds-override.h.orig
++++ libgfortran/kinds-override.h
+@@ -30,7 +30,7 @@
+ #endif
+
+ /* Keep these conditions on one line so grep can filter it out. */
+-#if defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG_DOUBLE__ == 16
++#if defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG_DOUBLE__ == 16 && !defined(__LONG_DOUBLE_IEEE128__)
+ typedef _Float128 GFC_REAL_17;
+ typedef _Complex _Float128 GFC_COMPLEX_17;
+ #define HAVE_GFC_REAL_17
diff --git a/lang/gcc15/files/patch-libgfortran_kinds-override.h b/lang/gcc15/files/patch-libgfortran_kinds-override.h
new file mode 100644
index 000000000000..0d60fa7bfaf3
--- /dev/null
+++ b/lang/gcc15/files/patch-libgfortran_kinds-override.h
@@ -0,0 +1,11 @@
+--- libgfortran/kinds-override.h.orig
++++ libgfortran/kinds-override.h
+@@ -30,7 +30,7 @@
+ #endif
+
+ /* Keep these conditions on one line so grep can filter it out. */
+-#if defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG_DOUBLE__ == 16
++#if defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG_DOUBLE__ == 16 && !defined(__LONG_DOUBLE_IEEE128__)
+ typedef _Float128 GFC_REAL_17;
+ typedef _Complex _Float128 GFC_COMPLEX_17;
+ #define HAVE_GFC_REAL_17
diff --git a/lang/gcc16/files/patch-libgfortran_kinds-override.h b/lang/gcc16/files/patch-libgfortran_kinds-override.h
new file mode 100644
index 000000000000..0d60fa7bfaf3
--- /dev/null
+++ b/lang/gcc16/files/patch-libgfortran_kinds-override.h
@@ -0,0 +1,11 @@
+--- libgfortran/kinds-override.h.orig
++++ libgfortran/kinds-override.h
+@@ -30,7 +30,7 @@
+ #endif
+
+ /* Keep these conditions on one line so grep can filter it out. */
+-#if defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG_DOUBLE__ == 16
++#if defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG_DOUBLE__ == 16 && !defined(__LONG_DOUBLE_IEEE128__)
+ typedef _Float128 GFC_REAL_17;
+ typedef _Complex _Float128 GFC_COMPLEX_17;
+ #define HAVE_GFC_REAL_17