Monday, July 08, 2024

Upgrade lang/ghc to 9.6.6

From a7223783b7b5ad3fd8ea4d2cb2883e8dac1b071e Mon Sep 17 00:00:00 2001
From: Greg Steuck <greg@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 <greg@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 <greg@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

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

No comments:

Post a Comment