[Git][ghc/ghc][wip/backports-9.0] 13 commits: Force argument in setIdMult (#18925)

Ben Gamari gitlab at gitlab.haskell.org
Mon Nov 30 00:16:25 UTC 2020



Ben Gamari pushed to branch wip/backports-9.0 at Glasgow Haskell Compiler / GHC


Commits:
4fb008d8 by Krzysztof Gogolewski at 2020-11-29T18:59:20-05:00
Force argument in setIdMult (#18925)

(cherry picked from commit 5506f1342e51bad71a7525ddad0650d1ac63afeb)

- - - - -
dd9989e8 by Moritz Angermann at 2020-11-29T19:06:22-05:00
AArch64/arm64 adjustments

This addes the necessary logic to support aarch64 on elf, as well
as aarch64 on mach-o, which Apple calls arm64.

We change architecture name to AArch64, which is the official arm
naming scheme.

(cherry picked from commit 8887102fc4ed8ed1089c1aafd19bab424ad706f3)

- - - - -
ca164a8e by Krzysztof Gogolewski at 2020-11-29T19:07:18-05:00
Export indexError from GHC.Ix (#18579)

(cherry picked from commit 165352a2d163537afb01a835bccc7cd0a667410a)

- - - - -
cdcd8293 by Ben Gamari at 2020-11-29T19:07:38-05:00
rts/linker: Align bssSize to page size when mapping symbol extras

We place symbol_extras right after bss. We also need
to ensure that symbol_extras can be mprotect'd independently from the
rest of the image. To ensure this we round up the size of bss to a page
boundary, thus ensuring that symbol_extras is also page-aligned.

(cherry picked from commit 9f40cf6ca9fb24dbc55f7eae43e2b89aa12bf251)

- - - - -
2aba0183 by Ben Gamari at 2020-11-29T19:07:54-05:00
testsuite: Add testcase for #18733

(cherry picked from commit 787e93ae141ae0f33bc36895494d48a2a5e49e08)

- - - - -
6676240e by Ben Gamari at 2020-11-29T19:09:25-05:00
compiler: Fix recompilation checking

In ticket #18733 we noticed a rather serious deficiency in the current
fingerprinting logic for recursive groups. I have described the old
fingerprinting story and its problems in Note [Fingerprinting recursive
groups] and have reworked the story accordingly to avoid these issues.

Fixes #18733.

(cherry picked from commit 5353fd500b1e92636cd9d45274585fd88a915ff6)

- - - - -
d0e54c32 by Ben Gamari at 2020-11-29T19:10:34-05:00
rts: Allocate MBlocks with MAP_TOP_DOWN on Windows

As noted in #18991, we would previously allocate heap in low memory.
Due to this the linker, which typically *needs* low memory, would end up
competing with the heap. In longer builds we end up running out of
low memory entirely, leading to linking failures.

(cherry picked from commit a1a75aa9be2c133dd1372a08eeb6a92c31688df7)

- - - - -
af791a80 by Ben Gamari at 2020-11-29T19:11:04-05:00
gitlab-ci: Run LLVM job on appropriately-labelled MRs

Namely, those marked with the ~"LLVM backend" label

(cherry picked from commit 7c03cc5010999d0f0f9dfc549984023b3a1f2c8d)

- - - - -
5ae9157f by Ben Gamari at 2020-11-29T19:13:52-05:00
rts/linker: Ensure that .rodata is aligned to 16 bytes

Pulled out of !4310.

- - - - -
87641e70 by Ömer Sinan Ağacan at 2020-11-29T19:15:55-05:00
Fix and enable object unloading in GHCi

Fixes #16525 by tracking dependencies between object file symbols and
marking symbol liveness during garbage collection

See Note [Object unloading] in CheckUnload.c for details.

(cherry picked from commit c34a4b98b1f09ea3096d39a839a86f2d7185c796)

- - - - -
b24ffb88 by Ray Shih at 2020-11-29T19:15:57-05:00
Add loadNativeObj and unloadNativeObj

(This change is originally written by niteria)

This adds two functions:
* `loadNativeObj`
* `unloadNativeObj`
and implements them for Linux.

They are useful if you want to load a shared object with Haskell code
using the system linker and have GHC call dlclose() after the
code is no longer referenced from the heap.

Using the system linker allows you to load the shared object
above outside the low-mem region. It also loads the DWARF sections
in a way that `perf` understands.

`dl_iterate_phdr` is what makes this implementation Linux specific.

(cherry picked from commit 2782487f5f6ad9df4dc8725226a47f07fec77f9f)

- - - - -
7294ba96 by GHC GitLab CI at 2020-11-29T19:15:58-05:00
rts: Introduce highMemDynamic

(cherry picked from commit 7a65f9e140906087273ce95f062775f18f6a708d)

- - - - -
d73edf58 by GHC GitLab CI at 2020-11-29T19:15:59-05:00
Introduce test for dynamic library unloading

This uses the highMemDynamic flag introduced earlier to verify that
dynamic objects are properly unloaded.

(cherry picked from commit e9e1b2e75de17be47ab887a26943f5517a8463ac)

- - - - -


30 changed files:

- .gitlab-ci.yml
- aclocal.m4
- compiler/GHC/CmmToAsm.hs
- compiler/GHC/CmmToAsm/Reg/Graph/TrivColorable.hs
- compiler/GHC/CmmToAsm/Reg/Linear.hs
- compiler/GHC/CmmToAsm/Reg/Linear/FreeRegs.hs
- compiler/GHC/CmmToAsm/Reg/Target.hs
- compiler/GHC/CmmToC.hs
- compiler/GHC/Driver/Pipeline.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/Iface/Recomp.hs
- compiler/GHC/Platform/ARM64.hs → compiler/GHC/Platform/AArch64.hs
- compiler/GHC/Platform/Regs.hs
- compiler/GHC/Runtime/Linker.hs
- compiler/GHC/Types/Var.hs
- compiler/ghc.cabal.in
- config.sub
- includes/CodeGen.Platform.hs
- includes/rts/Flags.h
- includes/rts/Linker.h
- includes/rts/storage/GC.h
- libraries/base/GHC/Ix.hs
- libraries/ghc-boot/GHC/Platform.hs
- libraries/ghci/GHCi/InfoTable.hsc
- llvm-targets
- rts/Adjustor.c
- rts/CheckUnload.c
- rts/CheckUnload.h
- rts/Hash.c
- rts/Hash.h


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/3aea3e8d8dd47ad16a5a4f607519d051a72c220d...d73edf587260b159c8c0121e7be1a9b4957b9b92

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/3aea3e8d8dd47ad16a5a4f607519d051a72c220d...d73edf587260b159c8c0121e7be1a9b4957b9b92
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/20201129/3a2bb234/attachment.html>


More information about the ghc-commits mailing list