Debian Patches

Status for ghc/9.6.6-4

Patch Description Author Forwarded Bugs Origin Last update
pr-13096 [PATCH] Cmm: don't perform unsound optimizations on 32-bit compiler hosts

- beef61351b240967b49169d27a9a19565cf3c4af enabled the use of
MO_Add/MO_Sub for 64-bit operations in the C and LLVM backends
- 6755d833af8c21bbad6585144b10e20ac4a0a1ab did the same for the x86 NCG
backend

However we store some literal values as `Int` in the compiler. As a
result, some Cmm optimizations transformed target 64-bit literals into
compiler `Int`. If the compiler is 32-bit, this leads to computing with
wrong literals (see #24893 and #24700).

This patch disables these Cmm optimizations for 32-bit compilers. This
is unsatisfying (optimizations shouldn't be compiler-word-size
dependent) but it fixes the bug and it makes the patch easy to backport.
A proper fix would be much more invasive but it shall be implemented in
the future.
Sylvain Henry <sylvain@haskus.fr> no 2024-08-01
ARM-VFPv3D16 Use VFPv3-D16 FPU for ARM builds Jani writes: The D16 part was Debian/Ubuntu specific, IIRC we define hardfloat
in that particular variant (16 double registers) or we had a different naming
for some reason.

===================================================================
Jani Monoses <jani@ubuntu.com> no
no-missing-haddock-file-warning Do not emit a warning if the .haddock file is missing As it is quite common on Debian installations to install the -dev package
without the -doc package.

===================================================================
Joachim Breitner <nomeata@debian.org> no
buildpath-abi-stability.patch Forwarded to https://ghc.haskell.org/trac/ghc/ticket/10424

===================================================================
no
allow-setting-llvm-program Allow setting path for LLC/OPT during configuration Patch configure.ac to allow us to modify the path for LLC/OPT during
configuration.

===================================================================
Ilias Tsitsimpis <iliastsi@debian.org> no
sparc-support =================================================================== no
hadrian-disable-threaded =================================================================== no
hadrian-enable-interpreter Enable GHCi on all platforms in Debian
===================================================================
Ilias Tsitsimpis <iliastsi@debian.org> yes upstream
use-modern-atomics commit f8fa1d08d7cbfef508bab355bda80f495e928f98

ghc-prim: Use C11 atomics

Previously `ghc-prim`'s atomic wrappers used the legacy `__sync_*`
family of C builtins. Here we refactor these to rather use the
appropriate C11 atomic equivalents, allowing us to be more explicit
about the expected ordering semantics.

===================================================================
Ben Gamari <bgamari.foss@gmail.com> no 2023-04-17
ppc64el-fix-clrri [PATCH] PPC NCG: Generate clear right insn at arch width
The clear right immediate (clrrxi) is only available in word and
doubleword width. Generate clrrxi instructions at architecture
width for all MachOp widths.

Fixes #24145
Peter Trommler <ptrommler@acm.org> no 2023-11-07
sparc64-cabal-support =================================================================== no
hurd-cabal-osstring https://github.com/haskell/cabal/pull/9434

===================================================================
no
hurd-cabal-supportrpaths https://github.com/haskell/cabal/pull/9441

===================================================================
no
hurd-getExecutablePath Also applies in 9.6.x
Can be dropped with 9.8.1

===================================================================
no
hurd-hadrian-osstring https://gitlab.haskell.org/ghc/ghc/-/merge_requests/11624

===================================================================
no
hurd-hadrian-supportrpaths Can be dropped with 9.8.1

===================================================================
no
time_t-time [PATCH] Use capi for syscalls that break under musl's handling of 64-bit time_t Marios Titas <redneb@gmx.com> no 2022-10-02
llvm-new-pass-manager commit 77db84aba1ba00f6d146e9107b24c6203798e796

llvmGen: Adapt to allow use of new pass manager.

We now must use `-passes` in place of `-O<n>` due to #21936.

Closes #21936.

===================================================================
Ben Gamari <bgamari.foss@gmail.com> no 2024-01-31
llvm-newer-version [PATCH] Bump max LLVM version to 19 (not inclusive) Olivier Benz <olivier.benz@b-data.ch> no 2024-05-25
hadrian-plans Add more hadrian bootstrap plans Hadrian only contains bootstrap plans for previous GHC versions. Add plans for
the current version as well, since we may want to bootstrap hadrian with a
cross-compiled GHC that is of the same version as the GHC we are building here.

===================================================================
Ilias Tsitsimpis <iliastsi@debian.org> no
alpha-fix-ieee_set_fp_control-invocation.patch [PATCH] rts: Fix invocation of __ieee_set_fp_control() on alpha-linux
Fixes the following error when building GHC on alpha-linux:

rts/posix/Signals.c: In function ‘initDefaultHandlers’:

rts/posix/Signals.c:709:5: error:
error: implicit declaration of function ‘ieee_set_fp_control’ [-Wimplicit-function-declaration]
709 | ieee_set_fp_control(0);
| ^~~~~~~~~~~~~~~~~~~
|
709 | ieee_set_fp_control(0);
|
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> no 2024-10-03
0001-llvmGen-Add-export-list-to-GHC.Llvm.MetaData.patch [PATCH] llvmGen: Add export list to GHC.Llvm.MetaData Ben Gamari <ben@smart-cactus.org> no https://github.com/ghc/ghc/commit/e8b4aac437b2620d93546a57eb5818f317a4549e 2023-08-22
0002-llvmGen-Allow-LlvmLits-in-MetaExprs.patch [PATCH] llvmGen: Allow LlvmLits in MetaExprs Wang Xin <wangxin03@loongson.cn> no https://github.com/ghc/ghc/commit/5880fff6d353a14785c457999fded5a7100c9514 2024-12-13
0003-llvmGen-Introduce-infrastructure-for-module-flag-metadata.patch [PATCH] llvmGen: Introduce infrastructure for module flag metadata Ben Gamari <ben@smart-cactus.org> no https://github.com/ghc/ghc/commit/a6a3874276ced1b037365c059dcd0a758e813a5b 2023-08-22
0004-llvmGen-Pass-mcmodel-medium-option-to-LLVM-backend-on-LoongArch.patch [PATCH] llvmGen: Pass mcmodel medium option to LLVM backend on LoongArch Xin Wang <wangxin03@loongson.cn> no 2024-12-13
x32-use-native-x86_64-insn.patch Use native x86_64 instructions on x32 This patch enables a few native 64-bit integer instructions
on x32 which are available on this architecture despite using
32-bit pointers. These instructions are present on x86_64 but
not on x86 and ghc checks the size of (void *) to determine
that. This method fails on x32 since despite using 32-bit
pointers and hence sizeof(void *) == 4, it still uses the
full x86_64 instruction set and software-emulated variants
of the aforementioned 64-bit integer instructions are
therefore not present in the toolchain which will make ghc
fail to build on x32.
See: https://ghc.haskell.org/trac/ghc/ticket/11571
.

===================================================================
no
kfreebsd-aclocal.m4 Add kfreebsdgnu to GHC_CONVERT_OS in aclocal.m4
===================================================================
Svante Signell <svante.signell@gmail.com> no debian
local-mathjax =================================================================== no
haddock-remove-googleapis-fonts Remove hard-coded googleapis font URL
===================================================================
yes debian upstream
fix-llvm-armel Fix LLVM error on armel GHC 8.10 fails to build on armel with the following error:

LLVM ERROR: unable to allocate function argument #8
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0. Program arguments: llc-12 -O2 -enable-tbaa -relocation-model=pic -mcpu=arm7tdmi -mattr=+soft-float,-vfp2,-vfp2sp,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-fp16,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fullfp16,-fp64,-d32,-neon,-crypto,-dotprod,-fp16fml,-bf16,-mve,-mve.fp,-fpregs,+strict-align /tmp/ghc5537_0/ghc_6.bc -o /tmp/ghc5537_0/ghc_7.lm_s
1. Running pass 'Function Pass Manager' on module '/tmp/ghc20177_0/ghc_6.bc'.
2. Running pass 'ARM Instruction Selection' on function '@"stg_gc_f1$def"'
`llc-12' failed in phase `LLVM Compiler'. (Exit code: -6)
make[3]: *** [rts/ghc.mk:325: rts/dist/build/HeapStackCheck.o] Error 1

Surprisingly, reverting commit 4540bbe2811e860f35de6e67ab2f0040592fd3a5 fixes
thie error.
===================================================================
Ilias Tsitsimpis <iliastsi@debian.org> yes upstream
use-unbundled-sphinx-rtd-theme =================================================================== no
hadrian-haddock-opts Pass 'mathjax' to Haddock Hadrian currently doesn't allow us to modify Haddock options, so
patch Hadrian to manually pass the 'mathjax' option.

===================================================================
Ilias Tsitsimpis <iliastsi@debian.org> yes upstream
hadrian-relpath Use realpath instead of custom script Use realpath instead of the custom script, which is broken. As an example,
.
$ ./mk/relpath.sh /usr/lib/ghc/lib /usr/lib/ghc-doc
..-doc
$ realpath --relative-to=/usr/lib/ghc/lib /usr/lib/ghc-doc
../../ghc-doc

===================================================================
Ilias Tsitsimpis <iliastsi@debian.org> no
hadrian-iserv Fix installation patch for iserv/unlit
===================================================================
Ilias Tsitsimpis <iliastsi@debian.org> yes upstream

All known versions for source package 'ghc'

Links