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