commit:     d58870c5fdc115cfbf13c0a932041e44ac5d58d9
Author:     NHOrus <jy6x2b32pie9 <AT> yahoo <DOT> com>
AuthorDate: Mon Mar  9 09:06:47 2026 +0000
Commit:     Alexander Puck Neuwirth <apn-pucky <AT> gentoo <DOT> org>
CommitDate: Tue Mar 10 12:54:16 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d58870c5

dev-lang/cfortran: Mark as C17

Header uses a lot of macro magic to generate correct interopt.
This includes usage C functions with empty arg lists to use as
polymorphic functions. C23 fails this usage. Can't be fixed without
large amounts of macro modifications.
Best to mark as C17 so tests run.

Closes: https://bugs.gentoo.org/963032
Signed-off-by: NHOrus <jy6x2b32pie9 <AT> yahoo.com>
Part-of: https://github.com/gentoo/gentoo/pull/45904
Closes: https://github.com/gentoo/gentoo/pull/45904
Signed-off-by: Alexander Puck Neuwirth <apn-pucky <AT> gentoo.org>

 dev-lang/cfortran/cfortran-20210827-r1.ebuild | 66 +++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/dev-lang/cfortran/cfortran-20210827-r1.ebuild 
b/dev-lang/cfortran/cfortran-20210827-r1.ebuild
new file mode 100644
index 000000000000..d4a66e3b7ca7
--- /dev/null
+++ b/dev-lang/cfortran/cfortran-20210827-r1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FORTRAN_NEEDED=test
+
+inherit autotools fortran-2 flag-o-matic
+
+DEB_PR="1"
+
+# https://github.com/bastien-roucaries/cfortran is for the Debian fork
+DESCRIPTION="Header file allowing to call Fortran routines from C and C++"
+HOMEPAGE="https://www-zeus.desy.de/~burow/cfortran/ 
https://github.com/bastien-roucaries/cfortran";
+SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${PV}.orig.tar.gz"
+SRC_URI+=" 
mirror://debian/pool/main/c/${PN}/${PN}_${PV}-${DEB_PR}.debian.tar.xz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="examples test"
+RESTRICT="!test? ( test )"
+
+src_prepare() {
+       default
+
+       if [[ -d "${WORKDIR}"/debian/patches ]] ; then
+               eapply "${WORKDIR}"/debian/patches/
+       fi
+
+       eautoreconf
+
+       if use examples; then
+               # The examples are also used as tests and it's tricky to clean 
up
+               # afterwards, just save a clean copy (sans Makefiles, as they 
only
+               # cover the test phase) before the tests are run.
+               cp -ar eg eg_src || die "Failed to preserve a clean copy of 
examples"
+               rm -f eg_src/Makefile{,.am,.in}
+       fi
+}
+
+src_configure() {
+       use sparc && append-fflags $(test-flags-FC -fno-store-merging 
-fno-tree-slp-vectorize) # bug #818400
+       # bug #866560
+       filter-lto
+       append-flags -fno-strict-aliasing
+       append-cflags $(test-flags-CC -fcommon) # bug #899452
+       append-cflags -std=gnu17 # bug #963032
+       default
+}
+
+src_install() {
+       default
+
+       # For compatibility with older versions
+       dodir /usr/include/cfortran
+       dosym -r /usr/include/cfortran.h /usr/include/cfortran/cfortran.h
+
+       docinto debian
+       dodoc "${WORKDIR}"/debian/{NEWS,changelog,copyright}
+
+       if use examples; then
+               docinto examples
+               dodoc -r cfortest.c cfortex.f eg_src/*
+       fi
+}

Reply via email to