| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
(cherry picked from commit 07c9532947a623a065d43ef5f69e530ca762f986)
|
|
|
|
| |
(cherry picked from commit 9af5422203769f2f939d4a61e7de54b402863bc5)
|
|
|
|
| |
(cherry picked from commit 3b909208273c75fb3fe6b05b75c4fe9bf635ed68)
|
|
|
|
|
|
| |
Gnu ld allows `-l` to be passed an absolute file path,
signalled by a `:` prefix. Implement this in the GHC's
loader search logic.
|
|
|
|
|
|
|
|
|
|
|
| |
Unfortunately on Windows we have no RPATH-like facility, making dynamic
linking extremely fragile. Since we cannot assume that the user will
add their GHC installation to `$PATH` (and therefore their DLL
search path) we cannot assume that the loader will be able to locate our
`libc++.dll`. To avoid this, we instead statically link against `libc++.a` on
Windows.
Fixes #21435.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here we deprecate the eventlogging RTS ways and instead enable eventlog
support in the remaining ways. This simplifies packaging and reduces GHC
compilation times (as we can eliminate two whole compilations of the RTS)
while simplifying the end-user story. The trade-off is a small increase
in binary sizes in the case that the user does not want eventlogging
support, but we think that this is a fine trade-off.
This also revealed a latent RTS bug: some files which included `Cmm.h`
also assumed that it defined various macros which were in fact defined
by `Config.h`, which `Cmm.h` did not include. Fixing this in turn
revealed that `StgMiscClosures.cmm` failed to import various spinlock
statistics counters, as evidenced by the failed unregisterised build.
Closes #18948.
(cherry picked from commit ee11d04363ed8aa1d73a0cda16076a39e668d163)
|
|
|
|
|
|
| |
If the user has not configured a writer then there is nothing to flush.
(cherry picked from commit 318e0005b5a3a522854ced7162f3eee95f964bd9)
|
|
|
|
|
|
|
|
|
|
| |
Here we introduce support into our command-line parsing infrastructure
and driver for handling gnu-style response file arguments,
typically used to work around platform command-line length limitations.
Fixes #16476.
(cherry picked from commit ba3d4e1c43e6772f11f9a7105ef4bf3be8efb2df)
|
|
|
|
|
|
|
|
|
| |
Test that we can successfully link against C++ code both in GHCi and
batch compilation.
See #20010
(cherry picked from commit 03efe28317c5e037eab4d47790a6a1fb74d38c3d)
|
|
|
|
|
|
|
|
|
|
| |
Here we introduce a new "virtual" package into the initial package
database, `system-cxx-std-lib`. This gives users a convenient, platform
agnostic way to link against C++ libraries, addressing #20010.
Fixes #20010.
(cherry picked from commit 0ef249aa26f653677c5368bb51af34f7577ba5b9)
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here we introduce proper support for compilation of C++ objects. This
includes:
* logic in `configure` to detect the C++ toolchain and propagating this
information into the `settings` file
* logic in the driver to use the C++ toolchain when compiling C++
sources
(cherry picked from commit fb579e15c56994bc6c4cc266535024f20a81f830)
|
|
|
|
|
|
|
|
|
|
| |
Previously we would flag the symbol as weak but failed
to set its address, which must be computed from an "auxiliary"
symbol entry the follows the weak symbol.
Fixes #21556.
(cherry picked from commit 53b3fa1c782b251076707a024f55276d4ccb0a6c)
|
|
|
|
| |
See #20010
|
|
|
|
| |
(cherry picked from commit 43628ed44b063e25e6d1394314ed89f07f026503)
|
|
|
|
|
| |
Since the previous commit bumping `base` isn't in `master` due to a
rebase-merge.
|
|
|
|
|
|
|
|
|
| |
We still build Deb9 bindists for now due to Ubuntu 18 and Linux Mint 19
not being at EOL until April 2023 and they still need tinfo5.
Fixes #21469
(cherry picked from commit 0fdf44a8da95be8bf336c53e772c4632c6268e7e)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a CI job (hackage-doc-tarball) which generates the necessary
tarballs for uploading libraries and documentation to hackage. The
release script knows to download this folder and the upload script will
also upload the release to hackage as part of the release.
The `ghc_upload_libs` script is moved from ghc-utils into .gitlab/ghc_upload_libs
There are two modes, preparation and upload.
* The `prepare` mode takes a link to a bindist and creates a folder containing the
source and doc tarballs ready to upload to hackage.
* The `upload` mode takes the folder created by prepare and performs the upload to
hackage.
Fixes #21493
Related to #21512
(cherry picked from commit daac5040a9656ba0ac6633c9207cfc8c169b396c)
|
|
|
|
|
|
|
|
|
| |
To ensure that the build benefits from Hadrian's usual logic for building
packages, avoiding #21409.
Closes #21409.
(cherry picked from commit 4d189db9da47b15b1ef354c1febe3dd9ee442927)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously `test.mk` would try to determine whether the dynamic,
profiling, and vanilla library ways are available by searching for
`PrimOpWrappers.{,dyn_,p_}hi` in directory reported by `ghc-pkg field
ghc-prim library-dirs`. However, this is extremely fragile as
there is no guarantee that there is only one library directory. To
handle the case of multiple `library-dirs` correct we would
have to carry out the delicate task of tokenising the directory list (in
shell, no less).
Since this isn't a task that I am eager to solve, I have rather moved
the detection logic into the testsuite driver and instead perform a test
compilation in each of the ways. This should be more robust than the
previous approach.
I stumbled upon this while fixing #20579.
(cherry picked from commit cd3f420f5cb028328364ad8b741a876f1a76beb6)
|
|
|
|
| |
(cherry picked from commit c556cbf3144f2c209cb41b4524f36247de974d41)
|
|
|
|
|
|
|
|
|
|
| |
The package-specific include directories in
Settings.Builders.Common.cIncludeDirs are now redundant since they now
come from Cabal.
Closes #20566.
(cherry picked from commit a216403e78a6983e4a4a72312d261be3da08d459)
|
|
|
|
|
|
|
|
|
|
| |
Previously we only took `extraLibDirs` and friends from the package
description, ignoring any contribution from the `LocalBuildInfo`. Fix
this.
Fixes #20566.
(cherry picked from commit 2b21c3fc992d5f860cdcf97642de6110c88e7809)
|
|
|
|
|
|
|
|
| |
This bumps the time submodule to the 1.12.2 release.
Fixes #21571
(cherry picked from commit 70f52443550d37985cf7e06ffafd5a162319d9e1)
|
|
|
|
|
|
|
|
| |
Both #20878 and #21196 were caused by unwanted dynamic dependencies
being introduced by boot libraries. Ensure that we catch this in CI by
attempting to run GHC in an environment with a minimal PATH.
(cherry picked from commit fcc7dc4c2848d46439bcbfae3f9eaf0a1f400ab4)
|
|
|
|
| |
(cherry picked from commit 5b791ed3baf9875931c3bf3b67e8d83d0b3c94e2)
|
|
|
|
|
|
|
|
|
|
| |
When passed `--use-system-libffi` then we shouldn't copy and install the
headers from the system package. Instead the headers are expected to be
available as a runtime dependency on the users system.
Fixes #21485 #21487
(cherry picked from commit fec3e7aa72bee69ef3a3f363709377990650a5d3)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This has high potential for oversubcribing as many haddock jobs can be
spawned in parralel which will each request the given number of
capabilities.
Once -jsem is implemented (#19416, !5176) we can expose that haddock via
haddock and use that to pass a semaphore.
Ticket #21136
(cherry picked from commit 9d8f44a98f8345e5223614e0de50fbef2a05dd1d)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the make bindists we generate documentation in docs/ghc-<VER> but the
hadrian bindists generate docs/ghc/ so the path to the GHC API docs was
wrong in the index.html file.
Rather than make the hadrian and make bindists the same it was easier to
assume that if you're using the mkDocs script that you're using hadrian
bindists.
Fixes #21509
(cherry picked from commit 68d1ea5fe083e0b3ed114bbf02a642c7481ab5d7)
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Closes #21135
(cherry picked from commit 699f593532a3cd5ca1c2fab6e6e4ce9d53be2c1f)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The splitSections transformer has been broken since -dynamic-too support
was implemented in hadrian. This is because we actually build the
dynamic way when building the dynamic way, so the predicate would always
fail.
The fix is to just always pass `split-sections` even if it doesn't do
anything for a particular way.
Fixes #21138
(cherry picked from commit 142a73d92ea1ef8054d3764b5897b83ad349fed5)
|
|
|
|
|
|
|
|
|
|
| |
There have been quite a few situations where jobs.yaml has been out of
date. It's better to add a CI job which checks that it's right.
We don't want to use a staged pipeline because it obfuscates the
structure of the pipeline.
(cherry picked from commit aacb15a3d68216cac0729e15d708be2f13b0eae8)
|
|
|
|
|
|
|
| |
We need to distribute the source tarball so we should generate it in the
CI pipeline.
(cherry picked from commit ced4689e2a049b6653f5ada3254dde684cb0c433)
|
|
|
|
| |
(cherry picked from commit 6e69964d94392b5398a33fa65f3730805c6a7f93)
|
|
|
|
| |
(cherry picked from commit c7ee0be6bc1573b024f425dcf5fe6d91389e8185)
|
|
|
|
|
|
| |
Fixes #21373
(cherry picked from commit 55c84123fd9af420de1600309a6fbe73f1975094)
|
|
|
|
| |
(cherry picked from commit 2dcdf091960d3b8bafc23d0ab0e0be8aa6871d8b)
|
|
|
|
|
|
|
|
| |
We also disable the stage1 testing which is broken.
Related to #21072
(cherry picked from commit 50d78d3bad4fda94ca32fd484578543b03aa0a6c)
|
|
|
|
| |
(cherry picked from commit 2c00d9048873f3d6d7e188dd1ef7f670a83a5c94)
|
|
|
|
|
|
|
|
| |
It's quite nice we can do this by mostly deleting code
Fixes #21373
(cherry picked from commit 75bf1337e6623286b3cbf1a1c42dd083c50359d3)
|
|
|
|
| |
Bumps text and exceptions submodules due to bounds.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We previously only checked the stage 1/2 compiler
for --target support. We got away with this for quite a while but it
eventually caught up with us in #21579, where `bytestring`'s new NEON
implementation was unbuildable on Darwin due to Rosetta's seemingly
random logic for determining which executable image to execute. This
lead to a confusing failure to build `bytestring`'s cbits, when `clang`
tried to compile NEON builtins while targetting x86-64.
Fix this by checking CC_STAGE0 for --target support.
Fixes #21579.
(cherry picked from commit 222eb83e5e45bb6ba49f9fb6f39ee920751ac653)
|
|
|
|
|
|
| |
Now since `bytestring` depends upon `template-haskell` we must rebulid
it since the boot compiler's `template-haskell` may not match
that of the compiler being built.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit ef0135934fe32da5b5bb730dbce74262e23e72e8.
See ticket #21229
-------------------------
Metric Decrease:
T15164
Metric Increase:
T13056
-------------------------
(cherry picked from commit a8b47caddb41a970e9ac4c358127523daa1ff101)
|
|
|
|
|
|
|
| |
The lack of INLNE arity was exposed by #21531. The fix is
simple enough, if a bit clumsy.
(cherry picked from commit cebf31ff2af7647805d05ffa99cb99a7761f3831)
|
|
|
|
|
|
| |
Resolves https://gitlab.haskell.org/ghc/ghc/-/issues/19127
(cherry picked from commit 208c67af3d489fe27a1aacb337c7379439ac8b60)
|
| |
|
| |
|
| |
|
| |
|