Index | Thread | Search

From:
Kirill A. Korinsky <kirill@korins.ky>
Subject:
Re: lang/gcc/16: new port (version 16.1.0)
To:
ports@openbsd.org
Date:
Mon, 18 May 2026 16:57:13 +0200

Download raw body.

Thread
On Mon, 18 May 2026 16:07:54 +0200,
Stuart Henderson <stu@spacehopper.org> wrote:
> 
> On 2026/05/18 15:40, Kirill A. Korinsky wrote:
> > On Mon, 18 May 2026 14:10:38 +0200,
> > Stuart Henderson <stu@spacehopper.org> wrote:
> > > 
> > > > I think we should import it as is but not link to the build, what should
> > > > make works on actualize PLIST much simpler and distributed.
> > > 
> > > Ah yes, that does make sense. In that case, please add a commented-out
> > > line to ../Makefile so that it's clear that it was done on purpose.
> > > I'm ok with doing that.
> > > 
> > > Maybe add a list of archs that were checked to a comment in 16/Makefile?
> > > 
> > 
> > I think we can use list of bootstraps as a proof where it was tested?
> 
> not all archs have ada/dlang
> 
> > Also, I think the right step is move *-bootstrap to Makefile.inc like that,
> > but I don't like it because it looks ugly, and I not sure that reformat file
> > is good idea.
> 
> I agree that's a better place, I think I'd line up with an extra
> tab on the other COMMENT/PKGNAME/DESCR lines. (also there's an extra
> space on the DESCR-xx lines that could be made more consistent, and
> I don't think the ? on those are needed either)
> 

Fair, here two artifacts:
1. A diff which refactor Makefile.inc and all Makefile, notable that space
   before = is required, otherwise c++= won't be parsed
2. an updated import for gcc-16 which I'd like to import unlinked to build

-- 
wbr, Kirill
Index: Makefile.inc
===================================================================
RCS file: /home/cvs/ports/lang/gcc/Makefile.inc,v
diff -u -p -r1.23 Makefile.inc
--- Makefile.inc	12 Dec 2025 18:19:46 -0000	1.23
+++ Makefile.inc	18 May 2026 14:54:00 -0000
@@ -1,49 +1,66 @@
 # common stuff for all gcc ports
-# we assume each one defines a V variable.
+# we assume each one defines a V and GCC_PKGSPEC variable.
 
-CATEGORIES=	lang
+CATEGORIES =		lang
 
-PERMIT_PACKAGE=	Yes
+PERMIT_PACKAGE =	Yes
 
-COM=		GNU compiler collection
-COMMENT=	${COM}: core C compiler
-COMMENT-main=	${COMMENT}
-COMMENT-libs=	${COM}: support libs
-COMMENT-c++ =	${COM}: C++ compiler
-COMMENT-estdc=	${COM}: C++ compiler library
-COMMENT-f95=	${COM}: Fortran compiler
-COMMENT-objc=	${COM}: obj C compiler
-COMMENT-ada=	${COM}: Ada compiler
-COMMENT-go=	${COM}: Go compiler
-COMMENT-dlang=	${COM}: D compiler
-
-PKGNAME?=	gcc-${FULL_PKGVERSION}
-PKGNAME-libs?=	gcc-libs-${FULL_PKGVERSION}
-PKGNAME-c++ ?=	g++-${FULL_PKGVERSION}
-PKGNAME-estdc?=	libstdc++-${FULL_PKGVERSION}
-PKGNAME-f95?=	gfortran-${FULL_PKGVERSION}
-PKGNAME-objc?=	gobjc-${FULL_PKGVERSION}
-PKGNAME-ada?=	gnat-${FULL_PKGVERSION}
-PKGNAME-go?=	gccgo-${FULL_PKGVERSION}
-PKGNAME-dlang?=	gdc-${FULL_PKGVERSION}
-
-DESCR-main ?=	${PORTSDIR}/lang/gcc/DESCR
-DESCR-libs ?=	${PORTSDIR}/lang/gcc/DESCR-libs
-DESCR-c++ ?=	${PORTSDIR}/lang/gcc/DESCR-c++
-DESCR-estdc ?=	${PORTSDIR}/lang/gcc/DESCR-estdc
-DESCR-f95 ?=	${PORTSDIR}/lang/gcc/DESCR-f95
-DESCR-objc ?=	${PORTSDIR}/lang/gcc/DESCR-objc
-DESCR-ada ?=	${PORTSDIR}/lang/gcc/DESCR-ada
-DESCR-go ?=	${PORTSDIR}/lang/gcc/DESCR-go
-DESCR-dlang ?=	${PORTSDIR}/lang/gcc/DESCR-dlang
-
-HOMEPAGE?=	https://gcc.gnu.org/
-
-DIST_SUBDIR=	gcc
-SITES?=		${SITE_GCC:=releases/gcc-$(FULL_VERSION)/}
-SITES.strap?=	https://distfiles.stumpf.co/ \
-		https://spacehopper.org/mirrors/ \
-		https://distfiles.bsdfrog.org/
+FULL_VERSION ?=		$V
+FULL_PKGVERSION ?=	$V
+
+COM =			GNU compiler collection
+COMMENT =		${COM}: core C compiler
+COMMENT-main =		${COMMENT}
+COMMENT-libs =		${COM}: support libs
+COMMENT-c++ =		${COM}: C++ compiler
+COMMENT-estdc =		${COM}: C++ compiler library
+COMMENT-f95 =		${COM}: Fortran compiler
+COMMENT-objc =		${COM}: obj C compiler
+COMMENT-ada =		${COM}: Ada compiler
+COMMENT-go =		${COM}: Go compiler
+COMMENT-dlang =		${COM}: D compiler
+COMMENT-bootstrap =	${COM}: binary bootstrap
+
+PKGNAME =		gcc-${FULL_PKGVERSION}
+PKGNAME-libs =		gcc-libs-${FULL_PKGVERSION}
+PKGNAME-c++ =		g++-${FULL_PKGVERSION}
+PKGNAME-estdc =		libstdc++-${FULL_PKGVERSION}
+PKGNAME-f95 =		gfortran-${FULL_PKGVERSION}
+PKGNAME-objc =		gobjc-${FULL_PKGVERSION}
+PKGNAME-ada =		gnat-${FULL_PKGVERSION}
+PKGNAME-go =		gccgo-${FULL_PKGVERSION}
+PKGNAME-dlang =		gdc-${FULL_PKGVERSION}
+PKGNAME-bootstrap =	gcc-bootstrap-${FULL_PKGVERSION}
+
+PKGSPEC =		gcc-${GCC_PKGSPEC}
+PKGSPEC-main =		${PKGSPEC}
+PKGSPEC-libs =		gcc-libs-${GCC_PKGSPEC}
+PKGSPEC-c++ =		g++-${GCC_PKGSPEC}
+PKGSPEC-estdc =		libstdc++-${GCC_PKGSPEC}
+PKGSPEC-f95 =		gfortran-${GCC_PKGSPEC}
+PKGSPEC-objc =		gobjc-${GCC_PKGSPEC}
+PKGSPEC-ada =		gnat-${GCC_PKGSPEC}
+PKGSPEC-dlang =		gdc-${GCC_PKGSPEC}
+PKGSPEC-bootstrap =	gcc-bootstrap-${GCC_PKGSPEC}
+
+DESCR-main =		${PORTSDIR}/lang/gcc/DESCR
+DESCR-libs =		${PORTSDIR}/lang/gcc/DESCR-libs
+DESCR-c++ =		${PORTSDIR}/lang/gcc/DESCR-c++
+DESCR-estdc =		${PORTSDIR}/lang/gcc/DESCR-estdc
+DESCR-f95 =		${PORTSDIR}/lang/gcc/DESCR-f95
+DESCR-objc =		${PORTSDIR}/lang/gcc/DESCR-objc
+DESCR-ada =		${PORTSDIR}/lang/gcc/DESCR-ada
+DESCR-go =		${PORTSDIR}/lang/gcc/DESCR-go
+DESCR-dlang =		${PORTSDIR}/lang/gcc/DESCR-dlang
+DESCR-bootstrap =	${PORTSDIR}/lang/gcc/DESCR-bootstrap
+
+HOMEPAGE ?=		https://gcc.gnu.org/
+
+DIST_SUBDIR =		gcc
+SITES ?=		${SITE_GCC:=releases/gcc-$(FULL_VERSION)/}
+SITES.strap ?=		https://distfiles.stumpf.co/ \
+			https://spacehopper.org/mirrors/ \
+			https://distfiles.bsdfrog.org/
 
 # do not include OSREV
 CONFIG=${MACHINE_ARCH:S/amd64/x86_64/}-unknown-openbsd
Index: DESCR-bootstrap
===================================================================
RCS file: DESCR-bootstrap
diff -N DESCR-bootstrap
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ DESCR-bootstrap	18 May 2026 11:43:58 -0000
@@ -0,0 +1,2 @@
+This package should not normally be installed; it is generated to
+simplify creating new bootstraps for the port maintainers.
Index: 8/Makefile
===================================================================
RCS file: /home/cvs/ports/lang/gcc/8/Makefile,v
diff -u -p -r1.106 Makefile
--- 8/Makefile	15 Jan 2026 11:47:52 -0000	1.106
+++ 8/Makefile	18 May 2026 14:51:41 -0000
@@ -23,8 +23,6 @@ DPB_PROPERTIES = parallel
 USE_NOEXECONLY = Yes
 
 V = 8.4.0
-FULL_VERSION = $V
-FULL_PKGVERSION = $V
 GCC_PKGSPEC = >=8,<9
 REVISION = 31
 
@@ -37,19 +35,6 @@ ADASTRAP-powerpc = adastrap-powerpc-$V-3
 # old bootstraps for archs where ada is currently disabled
 #ADASTRAP-arm = adastrap-arm-4.9.4-0.tar.xz
 #ADASTRAP-sparc64 = adastrap-sparc64-6.5.0-0.tar.xz
-
-PKGNAME-main =	gcc-${FULL_PKGVERSION}
-PKGSPEC-main =	gcc-${GCC_PKGSPEC}
-PKGNAME-libs =	gcc-libs-${FULL_PKGVERSION}
-PKGSPEC-libs =	gcc-libs-${GCC_PKGSPEC}
-PKGNAME-c++ =	g++-${FULL_PKGVERSION}
-PKGSPEC-c++ =	g++-${GCC_PKGSPEC}
-PKGNAME-f95 =	gfortran-${FULL_PKGVERSION}
-PKGSPEC-f95 =	gfortran-${GCC_PKGSPEC}
-PKGNAME-objc =	gobjc-${FULL_PKGVERSION}
-PKGSPEC-objc =	gobjc-${GCC_PKGSPEC}
-PKGNAME-ada =	gnat-${FULL_PKGVERSION}
-PKGSPEC-ada =	gnat-${GCC_PKGSPEC}
 
 SHARED_LIBS =	estdc++		19.0 \
 		gfortran	8.0 \
Index: 11/Makefile
===================================================================
RCS file: /home/cvs/ports/lang/gcc/11/Makefile,v
diff -u -p -r1.65 Makefile
--- 11/Makefile	7 Mar 2026 21:42:10 -0000	1.65
+++ 11/Makefile	18 May 2026 14:51:23 -0000
@@ -12,8 +12,6 @@ DPB_PROPERTIES = parallel
 USE_NOEXECONLY = Yes
 
 V = 11.2.0
-FULL_VERSION = $V
-FULL_PKGVERSION = $V
 GCC_PKGSPEC = >=11,<12
 REVISION = 22
 REVISION-dlang = 23
@@ -29,21 +27,6 @@ ADASTRAP-sparc64 = adastrap-sparc64-$V-0
 # old bootstraps for archs where ada is currently disabled
 #ADASTRAP-arm = adastrap-arm-4.9.4-0.tar.xz
 #ADASTRAP-hppa = adastrap-hppa-8.3.0-1.tar.xz
-
-PKGNAME-main =	gcc-${FULL_PKGVERSION}
-PKGSPEC-main =	gcc-${GCC_PKGSPEC}
-PKGNAME-libs =	gcc-libs-${FULL_PKGVERSION}
-PKGSPEC-libs =	gcc-libs-${GCC_PKGSPEC}
-PKGNAME-c++ =	g++-${FULL_PKGVERSION}
-PKGSPEC-c++ =	g++-${GCC_PKGSPEC}
-PKGNAME-f95 =	gfortran-${FULL_PKGVERSION}
-PKGSPEC-f95 =	gfortran-${GCC_PKGSPEC}
-PKGNAME-objc =	gobjc-${FULL_PKGVERSION}
-PKGSPEC-objc =	gobjc-${GCC_PKGSPEC}
-PKGNAME-ada =	gnat-${FULL_PKGVERSION}
-PKGSPEC-ada =	gnat-${GCC_PKGSPEC}
-PKGNAME-dlang =	gdc-${FULL_PKGVERSION}
-PKGSPEC-dlang =	gdc-${GCC_PKGSPEC}
 
 SHARED_LIBS =	estdc++		20.0 \
 		gfortran	9.0 \
Index: 15/Makefile
===================================================================
RCS file: /home/cvs/ports/lang/gcc/15/Makefile,v
diff -u -p -r1.21 Makefile
--- 15/Makefile	7 Mar 2026 21:43:19 -0000	1.21
+++ 15/Makefile	18 May 2026 14:50:53 -0000
@@ -16,8 +16,6 @@ USE_NOEXECONLY = Yes
 # - turn -Wimplicit-function-declaration and -Wincompatible-pointer-types
 #   into simple warnings.
 V = 15.2.0
-FULL_VERSION = $V
-FULL_PKGVERSION = $V
 GCC_PKGSPEC = >=15,<16
 
 REVISION = 5
@@ -34,21 +32,6 @@ BOOTSTRAP-i386 = adastrap-i386-11.2.0-4.
 BOOTSTRAP-mips64 = adastrap-mips64-8.4.0-5.tar.xz
 BOOTSTRAP-powerpc = adastrap-powerpc-11.2.0-4.tar.xz
 BOOTSTRAP-sparc64 = gcc-bootstrap-sparc64-15.2.0-0.tar.xz
-
-PKGNAME-main =	gcc-${FULL_PKGVERSION}
-PKGSPEC-main =	gcc-${GCC_PKGSPEC}
-PKGNAME-libs =	gcc-libs-${FULL_PKGVERSION}
-PKGSPEC-libs =	gcc-libs-${GCC_PKGSPEC}
-PKGNAME-c++ =	g++-${FULL_PKGVERSION}
-PKGSPEC-c++ =	g++-${GCC_PKGSPEC}
-PKGNAME-f95 =	gfortran-${FULL_PKGVERSION}
-PKGSPEC-f95 =	gfortran-${GCC_PKGSPEC}
-PKGNAME-objc =	gobjc-${FULL_PKGVERSION}
-PKGSPEC-objc =	gobjc-${GCC_PKGSPEC}
-PKGNAME-ada =	gnat-${FULL_PKGVERSION}
-PKGSPEC-ada =	gnat-${GCC_PKGSPEC}
-PKGNAME-dlang =	gdc-${FULL_PKGVERSION}
-PKGSPEC-dlang =	gdc-${GCC_PKGSPEC}
 
 SHARED_LIBS =	estdc++		21.0 \
 		gfortran	10.0 \