Accepting request 1231410 from devel:languages:haskell

version update for ghc-9.10.1

OBS-URL: https://build.opensuse.org/request/show/1231410
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ghc?expand=0&rev=110
This commit is contained in:
Dominique Leuenberger 2024-12-20 22:10:00 +00:00 committed by Git OBS Bridge
commit 2dbc0af71f
13 changed files with 6468 additions and 143 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3de754bb3e45d4b3980ed238781cfd808f4e7c84ceae73213662f1bf5ea2d8fa
size 1526663

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2b8e6fae1aa500de67fcc88aa6fe49690f0dd5c87f6710592db4cda54c8086f7
size 1446589

View File

@ -1,41 +0,0 @@
Index: ghc-9.4.5/libraries/Cabal/Cabal-syntax/src/Distribution/System.hs
===================================================================
--- ghc-9.4.5.orig/libraries/Cabal/Cabal-syntax/src/Distribution/System.hs
+++ ghc-9.4.5/libraries/Cabal/Cabal-syntax/src/Distribution/System.hs
@@ -159,7 +159,7 @@ buildOS = classifyOS Permissive System.I
-- | These are the known Arches: I386, X86_64, PPC, PPC64, Sparc,
-- Arm, AArch64, Mips, SH, IA64, S390, S390X, Alpha, Hppa, Rs6000,
--- M68k, Vax, JavaScript and Wasm32.
+-- M68k, Vax, RISCV64, JavaScript and Wasm32.
--
-- The following aliases can also be used:
-- * PPC alias: powerpc
@@ -174,6 +174,7 @@ data Arch = I386 | X86_64 | PPC | PPC
| IA64 | S390 | S390X
| Alpha | Hppa | Rs6000
| M68k | Vax
+ | RISCV64
| JavaScript
| Wasm32
| OtherArch String
@@ -189,6 +190,7 @@ knownArches = [I386, X86_64, PPC, PPC64,
,IA64, S390, S390X
,Alpha, Hppa, Rs6000
,M68k, Vax
+ ,RISCV64
,JavaScript
,Wasm32]
Index: ghc-9.4.5/libraries/Cabal/Cabal/src/Distribution/Simple/PreProcess.hs
===================================================================
--- ghc-9.4.5.orig/libraries/Cabal/Cabal/src/Distribution/Simple/PreProcess.hs
+++ ghc-9.4.5/libraries/Cabal/Cabal/src/Distribution/Simple/PreProcess.hs
@@ -729,6 +729,7 @@ platformDefines lbi =
Rs6000 -> ["rs6000"]
M68k -> ["m68k"]
Vax -> ["vax"]
+ RISCV64 -> ["riscv64"]
JavaScript -> ["javascript"]
Wasm32 -> ["wasm32"]
OtherArch _ -> []

3
ghc-9.10.1-src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bf386a302d4ee054791ffd51748900f15d71760fd199157922d120cc1f89e2f7
size 32828552

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:99e40d729ec8831a633b75fd85d65dd10e31a0133dec9d198d686a273679ab70
size 32565948

View File

@ -1,14 +1,18 @@
Index: ghc-9.2.0.20210331/libraries/Cabal/Cabal/src/Distribution/Simple/Install.hs
Index: ghc-9.10.1/libraries/Cabal/Cabal/src/Distribution/Simple/Install.hs
===================================================================
--- ghc-9.2.0.20210331.orig/libraries/Cabal/Cabal/src/Distribution/Simple/Install.hs
+++ ghc-9.2.0.20210331/libraries/Cabal/Cabal/src/Distribution/Simple/Install.hs
@@ -206,8 +206,7 @@ copyComponent verbosity pkg_descr lbi (C
++ " in " ++ binPref)
inPath <- isInSearchPath binPref
when (not inPath) $
- warn verbosity ("The directory " ++ binPref
- ++ " is not in the system search path.")
+ warn verbosity ("Executable installed in " ++ binPref)
case compilerFlavor (compiler lbi) of
GHC -> GHC.installExe verbosity lbi binPref buildPref progFix pkg_descr exe
GHCJS -> GHCJS.installExe verbosity lbi binPref buildPref progFix pkg_descr exe
--- ghc-9.10.1.orig/libraries/Cabal/Cabal/src/Distribution/Simple/Install.hs
+++ ghc-9.10.1/libraries/Cabal/Cabal/src/Distribution/Simple/Install.hs
@@ -261,12 +261,7 @@ copyComponent verbosity pkg_descr lbi (C
)
inPath <- isInSearchPath binPref
when (not inPath) $
- warn
- verbosity
- ( "The directory "
- ++ binPref
- ++ " is not in the system search path."
- )
+ warn verbosity ("Executable installed in " ++ binPref)
case compilerFlavor (compiler lbi) of
GHC -> GHC.installExe verbosity lbi binPref buildPref progFix pkg_descr exe
GHCJS -> GHCJS.installExe verbosity lbi binPref buildPref progFix pkg_descr exe

View File

@ -1,14 +0,0 @@
Index: ghc-9.4.5/hadrian/src/Oracles/Setting.hs
===================================================================
--- ghc-9.4.5.orig/hadrian/src/Oracles/Setting.hs
+++ ghc-9.4.5/hadrian/src/Oracles/Setting.hs
@@ -292,7 +292,8 @@ ghcWithInterpreter = do
, "darwin", "kfreebsdgnu" ]
goodArch <- anyTargetArch [ "i386", "x86_64", "powerpc"
, "arm", "aarch64", "s390x"
- , "powerpc64", "powerpc64le" ]
+ , "powerpc64", "powerpc64le"
+ , "riscv64" ]
return $ goodOs && goodArch
-- | Variants of the ARM architecture.

View File

@ -1,3 +1,26 @@
-------------------------------------------------------------------
Mon Nov 25 14:46:09 UTC 2024 - Andreas Schwab <schwab@suse.de>
- riscv64-ncg.patch: Backport of MR 13105, NCG for RISCV64
- Don't require on llvm on riscv64
-------------------------------------------------------------------
Fri Nov 22 14:54:22 UTC 2024 - Ondřej Súkup <mimi.vx@gmail.com>
- Update to version 9.10.1. The change log for this release is at:
https://downloads.haskell.org/~ghc/9.10.1/docs/users_guide/9.10.1-notes.html
- use ghc-bootstrap 9.8.2
- enable numa on all architectures
- cleanup dead parts of specfile
- patch changes:
* added:
- hadrian-9.10-deps.patch
- os-string-be.patch
- ppc64le-miscompilation.patch
* dropped:
- cabal-riscv64.patch
- ghc-with-interpreter.patch
-------------------------------------------------------------------
Mon Oct 21 10:36:19 UTC 2024 - Ondřej Súkup <mimi.vx@gmail.com>

150
ghc.spec
View File

@ -1,7 +1,7 @@
#
# spec file for package ghc
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -11,31 +11,19 @@
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define full_version 9.10.1
%define short_version 9.10.1
%define full_version 9.8.3
%define short_version 9.8.3
%ifnarch s390x
%define with_libnuma 1
%else
%define with_libnuma 0
%endif
%global llvm_major 14
%global llvm_major 15
# conditionals
# disable prof, docs, perf build
# bcond_with for production builds: disable quick build
%bcond_with quickbuild
# make sure ghc libraries' ABI hashes unchanged (ghcX.Y not supported yet)
%bcond_with abicheck
# bcond_without for production builds: use Hadrian buildsystem
%bcond_without hadrian
@ -70,14 +58,15 @@
%{?with_haddock:%bcond_without manual}
%endif
%global ghc_llvm_archs s390x riscv64
%global ghc_llvm_archs s390x
%global ghc_unregisterized_arches noarch
%global base_ver 4.19.2.0
%global base_ver 4.20.0.0
%global ghc_compact_ver 0.1.0.0
%global hpc_ver 0.7.0.0
%global hpc_ver 0.7.0.1
%global hsc2hs_ver 0.68.8
%global ghc_bignum_ver 1.3
%global xhtml_ver 3000.2.2.1
Name: ghc
Version: %{short_version}
@ -87,24 +76,31 @@ License: BSD-3-Clause
URL: https://www.haskell.org/ghc/
Source: https://downloads.haskell.org/~ghc/%{full_version}/ghc-%{version}-src.tar.xz
Source2: ghc-rpmlintrc
Source4: 9_4_4-bootstrap-sources.tar.gz
Source4: 9_8_2-bootstrap-sources.tar.gz
Source5: ghc-pkg.man
Source6: haddock.man
Source7: runghc.man
Patch1: ghc-gen_contents_index-haddock-path.patch
# https://ghc.haskell.org/trac/ghc/ticket/15689
Patch2: ghc-Cabal-install-PATH-warning.patch
# PATCH-FIX-UPSTREAM Disable-unboxed-arrays.patch ptrommler@icloud.com -- Do not use unboxed arrays on big-endian platforms. See Haskell Trac #15411.
Patch3: Disable-unboxed-arrays.patch
# PATCH-FIX-UPSTREAM Hadrian: enable GHCi support on riscv64 (dd38aca95a)
Patch100: ghc-with-interpreter.patch
# PATCH-FIX-UPSTREAM libraries/Cabal: Add support for the 64-bit RISC-V architecture (d89526f98)
Patch101: cabal-riscv64.patch
Patch5: ppc64le-miscompilation.patch
Patch100: os-string-be.patch
Patch200: ghc-hadrian-s390x-rts--qg.patch
Patch300: hadrian-9.10-deps.patch
# Backport of MR 13105 (NCG for RISCV64)
Patch243: riscv64-ncg.patch
BuildRequires: binutils-devel
BuildRequires: gcc-PIE
BuildRequires: gcc-c++
BuildRequires: ghc-bootstrap >= 9.4
BuildRequires: ghc-bootstrap >= 9.8
BuildRequires: ghc-bootstrap-helpers >= 1.3
BuildRequires: ghc-rpm-macros-extra => 2.6.1
BuildRequires: glibc-devel
@ -112,6 +108,7 @@ BuildRequires: gmp-devel
BuildRequires: libdw-devel
BuildRequires: libelf-devel
BuildRequires: libffi-devel
BuildRequires: libdwarf-devel
BuildRequires: libtool
%ifarch %{ghc_llvm_archs}
BuildRequires: clang%{llvm_major}
@ -138,9 +135,7 @@ Recommends: %{name}-compiler-default = %{version}-%{release}
%if %{with manual}
BuildRequires: python3-Sphinx
%endif
%if %{with_libnuma}
BuildRequires: libnuma-devel
%endif
%if %{with haddock}
Suggests: %{name}-doc = %{version}-%{release}
Suggests: %{name}-doc-index = %{version}-%{release}
@ -172,11 +167,11 @@ Haskell home page at <http://www.haskell.org/>.
%package compiler
Summary: GHC compiler and utilities
License: BSD-3-Clause
Requires: %{name}-filesystem = %{version}-%{release}
Requires: gcc
Requires: ghc-base-devel = %{base_ver}-%{release}
Requires: %{name}-filesystem = %{version}-%{release}
Provides: hsc2hs = %{hsc2hs_ver}-%{release}
%ifarch riscv64 s390x
%ifarch %{ghc_llvm_archs}
Requires: clang%{llvm_major}
Requires: llvm%{llvm_major}
%endif
@ -216,6 +211,7 @@ This package provides some common directories used for
Haskell libraries documentation.
%endif
%if %{with manual}
%package manual
Summary: GHC manual
@ -227,48 +223,51 @@ BuildArch: noarch
This package provides the User Guide and Haddock manual.
%endif
%global ghc_version_override %{version}
%global ghc_pkg_c_deps ghc-compiler = %{ghc_version_override}-%{release}
%global version %{ghc_version_override}
%if %{with_libnuma}
%define libnuma_dep ,libnuma-devel
%else
%define libnuma_dep %{nil}
%endif
#!ForceMultiversion
%ghc_lib_subpackage -d Cabal-3.10.3.0
%ghc_lib_subpackage -d Cabal-syntax-3.10.3.0
%ghc_lib_subpackage -d array-0.5.8.0
%ghc_lib_subpackage -d -c gmp-devel,libffi-devel,libdw-devel,libelf-devel%{libnuma_dep} base-%{base_ver}
%ghc_lib_subpackage -d binary-0.8.9.1
%ghc_lib_subpackage -d -x ghc-bignum-%{ghc_bignum_ver}
%ghc_lib_subpackage -d Cabal-3.12.0.0
%ghc_lib_subpackage -d Cabal-syntax-3.12.0.0
%ghc_lib_subpackage -d array-0.5.7.0
%ghc_lib_subpackage -d -c gmp-devel,libffi-devel,libdw-devel,libelf-devel,libnuma-devel base-%{base_ver}
%ghc_lib_subpackage -d binary-0.8.9.2
%ghc_lib_subpackage -d bytestring-0.12.1.0
%ghc_lib_subpackage -d containers-0.6.8
%ghc_lib_subpackage -d deepseq-1.5.1.0
%ghc_lib_subpackage -d directory-1.3.8.5
%ghc_lib_subpackage -d containers-0.7
%ghc_lib_subpackage -d deepseq-1.5.0.0
%ghc_lib_subpackage -d directory-1.3.8.3
%ghc_lib_subpackage -d exceptions-0.10.7
%ghc_lib_subpackage -d filepath-1.4.200.1
%ghc_lib_subpackage -d filepath-1.5.2.0
%ghc_lib_subpackage -d -x ghc-%{ghc_version_override}
%ghc_lib_subpackage -d -x ghc-bignum-%{ghc_bignum_ver}
%ghc_lib_subpackage -d -x ghc-boot-%{ghc_version_override}
%ghc_lib_subpackage -d ghc-boot-th-%{ghc_version_override}
%ghc_lib_subpackage -d -x ghc-compact-%{ghc_compact_ver}
%ghc_lib_subpackage -d ghc-experimental-0.1.0.0
%ghc_lib_subpackage -d -x ghc-heap-%{ghc_version_override}
%ghc_lib_subpackage -d ghc-internal-9.1001.0
%ghc_lib_subpackage -d -x ghci-%{ghc_version_override}
%ghc_lib_subpackage -d haskeline-0.8.2.1
%ghc_lib_subpackage -d -x hpc-%{hpc_ver}
%ghc_lib_subpackage -d mtl-2.3.1
%ghc_lib_subpackage -d parsec-3.1.17.0
%ghc_lib_subpackage -d pretty-1.1.3.6
%ghc_lib_subpackage -d process-1.6.25.0
%ghc_lib_subpackage -d semaphore-compat-1.0.0
%ghc_lib_subpackage -d process-1.6.19.0
%ghc_lib_subpackage -d stm-2.5.3.1
%ghc_lib_subpackage -d template-haskell-2.21.0.0
%ghc_lib_subpackage -d semaphore-compat-1.0.0
%ghc_lib_subpackage -d template-haskell-2.22.0.0
%ghc_lib_subpackage -d -c ncurses-devel terminfo-0.4.1.6
%ghc_lib_subpackage -d text-2.1.1
%ghc_lib_subpackage -d time-1.12.2
%ghc_lib_subpackage -d transformers-0.6.1.0
%ghc_lib_subpackage -d unix-2.8.4.0
%ghc_lib_subpackage -d xhtml-3000.2.2.1
%ghc_lib_subpackage -d transformers-0.6.1.1
%ghc_lib_subpackage -d unix-2.8.5.1
%ghc_lib_subpackage -d xhtml-%{xhtml_ver}
# new in 9.10
%ghc_lib_subpackage -d os-string-2.0.2
%ghc_lib_subpackage -d ghc-toolchain-0.1.0.0
%ghc_lib_subpackage -d ghc-platform-0.1.0.0
%global version %{ghc_version_override}
@ -301,17 +300,24 @@ Installing this package causes %{name}-*-prof packages corresponding to
%ifarch s390x
%patch -P 3 -p1
%endif
%patch -P 5 -p1
%patch -P 100 -p1
%patch -P 101 -p1
%ifarch ppc64le s390x riscv64
%patch -P 200 -p1
%endif
%patch -P 300 -p1
%patch -P 243 -p1
rm libffi-tarballs/libffi-*.tar.gz
%build
cp %{SOURCE4} ./
hadrian/bootstrap/bootstrap.py --bootstrap-sources 9_4_4-bootstrap-sources.tar.gz
hadrian/bootstrap/bootstrap.py --bootstrap-sources 9_8_2-bootstrap-sources.tar.gz
%global hadrian _build/bin/hadrian
@ -352,7 +358,7 @@ python3 boot.source --hadrian
%endif
%global jobs_nr %{?_smp_mflags}
%else
%global jobs_nr -j1
%global jobs_nr -j1
%endif
%{hadrian} %{jobs_nr} --flavour=%{?with_quickbuild:quick+no_profiled_libs}%{!?with_quickbuild:perf%{!?with_ghc_prof:+no_profiled_libs}}%{?hadrian_llvm} %{hadrian_docs} binary-dist-dir --hash-unit-ids
@ -371,21 +377,25 @@ for i in $(find %{buildroot} -type f -executable -exec sh -c "file {} | grep -q
chrpath -d $i
done
%if %{with haddock}
# remove short hashes
for d in %{buildroot}%{ghc_html_libraries_dir}/*/; do
mv $d $(echo $d | sed -e "s/\(.*\)-.*/\\1/")
done
%endif
# containers src moved to a subdir
cp -p libraries/containers/containers/LICENSE libraries/containers/LICENSE
# hack for Cabal-syntax/LICENSE
mkdir -p libraries/Cabal-syntax
cp -p libraries/Cabal/Cabal-syntax/LICENSE libraries/Cabal-syntax
# hack for ghc-toolchain
mkdir -p libraries/ghc-toolchain
cp -p LICENSE libraries/ghc-toolchain
rm -f %{name}-*.files
# FIXME replace with ghc_subpackages_list
for i in %{ghc_packages_list}; do
name=$(echo $i | sed -e "s/\(.*\)-.*/\1/")
@ -397,8 +407,8 @@ done
echo "%%dir %{ghclibdir}" >> %{name}-base%{?_ghcdynlibdir:-devel}.files
%ghc_gen_filelists ghc %{ghc_version_override}
%ghc_gen_filelists ghc-boot %{ghc_version_override}
%ghc_gen_filelists ghc-bignum %{ghc_bignum_ver}
%ghc_gen_filelists ghc-boot %{ghc_version_override}
%ghc_gen_filelists ghc-compact %{ghc_compact_ver}
%ghc_gen_filelists ghc-heap %{ghc_version_override}
%ghc_gen_filelists ghci %{ghc_version_override}
@ -423,13 +433,13 @@ fi
%if %{with ghc_prof}
ls %{buildroot}%{ghclibdir}/bin/ghc-iserv-prof* >> %{name}-base-prof.files
ls %{buildroot}%{ghclibdir}/lib/bin/ghc-iserv-prof >> %{name}-base-prof.files
echo "%%dir %{ghcliblib}/bin"
%endif
sed -i -e "s|^%{buildroot}||g" %{name}-base*.files
sed -i -e "s|%{buildroot}||g" %{buildroot}%{_bindir}/*
%if %{with haddock}
rm %{buildroot}%{_docdir}/ghc-%{version}/archives/libraries.html.tar.xz
%endif
@ -438,25 +448,27 @@ rm %{buildroot}%{_docdir}/ghc-%{version}/archives/Haddock.html.tar.xz
rm %{buildroot}%{_docdir}/ghc-%{version}/archives/users_guide.html.tar.xz
%endif
mkdir -p %{buildroot}%{_mandir}/man1
install -p -m 0644 %{SOURCE5} %{buildroot}%{_mandir}/man1/ghc-pkg.1
install -p -m 0644 %{SOURCE6} %{buildroot}%{_mandir}/man1/haddock.1
install -p -m 0644 %{SOURCE7} %{buildroot}%{_mandir}/man1/runghc.1
rm %{buildroot}%{ghclibdir}/lib/package.conf.d/.stamp
rm %{buildroot}%{ghclibdir}/lib/package.conf.d/*.conf.copy
# https://gitlab.haskell.org/ghc/ghc/-/issues/24121
rm %{buildroot}%{ghclibdir}/share/doc/%{ghcplatform}/*/LICENSE
(
cd %{buildroot}%{ghclibdir}/lib/bin
for i in *; do
if [ -f %{buildroot}%{ghclibdir}/bin/$i ]; then
ln -sf ../../bin/$i
fi
done
)
#(
#cd %{buildroot}%{ghclibdir}/lib/bin
#for i in *; do
# if [ -f %{buildroot}%{ghclibdir}/bin/$i ]; then
# ln -sf ../../bin/$i
# fi
#done
#)
%check
# Actually, I took this from Jens Petersen's Fedora package
@ -518,17 +530,18 @@ $GHC --info
%dir %{ghcliblib}
%dir %{ghcliblib}/%{ghcplatform}
%dir %{ghclibdir}/bin
%dir %{ghcliblib}/bin
%{ghclibdir}/bin/ghc
%{ghclibdir}/bin/ghc-iserv
%{ghclibdir}/bin/ghc-iserv-dyn
%{ghclibdir}/bin/ghc-pkg
%{ghclibdir}/bin/ghc-toolchain-bin
%{ghclibdir}/bin/hpc
%{ghclibdir}/bin/hsc2hs
%{ghclibdir}/bin/runghc
%{ghclibdir}/bin/hp2ps
%{ghclibdir}/bin/unlit
%{ghclibdir}/bin/ghc-%{version}
%{ghclibdir}/bin/ghc-toolchain-bin-ghc-%{version}
%{ghclibdir}/bin/ghc-iserv-ghc-%{version}
%{ghclibdir}/bin/ghc-iserv-dyn-ghc-%{version}
%{ghclibdir}/bin/ghc-pkg-%{version}
@ -541,14 +554,13 @@ $GHC --info
%{ghclibdir}/bin/runhaskell
%{ghclibdir}/bin/runhaskell-%{version}
%{ghclibdir}/bin/unlit-ghc-%{version}
%{ghclibdir}/lib/bin/ghc-iserv
%{ghclibdir}/lib/bin/ghc-iserv-dyn
%{ghclibdir}/lib/bin/unlit
%{ghcliblib}/ghc-interp.js
%{ghcliblib}/ghc-usage.txt
%{ghcliblib}/ghci-usage.txt
%{ghcliblib}/llvm-passes
%{ghcliblib}/llvm-targets
%{ghcliblib}/post-link.mjs
%{ghcliblib}/prelude.js
%dir %{ghcliblib}/package.conf.d
%ghost %{ghcliblib}/package.conf.d/package.cache
%{ghcliblib}/package.conf.d/package.cache.lock

74
hadrian-9.10-deps.patch Normal file
View File

@ -0,0 +1,74 @@
--- ghc-9.10.0.20240313/hadrian/hadrian.cabal.orig 2024-03-13 21:23:13.000000000 +0800
+++ ghc-9.10.0.20240313/hadrian/hadrian.cabal 2024-03-14 21:53:00.180444498 +0800
@@ -36,6 +36,8 @@
main-is: Main.hs
hs-source-dirs: .
, src
+ , ../libraries/ghc-platform/src
+ , ../utils/ghc-toolchain/src
other-modules: Base
, Builder
, CommandLine
@@ -152,6 +154,7 @@
, directory >= 1.3.1.0 && < 1.4
, extra >= 1.4.7
, filepath
+ , process
, time
, mtl >= 2.2 && < 2.4
, parsec >= 3.1 && < 3.2
@@ -168,8 +171,6 @@
, text >= 1.2 && < 3
, cryptohash-sha256 >= 0.11 && < 0.12
, base16-bytestring >= 0.1.1 && < 1.1.0.0
- , ghc-platform
- , ghc-toolchain
ghc-options: -Wall
-Wincomplete-record-updates
-Wredundant-constraints
--- ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Program.hs.orig 2024-03-13 21:23:14.000000000 +0800
+++ ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Program.hs 2024-03-14 22:06:00.298622371 +0800
@@ -1,3 +1,5 @@
+{-# LANGUAGE NoImplicitPrelude #-}
+
module GHC.Toolchain.Program
( Program(..)
, shProgram
--- ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/Cc.hs~ 2024-03-13 21:23:14.000000000 +0800
+++ ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/Cc.hs 2024-03-14 22:06:23.356740644 +0800
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE ViewPatterns #-}
diff -up ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/Ar.hs~ ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/Ar.hs
--- ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/Ar.hs~ 2024-03-13 21:23:14.000000000 +0800
+++ ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/Ar.hs 2024-03-14 22:09:48.872794751 +0800
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE RecordWildCards #-}
diff -up ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/Cpp.hs~ ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/Cpp.hs
--- ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/Cpp.hs~ 2024-03-13 21:23:14.000000000 +0800
+++ ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/Cpp.hs 2024-03-14 22:10:18.872948622 +0800
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE NamedFieldPuns #-}
module GHC.Toolchain.Tools.Cpp (HsCpp(..), findHsCpp, Cpp(..), findCpp) where
diff -up ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/Link.hs~ ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/Link.hs
--- ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/Link.hs~ 2024-03-13 21:23:14.000000000 +0800
+++ ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/Link.hs 2024-03-14 22:10:12.954918270 +0800
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -Wno-name-shadowing #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE RecordWildCards #-}
--- ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/MergeObjs.hs~ 2024-03-13 21:23:14.000000000 +0800
+++ ghc-9.10.0.20240313/utils/ghc-toolchain/src/GHC/Toolchain/Tools/MergeObjs.hs 2024-03-14 22:13:08.399807784 +0800
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE CPP #-}

25
os-string-be.patch Normal file
View File

@ -0,0 +1,25 @@
From bafe87d871399b58ce4a50592b980c990a3eac39 Mon Sep 17 00:00:00 2001
From: Bodigrim <andrew.lelechenko@gmail.com>
Date: Thu, 9 May 2024 01:02:44 +0100
Subject: [PATCH] Fix compilation on big-endian arches
---
libraries/os-string/System/OsString/Data/ByteString/Short/Internal.hs | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libraries/os-string/System/OsString/Data/ByteString/Short/Internal.hs b/libraries/os-string/System/OsString/Data/ByteString/Short/Internal.hs
index fedc199..f7ddcd8 100644
--- a/libraries/os-string/System/OsString/Data/ByteString/Short/Internal.hs
+++ b/libraries/os-string/System/OsString/Data/ByteString/Short/Internal.hs
@@ -311,7 +311,11 @@ word16ToLE#, word16FromLE# :: Word16# -> Word16#
word16ToLE#, word16FromLE# :: Word# -> Word#
#endif
#ifdef WORDS_BIGENDIAN
+#if MIN_VERSION_base(4,16,0)
+word16ToLE# w = wordToWord16# (byteSwap16# (word16ToWord# w))
+#else
word16ToLE# = byteSwap16#
+#endif
#else
word16ToLE# w# = w#
#endif

View File

@ -0,0 +1,25 @@
From 3f128c7d6c145985e3e12fda173e7e9a5a9c03f7 Mon Sep 17 00:00:00 2001
From: Peter Trommler <ptrommler@acm.org>
Date: Sat, 15 Jun 2024 08:55:30 +0200
Subject: [PATCH 4/4] PPC NCG: Fix sign hints in C calls
---
compiler/GHC/CmmToAsm/PPC/CodeGen.hs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/compiler/GHC/CmmToAsm/PPC/CodeGen.hs b/compiler/GHC/CmmToAsm/PPC/CodeGen.hs
index cca47f7bac2..060bd7159eb 100644
--- a/compiler/GHC/CmmToAsm/PPC/CodeGen.hs
+++ b/compiler/GHC/CmmToAsm/PPC/CodeGen.hs
@@ -1770,7 +1770,7 @@ genCCall' config gcp target dest_regs args
_ -> panic "genCall': unknown calling conv."
argReps = map (cmmExprType platform) args
- (argHints, _) = foreignTargetHints target
+ (_, argHints) = foreignTargetHints target
roundTo a x | x `mod` a == 0 = x
| otherwise = x + a - (x `mod` a)
--
GitLab

6217
riscv64-ncg.patch Normal file

File diff suppressed because it is too large Load Diff