[Git][ghc/ghc][wip/9.6.4-backports] 3 commits: ghcup-metadata: Use dynamically linked alpine bindists

Zubin (@wz1000) gitlab at gitlab.haskell.org
Mon Dec 18 09:26:30 UTC 2023



Zubin pushed to branch wip/9.6.4-backports at Glasgow Haskell Compiler / GHC


Commits:
123b0cf7 by Matthew Pickering at 2023-12-18T14:56:22+05:30
ghcup-metadata: Use dynamically linked alpine bindists

In theory these will work much better on alpine to allow people to build
statically linked applications there. We don't need to distribute a
statically linked application ourselves in order to allow that.

Fixes #23602

(cherry picked from commit e524fa7f67259a093aeb21aada139137626c581c)

- - - - -
de70b89d by Rodrigo Mesquita at 2023-12-18T14:56:22+05:30
Suppress duplicate librares linker warning of new macOS linker

Fixes #24167

XCode 15 introduced a new linker which warns on duplicate libraries being
linked. To disable this warning, we pass -Wl,-no_warn_duplicate_libraries as
suggested by Brad King in CMake issue #25297.

This flag isn't necessarily available to other linkers on darwin, so we must
only configure it into the CC linker arguments if valid.

(cherry picked from commit e98051a5e7251390799f9fdead988c61d72e82e3)

- - - - -
f6ff2c25 by Zubin Duggal at 2023-12-18T14:56:22+05:30
Prepare release 9.6.4

- - - - -


7 changed files:

- .gitlab-ci.yml
- .gitlab/gen_ci.hs
- configure.ac
- distrib/configure.ac.in
- + docs/users_guide/9.6.4-notes.rst
- docs/users_guide/release-notes.rst
- + m4/fp_ld_no_warn_duplicate_libraries.m4


Changes:

=====================================
.gitlab-ci.yml
=====================================
@@ -1018,7 +1018,7 @@ ghcup-metadata-nightly:
       artifacts: false
     - job: nightly-x86_64-windows-validate
       artifacts: false
-    - job: nightly-x86_64-linux-alpine3_12-int_native-validate+fully_static
+    - job: nightly-x86_64-linux-alpine3_12-validate
       artifacts: false
     - job: nightly-x86_64-linux-deb9-validate
       artifacts: false


=====================================
.gitlab/gen_ci.hs
=====================================
@@ -955,7 +955,7 @@ platform_mapping :: Map String (JobGroup BindistInfo)
 platform_mapping = Map.map go $
   Map.fromListWith combine [ (uncurry mkPlatform (jobPlatform (jobInfo $ v j)), j) | j <- filter hasReleaseBuild job_groups ]
   where
-    whitelist = [ "x86_64-linux-alpine3_12-int_native-validate+fully_static"
+    whitelist = [ "x86_64-linux-alpine3_12-validate"
                 , "x86_64-linux-deb10-validate"
                 , "x86_64-linux-deb11-validate"
                 , "x86_64-linux-fedora33-release"


=====================================
configure.ac
=====================================
@@ -13,7 +13,7 @@ dnl
 # see what flags are available. (Better yet, read the documentation!)
 #
 
-AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.6.3], [glasgow-haskell-bugs at haskell.org], [ghc-AC_PACKAGE_VERSION])
+AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.6.4], [glasgow-haskell-bugs at haskell.org], [ghc-AC_PACKAGE_VERSION])
     # Version on master must be X.Y (not X.Y.Z) for ProjectVersionMunged variable
     # to be useful (cf #19058). However, the version must have three components
     # (X.Y.Z) on stable branches (e.g. ghc-9.2) to ensure that pre-releases are
@@ -22,7 +22,7 @@ AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.6.3], [glasgow-has
 AC_CONFIG_MACRO_DIRS([m4])
 
 # Set this to YES for a released version, otherwise NO
-: ${RELEASE=NO}
+: ${RELEASE=YES}
 
 # The primary version (e.g. 7.5, 7.4.1) is set in the AC_INIT line
 # above.  If this is not a released version, then we will append the
@@ -655,11 +655,17 @@ FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE1],[CONF_GCC_LINKER_OPTS_STAG
 FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE2],[CONF_GCC_LINKER_OPTS_STAGE2],[CONF_LD_LINKER_OPTS_STAGE2],[CONF_CPP_OPTS_STAGE2])
 # Stage 3 won't be supported by cross-compilation
 
+#-no_fixup_chains
 FP_LD_NO_FIXUP_CHAINS([target], [LDFLAGS])
 FP_LD_NO_FIXUP_CHAINS([build], [CONF_GCC_LINKER_OPTS_STAGE0])
 FP_LD_NO_FIXUP_CHAINS([target], [CONF_GCC_LINKER_OPTS_STAGE1])
 FP_LD_NO_FIXUP_CHAINS([target], [CONF_GCC_LINKER_OPTS_STAGE2])
 
+#-no_warn_duplicate_libraries
+FP_LD_NO_WARN_DUPLICATE_LIBRARIES([build], [CONF_GCC_LINKER_OPTS_STAGE0])
+FP_LD_NO_WARN_DUPLICATE_LIBRARIES([target], [CONF_GCC_LINKER_OPTS_STAGE1])
+FP_LD_NO_WARN_DUPLICATE_LIBRARIES([target], [CONF_GCC_LINKER_OPTS_STAGE2])
+
 GHC_LLVM_TARGET_SET_VAR
 # we intend to pass trough --targets to llvm as is.
 LLVMTarget_CPP=`    echo "$LlvmTarget"`


=====================================
distrib/configure.ac.in
=====================================
@@ -173,11 +173,17 @@ FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE1],[CONF_GCC_LINKER_OPTS_STAG
 # Stage 3 won't be supported by cross-compilation
 FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE2],[CONF_GCC_LINKER_OPTS_STAGE2],[CONF_LD_LINKER_OPTS_STAGE2],[CONF_CPP_OPTS_STAGE2])
 
+#-no_fixup_chains
 FP_LD_NO_FIXUP_CHAINS([target], [LDFLAGS])
 FP_LD_NO_FIXUP_CHAINS([build], [CONF_GCC_LINKER_OPTS_STAGE0])
 FP_LD_NO_FIXUP_CHAINS([target], [CONF_GCC_LINKER_OPTS_STAGE1])
 FP_LD_NO_FIXUP_CHAINS([target], [CONF_GCC_LINKER_OPTS_STAGE2])
 
+#-no_warn_duplicate_libraries
+FP_LD_NO_WARN_DUPLICATE_LIBRARIES([build], [CONF_GCC_LINKER_OPTS_STAGE0])
+FP_LD_NO_WARN_DUPLICATE_LIBRARIES([target], [CONF_GCC_LINKER_OPTS_STAGE1])
+FP_LD_NO_WARN_DUPLICATE_LIBRARIES([target], [CONF_GCC_LINKER_OPTS_STAGE2])
+
 AC_SUBST(CONF_CC_OPTS_STAGE0)
 AC_SUBST(CONF_CC_OPTS_STAGE1)
 AC_SUBST(CONF_CC_OPTS_STAGE2)


=====================================
docs/users_guide/9.6.4-notes.rst
=====================================
@@ -0,0 +1,123 @@
+.. _release-9-6-4:
+
+Version 9.6.4
+==============
+
+The significant changes to the various parts of the compiler are listed below.
+See the `migration guide
+<https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.6>`_ on the GHC Wiki
+for specific guidance on migrating programs to this release.
+
+The :ghc-flag:`LLVM backend <-fllvm>` of this release is to be used with LLVM
+11, 12, 13, 14 or 15.
+
+Significant Changes
+~~~~~~~~~~~~~~~~~~~~
+
+Issues fixed in this release include:
+
+Compiler
+--------
+
+- Fix a code generator bug on AArch64 platforms resulting in invalid conditional
+  jumps (:ghc-ticket:`23746`).
+- Fix a simplifier bug that may cause segfaults and core lint failures due to
+  incorrect handling of join points (:ghc-ticket:`23952`).
+- Ensure unconstrained instance dictionaries get IPE info (:ghc-ticket:`24005`).
+- Fix a bug where we could silently truncate 64 bit values to 32 bit on
+  32 bit architectures.
+- Fix a GHCi bug where a failure in the ``:add`` command would cause the
+  process to exit (:ghc-ticket:`24115`).
+- Fix a bug causing suboptimal error messages for certain invalid cyclic
+  module graphs with hs-boot files (:ghc-ticket:`24196`).
+- Fix a bug causing compiler panics with certain package databases involving
+  unusable units and module reexports (:ghc-ticket:`21097`, :ghc-ticket:`16996`,
+  :ghc-ticket:`11050`).
+- Fix some memory leaks in GHCi that manifest on reloads (:ghc-ticket:`24107`,
+  :ghc-ticket:`24118`).
+- Fix a bug leading to some template haskell splices failing on being reloaded
+  into GHCi due to not clearing the interactive context properly
+  (:ghc-ticket:`23405`).
+- Fix a type checker crash on certain programs involving implicitly scoped type
+  variables (:ghc-ticket:`24083`).
+- Fix a bug where certain warning flags were not recognised (:ghc-ticket:`24071`).
+- Fix an incorrect assertion in the simplifier (:ghc-ticket:`23862`).
+
+Runtime system
+--------------
+
+- Ensure concurrent thunk update is sound (:ghc-ticket:`23185`).
+- Ensure the ``listAllBlocks`` function takes the non-moving heap into account
+  (:ghc-ticket:`22627`).
+- Ensure the non-moving GC is not running when pausing
+- Fix some non-moving loops and bugs on Windows and LLP64 platforms
+  (:ghc-ticket:`23003`, :ghc-ticket:`24042`).
+- Fix a bug where certain programs could have incorrect async exception masking
+  (:ghc-ticket:`23513`).
+- Ensure we respect maximum event length and don't overflow into program
+  memory (:ghc-ticket:`24197`).
+
+Build system and packaging
+--------------------------
+
+- Ensure we use the right linker flags on AArch64 darwin (:ghc-ticket:`21712`,
+  :ghc-ticket:`24033`).
+- Fix a bug where ``-DNOSMP`` wasn't being passed to the C compiler even if the
+  target doesn't support SMP (:ghc-ticket:`24082`).
+
+Core libraries
+--------------
+
+- Fix a bug in ghc-bignum where usage of `bigNatIsPowerOf2` might result in
+  out of bounds access (:ghc-ticket:`24066`).
+- Bump ``base`` to 4.18.2.0
+- base:  Update to Unicode 15.1.0
+- Bump ``filepath`` to 1.4.200.1
+- Bump ``unix`` to 2.8.4.0
+- Bump ``haddock`` to 2.29.2
+
+Included libraries
+------------------
+
+The package database provided with this distribution also contains a number of
+packages other than GHC itself. See the changelogs provided with these packages
+for further change information.
+
+.. ghc-package-list::
+
+    libraries/array/array.cabal:             Dependency of ``ghc`` library
+    libraries/base/base.cabal:               Core library
+    libraries/binary/binary.cabal:           Dependency of ``ghc`` library
+    libraries/bytestring/bytestring.cabal:   Dependency of ``ghc`` library
+    libraries/Cabal/Cabal/Cabal.cabal:       Dependency of ``ghc-pkg`` utility
+    libraries/Cabal/Cabal-syntax/Cabal-syntax.cabal:  Dependency of ``ghc-pkg`` utility
+    libraries/containers/containers/containers.cabal: Dependency of ``ghc`` library
+    libraries/deepseq/deepseq.cabal:         Dependency of ``ghc`` library
+    libraries/directory/directory.cabal:     Dependency of ``ghc`` library
+    libraries/exceptions/exceptions.cabal:   Dependency of ``ghc`` and ``haskeline`` library
+    libraries/filepath/filepath.cabal:       Dependency of ``ghc`` library
+    compiler/ghc.cabal:                      The compiler itself
+    libraries/ghci/ghci.cabal:               The REPL interface
+    libraries/ghc-boot/ghc-boot.cabal:       Internal compiler library
+    libraries/ghc-boot-th/ghc-boot-th.cabal: Internal compiler library
+    libraries/ghc-compact/ghc-compact.cabal: Core library
+    libraries/ghc-heap/ghc-heap.cabal:       GHC heap-walking library
+    libraries/ghc-prim/ghc-prim.cabal:       Core library
+    libraries/haskeline/haskeline.cabal:     Dependency of ``ghci`` executable
+    libraries/hpc/hpc.cabal:                 Dependency of ``hpc`` executable
+    libraries/integer-gmp/integer-gmp.cabal: Core library
+    libraries/libiserv/libiserv.cabal:       Internal compiler library
+    libraries/mtl/mtl.cabal:                 Dependency of ``Cabal`` library
+    libraries/parsec/parsec.cabal:           Dependency of ``Cabal`` library
+    libraries/pretty/pretty.cabal:           Dependency of ``ghc`` library
+    libraries/process/process.cabal:         Dependency of ``ghc`` library
+    libraries/stm/stm.cabal:                 Dependency of ``haskeline`` library
+    libraries/template-haskell/template-haskell.cabal: Core library
+    libraries/terminfo/terminfo.cabal:       Dependency of ``haskeline`` library
+    libraries/text/text.cabal:               Dependency of ``Cabal`` library
+    libraries/time/time.cabal:               Dependency of ``ghc`` library
+    libraries/transformers/transformers.cabal: Dependency of ``ghc`` library
+    libraries/unix/unix.cabal:               Dependency of ``ghc`` library
+    libraries/Win32/Win32.cabal:             Dependency of ``ghc`` library
+    libraries/xhtml/xhtml.cabal:             Dependency of ``haddock`` executable
+


=====================================
docs/users_guide/release-notes.rst
=====================================
@@ -7,3 +7,4 @@ Release notes
    9.6.1-notes
    9.6.2-notes
    9.6.3-notes
+   9.6.4-notes


=====================================
m4/fp_ld_no_warn_duplicate_libraries.m4
=====================================
@@ -0,0 +1,29 @@
+# FP_LD_NO_WARN_DUPLICATE_LIBRARIES
+# ---------------------------------
+# XCode 15 introduced a new linker which warns on duplicate libraries being
+# linked. To disable this warning, we pass -Wl,-no_warn_duplicate_libraries as
+# suggested by Brad King in CMake issue #25297.
+#
+# This flag isn't necessarily available to other linkers on darwin, so we must
+# only configure it into the CC linker arguments if valid.
+#
+# $1 = the platform
+# $2 = the name of the linker flags variable when linking with $CC
+AC_DEFUN([FP_LD_NO_WARN_DUPLICATE_LIBRARIES], [
+    case $$1 in
+      *-darwin)
+      AC_MSG_CHECKING([whether the linker requires -no_warn_duplicate_libraries])
+      echo 'int main(void) {return 0;}' > conftest.c
+      if $CC -o conftest -Wl,-no_warn_duplicate_libraries conftest.c > /dev/null 2>&1
+      then
+          $2="$$2 -Wl,-no_warn_duplicate_libraries"
+          AC_MSG_RESULT([yes])
+      else
+          AC_MSG_RESULT([no])
+      fi
+      rm -f conftest.c conftest.o conftest
+      ;;
+
+    esac
+])
+



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/87c9851436246ac862ae1107232da0f28182c65f...f6ff2c25369402c44095572a020d6f924c5a8a3a

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/87c9851436246ac862ae1107232da0f28182c65f...f6ff2c25369402c44095572a020d6f924c5a8a3a
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20231218/3417850d/attachment-0001.html>


More information about the ghc-commits mailing list