[Git][ghc/ghc][ghc-9.4] 25 commits: configure: Use AC_PATH_TOOL to detect tools

Zubin (@wz1000) gitlab at gitlab.haskell.org
Wed Nov 8 03:54:24 UTC 2023



Zubin pushed to branch ghc-9.4 at Glasgow Haskell Compiler / GHC


Commits:
ca4d7241 by Ben Gamari at 2023-11-06T13:34:42+05:30
configure: Use AC_PATH_TOOL to detect tools

Previously we used AC_PATH_PROG which, as noted by #21601, does not
look for tools with a target prefix,
breaking cross-compilation.

Fixes #21601.

(cherry picked from commit bd92182cd56140ffb2f68ec01492e5aa6333a8fc)

- - - - -
e5ad89f6 by Ben Gamari at 2023-11-06T13:36:37+05:30
Revert "rts: Drop racy assertion"

The logic here was inverted. Reverting the commit to avoid confusion
when examining the commit history.

This reverts commit b3eacd64fb36724ed6c5d2d24a81211a161abef1.

(cherry picked from commit db11f3586085901e89705f69aff472e027c0748f)

- - - - -
2f966098 by Ben Gamari at 2023-11-06T13:36:47+05:30
rts: Drop racy assertion

0e274c39bf836d5bb846f5fa08649c75f85326ac added an assertion in
`dirty_MUT_VAR` checking that the MUT_VAR being dirtied was clean.
However, this isn't necessarily the case since another thread may have
raced us to dirty the object.

(cherry picked from commit 3242139fbd18df324460e22619c1a1fb3b258a07)

- - - - -
86554c92 by Profpatsch at 2023-11-06T13:37:36+05:30
base: Improve String & IsString documentation

(cherry picked from commit d751c583d29460f033fefb45e685fa40fb3487ad)

- - - - -
c7c0a035 by Jaro Reinders at 2023-11-06T13:39:31+05:30
Make STG rewriter produce updatable closures

(cherry picked from commit 3930d793901d72f42b1535c85b746f32d5f3b677)

- - - - -
89b0c2bc by Matthew Pickering at 2023-11-07T16:28:12+05:30
driver: Check transitive closure of haskell package dependencies when deciding whether to relink

We were previously just checking whether direct package dependencies had
been modified. This caused issues when compiling without optimisations
as we wouldn't relink the direct dependency if one of its dependenices
changed.

Fixes #23724

(cherry picked from commit 291d81aef8083290da0d2ce430fbc5e5a33bdb6e)

- - - - -
adf9c778 by Andreas Klebinger at 2023-11-07T16:28:12+05:30
Profiling: Properly escape characters when using `-pj`.

There are some ways in which unusual characters like quotes or others
can make it into cost centre names. So properly escape these.

Fixes #23924

(cherry picked from commit e5c00092a13f1a8cf53df2469e027012743cf59a)

- - - - -
76fd8599 by Andreas Klebinger at 2023-11-07T16:28:12+05:30
AArch64: Fix broken conditional jumps for offsets >= 1MB

Rewrite conditional jump instructions with offsets >= 1MB to use unconditional jumps
to avoid overflowing the immediate.

Fixes #23746

(cherry picked from commit 2adc050857a9c1b992040fbfd55fbe65b2851b19)

- - - - -
0447ecaa by Ben Gamari at 2023-11-07T16:28:12+05:30
rts/nonmoving: Fix on LLP64 platforms

Previously `NONMOVING_SEGMENT_MASK` and friends were defined with the `UL`
size suffix. However, this is wrong on LLP64 platforms like Windows,
where `long` is 32-bits.

Fixes #23003.
Fixes #24042.

(cherry picked from commit 8f6010b98f560200997a9d84a4e07bfd0ad6e496)

- - - - -
8e7a2065 by Moritz Angermann at 2023-11-07T16:28:12+05:30
CgUtils.fixStgRegStmt respect register width

This change ensure that the reg + offset computation is always of the
same size.  Before this we could end up with a 64bit register, and then
add a 32bit offset (on 32bit platforms).  This not only would fail type
sanity checking, but also incorrectly truncate 64bit values into 32bit
values silently on 32bit architectures.

(cherry picked from commit dafc47091c9107dcf81e1e80a105f59211927c89)

- - - - -
fdc5f65d by Moritz Angermann at 2023-11-07T16:28:12+05:30
[PEi386 linker] Bounds check and null-deref guard

We should resonably be able to expect that we won't exceed the number of
sections if we assume to be dealing with legal object files. We can however
not guarantee that we get some negative values, and while we try to
special case most, we should exclude negative indexing into the sections
array.

We also need to ensure that we do not try to derefences targetSection,
if it is NULL, due to the switch statement.

(cherry picked from commit df81536f2e53abf521a05eb1e482a076f5849c21)

- - - - -
b2a03315 by Ilias Tsitsimpis at 2023-11-07T16:28:12+05:30
hadrian: Pass -DNOSMP to C compiler when needed

Hadrian passes the -DNOSMP flag to GHC when the target doesn't support
SMP, but doesn't pass it to CC as well, leading to the following
compilation error on mips64el:

| Run Cc (FindCDependencies CDep) Stage1: rts/sm/NonMovingScav.c => _build/stage1/rts/build/c/sm/NonMovingScav.o.d
Command line: /usr/bin/mips64el-linux-gnuabi64-gcc -E -MM -MG -MF _build/stage1/rts/build/c/hooks/FlagDefaults.thr_debug_p_o.d -MT _build/stage1/rts/build/c/hooks/FlagDefaults.o -Irts/include -I_build/stage1/rts/build -I_build/stage1/rts/build/include -Irts/include -x c rts/hooks/FlagDefaults.c -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Winline -Wpointer-arith -Wmissing-noreturn -Wnested-externs -Wredundant-decls -Wundef -fno-strict-aliasing -DTHREADED_RTS -DDEBUG -fomit-frame-pointer -O2 -g -Irts -I_build/stage1/rts/build -DDEBUG -fno-omit-frame-pointer -g3 -O0
===> Command failed with error code: 1
In file included from rts/include/Stg.h:348,
                 from rts/include/Rts.h:38,
                 from rts/hooks/FlagDefaults.c:8:
rts/include/stg/SMP.h:416:2: error: #error memory barriers unimplemented on this architecture
  416 | #error memory barriers unimplemented on this architecture
      |  ^~~~~
rts/include/stg/SMP.h:440:2: error: #error memory barriers unimplemented on this architecture
  440 | #error memory barriers unimplemented on this architecture
      |  ^~~~~
rts/include/stg/SMP.h:464:2: error: #error memory barriers unimplemented on this architecture
  464 | #error memory barriers unimplemented on this architecture
      |  ^~~~~

The old make system correctly passed this flag to both GHC and CC [1].

Fix this error by passing -DNOSMP to CC as well.

[1] https://gitlab.haskell.org/ghc/ghc/-/blob/00920f176b0235d5bb52a8e054d89a664f8938fe/rts/ghc.mk#L407

Closes #24082

(cherry picked from commit 257c2807587624592813a42e06a05c5fc34cb38c)

- - - - -
0af2b8ef by Moritz Angermann at 2023-11-07T16:28:12+05:30
[PEi386] Mask SYM_TYPE_DUP_DISCARD in makeSymbolExtra

48e391952c17ff7eab10b0b1456e3f2a2af28a9b
introduced `SYM_TYPE_DUP_DISCARD` to the bitfield.

The linker however, failed to mask the `SYM_TYPE_DUP_DISCARD` value.
Thus `== SYM_TYPE_CODE` comparisons easily failed. This lead to us
relocating DATA lookups (GOT) into E8 (call) and E9 (jump) instructions.

(cherry picked from commit 34f06334025521c2440ebedb0237697fbcc3c6de)

- - - - -
9227c6df by Ben Gamari at 2023-11-07T16:28:12+05:30
nativeGen: Explicitly set flags of text sections on Windows

The binutils documentation (for COFF) claims,

> If no flags are specified, the default flags depend upon the section
> name. If the section name is not recognized, the default will be for the
> section to be loaded and writable.

We previously assumed that this would do the right thing for split
sections (e.g. a section named `.text$foo` would be correctly inferred
to be a text section). However, we have observed that this is not the
case (at least under the clang toolchain used on Windows): when
split-sections is enabled, text sections are treated by the assembler as
data (matching the "default" behavior specified by the documentation).

Avoid this by setting section flags explicitly. This should fix split
sections on Windows.

Fixes #22834.

(cherry picked from commit 3ece9856d157c85511d59f9f862ab351bbd9b38b)

- - - - -
689f04e7 by Ben Gamari at 2023-11-07T16:28:12+05:30
nativeGen: Set explicit section types on all platforms

(cherry picked from commit db7f7240b53c01447e44d2790ee37eacaabfbcf3)

- - - - -
76240051 by Moritz Angermann at 2023-11-07T16:28:12+05:30
nativeGen: section flags for .text$foo only

Commit 3ece9856d157c85511d59f9f862ab351bbd9b38b, was supposed to fix
#22834 in !9810.

It does however add "xr" indiscriminatly to .text sections
even if splitSections is disabled. This leads to the assembler saying:

ghc_1.s:7849:0: error:
     Warning: Ignoring changed section attributes for .text
     |
7849 | .section .text,"xr"
     | ^

(cherry picked from commit e99cf237f84db34be0468a893b10394d6b364bce)

- - - - -
89cc99fc by Matthew Craven at 2023-11-07T16:28:12+05:30
Bump bytestring submodule to 0.11.5.3

(cherry picked from commit 97a187bfd713663fccb8bc4f4f0c92792547f9c2)

- - - - -
68bebf3e by Zubin Duggal at 2023-11-07T16:28:12+05:30
Bump process submodule to 1.6.18.0

- - - - -
adc0996f by Matthew Pickering at 2023-11-07T16:28:12+05:30
hadrian: Add no_split_sections tranformer

This transformer reverts the effect of `split_sections`, which we intend
to use for platforms which don't support split sections.

In order to achieve this we have to modify the implemntation of the
split_sections transformer to store whether we are enabling
split_sections directly in the `Flavour` definition. This is because
otherwise there's no convenient way to turn off split_sections due to
having to pass additional linker scripts when merging objects.

(cherry picked from commit fec6638e2468c78f136f2363d8b3239a9bfd4f91)

- - - - -
d2dd0db2 by Matthew Pickering at 2023-11-07T16:28:12+05:30
packaging: Build perf builds with -split-sections

In 8f71d958 the make build system was made to use split-sections on
linux systems but it appears this logic never made it to hadrian.
There is the split_sections flavour transformer but this doesn't appear
to be used for perf builds on linux.

This is disbled on deb9 and windows due to #21670

Closes #21135

(cherry picked from commit be9dd9b03479070ba6387c251541f4569392c4bb)

- - - - -
66987a9b by Cheng Shao at 2023-11-07T16:28:12+05:30
testsuite: add the req_process predicate

This patch adds the req_process predicate to the testsuite to assert
the platform has a process model, also marking tests that involve
spawning processes as req_process. Also bumps hpc & process submodule.

(cherry picked from commit ce580426ce3052e3b3d2847d0312652ea9087994)

- - - - -
72619e9a by Zubin Duggal at 2023-11-07T16:28:12+05:30
testsuite: add omit_ghci for use in process

- - - - -
0d758dc3 by Sylvain Henry at 2023-11-07T17:11:37+05:30
Add missing int64/word64-to-double/float rules (#23907)

CLC proposal: https://github.com/haskell/core-libraries-committee/issues/203

(cherry picked from commit 5126a2fef0385e206643b6af0543d10ff0c219d8)

- - - - -
6f38c253 by Zubin Duggal at 2023-11-07T17:38:56+05:30
Prepare release 9.4.8

- - - - -
8e9ea0f9 by Zubin Duggal at 2023-11-07T22:36:50+05:30
Add bootstrap plans

- - - - -


24 changed files:

- .gitlab/gen_ci.hs
- .gitlab/jobs.yaml
- compiler/GHC/CmmToAsm.hs
- compiler/GHC/CmmToAsm/AArch64.hs
- compiler/GHC/CmmToAsm/AArch64/CodeGen.hs
- compiler/GHC/CmmToAsm/AArch64/Cond.hs
- compiler/GHC/CmmToAsm/AArch64/Instr.hs
- compiler/GHC/CmmToAsm/AArch64/Ppr.hs
- compiler/GHC/CmmToAsm/BlockLayout.hs
- compiler/GHC/CmmToAsm/Monad.hs
- compiler/GHC/CmmToAsm/PPC/Instr.hs
- compiler/GHC/CmmToAsm/Ppr.hs
- compiler/GHC/CmmToAsm/X86.hs
- compiler/GHC/Driver/Pipeline.hs
- compiler/GHC/Stg/InferTags/Rewrite.hs
- compiler/GHC/StgToCmm/CgUtils.hs
- configure.ac
- docs/users_guide/9.4.7-notes.rst
- + docs/users_guide/9.4.8-notes.rst
- docs/users_guide/release-notes.rst
- + hadrian/bootstrap/plan-9_2_5.json
- + hadrian/bootstrap/plan-9_2_6.json
- + hadrian/bootstrap/plan-9_2_7.json
- + hadrian/bootstrap/plan-9_2_8.json


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/00920f176b0235d5bb52a8e054d89a664f8938fe...8e9ea0f91305d9e4bb9df3d89f6a9e223ecb4dd3

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/00920f176b0235d5bb52a8e054d89a664f8938fe...8e9ea0f91305d9e4bb9df3d89f6a9e223ecb4dd3
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/20231107/723cc955/attachment-0001.html>


More information about the ghc-commits mailing list