Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Jun 2026 20:55:27 +0000
From:      Piotr Kubaj <pkubaj@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 70f1f8cf7762 - main - lang/gcc1[2-6]: actually fix build on powerpc64le/CURRENT
Message-ID:  <6a4038bf.1ff0c.2a56c1f8@gitrepo.freebsd.org>

index | next in thread | raw e-mail

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


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a4038bf.1ff0c.2a56c1f8>