The following is a fairly straight forward update to the next stable
release. The release notes[1] look like a pretty good reason to jump.
I rebuilt the bootstrap too and put it into my ~/snaps and uploaded to
https://github.com/blackgnezdo/ports/releases/tag/ghc-9.6.6.20240708

The diffs are also here:
https://github.com/openbsd/ports/compare/master...blackgnezdo:ghc966?expand=1

The ports tree dependencies all built fine. I'll look into why one test
failed, but otherwise, does this look OK?

[1] https://downloads.haskell.org/~ghc/9.6.6/docs/users_guide/9.6.6-notes.html

>From a7223783b7b5ad3fd8ea4d2cb2883e8dac1b071e Mon Sep 17 00:00:00 2001
From: Greg Steuck <g...@nest.cx>
Date: Mon, 8 Jul 2024 09:59:20 -0700
Subject: [PATCH 1/3] Update to to ghc 9.6.6

---
 lang/ghc/Makefile                                    |  8 +++-----
 lang/ghc/distinfo                                    |  8 ++++----
 .../patch-compiler_GHC_Driver_Pipeline_Execute_hs    | 12 ------------
 3 files changed, 7 insertions(+), 21 deletions(-)
 delete mode 100644 lang/ghc/patches/patch-compiler_GHC_Driver_Pipeline_Execute_hs

diff --git a/lang/ghc/Makefile b/lang/ghc/Makefile
index 66db20e6993..525865e5333 100644
--- a/lang/ghc/Makefile
+++ b/lang/ghc/Makefile
@@ -13,12 +13,10 @@ USE_NOEXECONLY =	Yes
 
 USE_NOBTCFI =		Yes
 
-GHC_VERSION =		9.6.5
-REVISION =		0
+GHC_VERSION =		9.6.6
 DISTNAME =		ghc-${GHC_VERSION}
 CATEGORIES =		lang devel
 HOMEPAGE =		https://www.haskell.org/ghc/
-REVISION =		0
 
 # Version of the precompiled binaries
 BIN_VER =		9.6.4.20240321
@@ -75,10 +73,10 @@ GHC_ITEMS = \
 	BYTESTRING		0.11.5.3	 \
 	CONTAINERS		0.6.7		 \
 	DEEPSEQ			1.4.8.1		 \
-	DIRECTORY		1.3.8.4		 \
+	DIRECTORY		1.3.8.5		 \
 	EXCEPTIONS		0.10.7		 \
 	FILEPATH		1.4.300.1	 \
-	GHC			9.6.5		 \
+	GHC			9.6.6		 \
 	GHC_BIGNUM		1.3		 \
 	GHC_COMPACT		0.1.0.0		 \
 	GHC_PRIM		0.10.0		 \
diff --git a/lang/ghc/distinfo b/lang/ghc/distinfo
index fee9ed2161c..3f9ba8cc9af 100644
--- a/lang/ghc/distinfo
+++ b/lang/ghc/distinfo
@@ -1,10 +1,10 @@
 SHA256 (ghc/ghc-9.6.4.20240321-amd64.tar.xz) = a1/iD2L9THJMIVFDrJBfXl55Vz2y4o2T/38Mq/Y6pZo=
 SHA256 (ghc/ghc-9.6.4.20240321-shlibs-amd64.tar.gz) = mM60+ad3IKYSgsD7L9B0HwN9SQA/WAZ6jrhFvZpNL7Q=
-SHA256 (ghc/ghc-9.6.5-src.tar.xz) = h7OJkk+YwaJsIFEidXM4yNqzOtH89nD6oiYidCQyuTw=
-SHA256 (ghc/ghc-9.6.5-testsuite.tar.xz) = 3KPfSJdc95F9tOP/YhLpR4zkgzfLGhPjAHo9GoAJokw=
+SHA256 (ghc/ghc-9.6.6-src.tar.xz) = AI96BNia0Quq5khslmRdfXJqqsfhR2GZ9t2Gxr2Zd60=
+SHA256 (ghc/ghc-9.6.6-testsuite.tar.xz) = 3ZHGtlvEtCTeJzBy+2roeCpu+oYc82RFzIj8ODRVsgk=
 SHA256 (ghc/hadrian-sources-9.6.4.20240321.tar.gz) = b+9fiwdVJn0b1UAqYIdsRsqSGsBgDMoTlhxaskS3K7A=
 SIZE (ghc/ghc-9.6.4.20240321-amd64.tar.xz) = 74806504
 SIZE (ghc/ghc-9.6.4.20240321-shlibs-amd64.tar.gz) = 3548043
-SIZE (ghc/ghc-9.6.5-src.tar.xz) = 29463284
-SIZE (ghc/ghc-9.6.5-testsuite.tar.xz) = 7081340
+SIZE (ghc/ghc-9.6.6-src.tar.xz) = 29443464
+SIZE (ghc/ghc-9.6.6-testsuite.tar.xz) = 7088964
 SIZE (ghc/hadrian-sources-9.6.4.20240321.tar.gz) = 2125372
diff --git a/lang/ghc/patches/patch-compiler_GHC_Driver_Pipeline_Execute_hs b/lang/ghc/patches/patch-compiler_GHC_Driver_Pipeline_Execute_hs
deleted file mode 100644
index 08680dc7fb3..00000000000
--- a/lang/ghc/patches/patch-compiler_GHC_Driver_Pipeline_Execute_hs
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: compiler/GHC/Driver/Pipeline/Execute.hs
---- compiler/GHC/Driver/Pipeline/Execute.hs.orig
-+++ compiler/GHC/Driver/Pipeline/Execute.hs
-@@ -1126,7 +1126,7 @@ via gcc.
- -- | See Note [Object merging].
- joinObjectFiles :: HscEnv -> [FilePath] -> FilePath -> IO ()
- joinObjectFiles hsc_env o_files output_fn
--  | can_merge_objs && not dashLSupported = do
-+  | can_merge_objs = do
-   let toolSettings' = toolSettings dflags
-       ldIsGnuLd = toolSettings_ldIsGnuLd toolSettings'
-       ld_r args = GHC.SysTools.runMergeObjects (hsc_logger hsc_env) (hsc_tmpfs hsc_env) (hsc_dflags hsc_env) (
-- 
2.45.2

>From c42c9516ed3d0e54d24982709867e65c07079b0c Mon Sep 17 00:00:00 2001
From: Greg Steuck <g...@nest.cx>
Date: Mon, 8 Jul 2024 10:30:31 -0700
Subject: [PATCH 2/3] Avoid -Wstrict-prototypes diagnostics

---
 lang/ghc/patches/patch-rts_include_stg_SMP_h | 18 ++++++++++++++++++
 lang/ghc/patches/patch-rts_sm_MarkWeak_c     | 14 ++++++++++++++
 2 files changed, 32 insertions(+)
 create mode 100644 lang/ghc/patches/patch-rts_include_stg_SMP_h
 create mode 100644 lang/ghc/patches/patch-rts_sm_MarkWeak_c

diff --git a/lang/ghc/patches/patch-rts_include_stg_SMP_h b/lang/ghc/patches/patch-rts_include_stg_SMP_h
new file mode 100644
index 00000000000..c81c95db2c2
--- /dev/null
+++ b/lang/ghc/patches/patch-rts_include_stg_SMP_h
@@ -0,0 +1,18 @@
+Avoid -Wstrict-prototypes diagnostics
+
+Index: rts/include/stg/SMP.h
+--- rts/include/stg/SMP.h.orig
++++ rts/include/stg/SMP.h
+@@ -590,9 +590,9 @@ load_load_barrier(void) {
+ EXTERN_INLINE void write_barrier(void);
+ EXTERN_INLINE void store_load_barrier(void);
+ EXTERN_INLINE void load_load_barrier(void);
+-EXTERN_INLINE void write_barrier     () {} /* nothing */
+-EXTERN_INLINE void store_load_barrier() {} /* nothing */
+-EXTERN_INLINE void load_load_barrier () {} /* nothing */
++EXTERN_INLINE void write_barrier     (void) {} /* nothing */
++EXTERN_INLINE void store_load_barrier(void) {} /* nothing */
++EXTERN_INLINE void load_load_barrier (void) {} /* nothing */
+ 
+ // Relaxed atomic operations
+ #define RELAXED_LOAD(ptr) *ptr
diff --git a/lang/ghc/patches/patch-rts_sm_MarkWeak_c b/lang/ghc/patches/patch-rts_sm_MarkWeak_c
new file mode 100644
index 00000000000..d41a905b503
--- /dev/null
+++ b/lang/ghc/patches/patch-rts_sm_MarkWeak_c
@@ -0,0 +1,14 @@
+Avoid -Wstrict-prototypes diagnostics
+
+Index: rts/sm/MarkWeak.c
+--- rts/sm/MarkWeak.c.orig
++++ rts/sm/MarkWeak.c
+@@ -453,7 +453,7 @@ static void checkWeakPtrSanity(StgWeak *hd, StgWeak *t
+  * Traverse the capabilities' local new-weak-pointer lists at the beginning of
+  * GC and move them to the nursery's weak_ptr_list.
+  */
+-void collectFreshWeakPtrs()
++void collectFreshWeakPtrs(void)
+ {
+     uint32_t i;
+     // move recently allocated weak_ptr_list to the old list as well
-- 
2.45.2

>From 9460beddd9a891dfea35e8bd770b3ccaf0eb92b7 Mon Sep 17 00:00:00 2001
From: Greg Steuck <g...@nest.cx>
Date: Mon, 8 Jul 2024 21:02:09 -0700
Subject: [PATCH 3/3] Switch to the rebuilt 9.6.6 bootstrap

---
 lang/ghc/Makefile |  6 +++---
 lang/ghc/distinfo | 12 ++++++------
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/lang/ghc/Makefile b/lang/ghc/Makefile
index 525865e5333..3b978ceb63f 100644
--- a/lang/ghc/Makefile
+++ b/lang/ghc/Makefile
@@ -19,7 +19,7 @@ CATEGORIES =		lang devel
 HOMEPAGE =		https://www.haskell.org/ghc/
 
 # Version of the precompiled binaries
-BIN_VER =		9.6.4.20240321
+BIN_VER =		9.6.6.20240708
 
 # lang/python needed to bootstrap hadrian.
 MODULES =		lang/python
@@ -191,7 +191,7 @@ do-test:
 # It doesn't matter whether this is the actual date of the bootstrapper
 # build. It's just used to get different distfiles whenever new
 # bootstrappers have to be built.
-BOOTSTRAP_DATE =	20240321
+BOOTSTRAP_DATE =	20240708
 
 # Create a bootstrapper. This compiles a stripped-down version of ghc
 # and creates a `bindist', i.e. a tarball with binaries that can be
@@ -201,7 +201,7 @@ bootstrap:
 	$(MAKE) rebuild 'TRANSFORMER=+no_profiled_libs'
 	$(_PBUILD) $(MAKE) _bootstrap_finish
 	${MODPY_BIN} ${WRKSRC}/hadrian/bootstrap/bootstrap.py -w ${WRKSRC}/_build/stage1/bin/ghc \
-		-d ${WRKSRC}/hadrian/bootstrap/plan-bootstrap-${GHC_VERSION:S/./_/g:S/4/2/}.json fetch \
+		-d ${WRKSRC}/hadrian/bootstrap/plan-bootstrap-9_6_2.json fetch \
 		-o hadrian-sources-${GHC_VERSION}.${BOOTSTRAP_DATE}
 	ln -sf ${WRKBUILD}/ghc-${GHC_VERSION}.${BOOTSTRAP_DATE}*.?z .
 	@sha256 -b *.?z
diff --git a/lang/ghc/distinfo b/lang/ghc/distinfo
index 3f9ba8cc9af..87eb054854d 100644
--- a/lang/ghc/distinfo
+++ b/lang/ghc/distinfo
@@ -1,10 +1,10 @@
-SHA256 (ghc/ghc-9.6.4.20240321-amd64.tar.xz) = a1/iD2L9THJMIVFDrJBfXl55Vz2y4o2T/38Mq/Y6pZo=
-SHA256 (ghc/ghc-9.6.4.20240321-shlibs-amd64.tar.gz) = mM60+ad3IKYSgsD7L9B0HwN9SQA/WAZ6jrhFvZpNL7Q=
 SHA256 (ghc/ghc-9.6.6-src.tar.xz) = AI96BNia0Quq5khslmRdfXJqqsfhR2GZ9t2Gxr2Zd60=
 SHA256 (ghc/ghc-9.6.6-testsuite.tar.xz) = 3ZHGtlvEtCTeJzBy+2roeCpu+oYc82RFzIj8ODRVsgk=
-SHA256 (ghc/hadrian-sources-9.6.4.20240321.tar.gz) = b+9fiwdVJn0b1UAqYIdsRsqSGsBgDMoTlhxaskS3K7A=
-SIZE (ghc/ghc-9.6.4.20240321-amd64.tar.xz) = 74806504
-SIZE (ghc/ghc-9.6.4.20240321-shlibs-amd64.tar.gz) = 3548043
+SHA256 (ghc/ghc-9.6.6.20240708-amd64.tar.xz) = YeGJLbR8EK8t/cvNYrtm+bJh7rhdZx4jU+4pWQ1SveE=
+SHA256 (ghc/ghc-9.6.6.20240708-shlibs-amd64.tar.gz) = jwTkW8XAm4kBV7VaEZkqq8B3kldT5/Um0uTDP4RxAF0=
+SHA256 (ghc/hadrian-sources-9.6.6.20240708.tar.gz) = MVlW0hNsD8+/7yJe1To0oURVaEVnZbtbAK1dgruLRh0=
 SIZE (ghc/ghc-9.6.6-src.tar.xz) = 29443464
 SIZE (ghc/ghc-9.6.6-testsuite.tar.xz) = 7088964
-SIZE (ghc/hadrian-sources-9.6.4.20240321.tar.gz) = 2125372
+SIZE (ghc/ghc-9.6.6.20240708-amd64.tar.xz) = 75990536
+SIZE (ghc/ghc-9.6.6.20240708-shlibs-amd64.tar.gz) = 3566900
+SIZE (ghc/hadrian-sources-9.6.6.20240708.tar.gz) = 2125314
-- 
2.45.2

Reply via email to