summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Allocate Adjustors and mark them readable in two stepsMoritz Angermann2021-02-1819-24/+83
| | | | | | | | | This drops allocateExec for darwin, and replaces it with a alloc, write, mark executable strategy instead. This prevents us from trying to allocate an executable range and then write to it, which X^W will prohibit on darwin. This will *only* work if we can use mmap.
* [configure] Fix _AC_PROG_CC_99Moritz Angermann2021-02-181-1/+1
| | | | | _AC_PROG_CC_99 isn't available anymore in recent autoconf versions. This broke on aarch64-darwin.
* [llvm] Prevent GHC from breaking the test-suitewip/angerman/8.10.5-rollup-2Moritz Angermann2021-02-171-1/+8
| | | | | | This breaks lots of tests unnecessarily. The LLVM IR has been pretty stable since ~7. This stops GHC from emitting the warnings during the testsuite run.
* [make] Allow to set the curses library for stage0Moritz Angermann2021-02-177-5/+36
| | | | | This may be necessary when building stage2 cross compiled compilers.
* configure: Fix parsing of ARM triplesBen Gamari2021-02-171-8/+10
| | | | | | | | | | To support proper parsing of arm64 targets, we needed to adjust the GHC_LLVM_TARGET function to allow parsing arm64-apple-darwin into aarch64. This however discared the proper os detection. To rectify this, we'll pull the os detection into separate block. Fixes #19173.
* [macho] improved linker with proper plt supportMoritz Angermann2021-02-178-97/+311
| | | | This is a pre-requisite for making aarch64-darwin work.
* [CCall] carry signature from desugar to codegenMoritz Angermann2021-02-1726-115/+496
| | | | | | | | This is needed so that the codegen can produce C ABI calls that require knowledge about the actual size of arguments. Specifically aarch64-darwin will require arguments (in exess of available registers) to be passed *packed* on the stack.
* [testlib/driver] denoisewip/angerman/denoise-testlib-driverMoritz Angermann2021-02-152-6/+11
| | | | | | | | this prevents the testlib/driver to be overly noisy, and will also kill some noise produiced by the aarch64-darwin cc (for now). Fixing sysctl, will allow us to run the test's properly in a nix-shell on aarch64-darwin
* [llvm-targets] add {arm64,aarch64}-apple-darwinwip/angerman/8.10.5-rollup-1Moritz Angermann2021-02-152-22/+31
|
* [aarch64] always PICMoritz Angermann2021-02-156-14/+31
| | | | this is effectively now required.
* [arm] Rename arm64 to aarch64Moritz Angermann2021-02-1517-80/+90
| | | | | | | arm64 is really only a name apple uses, and we should refrain from using it across multiple architectures. Let's call aarch64-darwin, arm64 if needed, but otherwise stick to aarch64.
* [faststring] fix memcmp and strlen signaturesMoritz Angermann2021-02-151-5/+5
| | | | | | | | int memcmp(const void *s1, const void *s2, size_t n); size_t strlen(const char *s);
* [integer-gmp] bump to recent version for aarch64-darwin supportwip/angerman/bump-integer-gmpMoritz Angermann2021-02-143-32/+32
| | | | | This is required for aarch64-darwin. Bump the integer-gmp submodule as well.
* [ci] Add support for building on aarch64-darwinwip/angerman/aarch64-darwin-ciMoritz Angermann2021-02-133-12/+126
| | | | | This will fail for now. But allows us to add aarch64-darwin machines to CI.
* Release 8.10.4ghc-8.10.4-releaseBen Gamari2021-02-041-1/+1
|
* gitlab-ci: Build Darwin docs with hyperlinked sourcesBen Gamari2021-02-041-6/+5
| | | | Previously we only built Linux bindists with hyperlinked sources.
* Add 8.10.4 release notesBen Gamari2021-02-032-0/+86
|
* gitlab-ci: CI wibblesBen Gamari2021-02-011-0/+3
| | | | | | Ensure that deb10-dwarf artifacts are preserved. (cherry picked from commit a4f50cd8ea462bc740a605c7eba46fec63446c8f)
* Zonk the returned kind in tcFamTyPatsSimon Peyton Jones2021-02-013-0/+43
| | | | | | | | The motivation is given in Note [tcFamTyPats: zonking the result kind]. Fixes #19250 -- the fix is easy. (cherry picked from commit 69cab37ae89db16cfd0b734d7fc657e56402a255)
* document how build system find toolchains on WindowsTamar Christina2021-01-258-12/+83
| | | | (cherry picked from commit 4517a38215eb72a4824c72d97377b9325059bf55)
* Fix use distro toolchianTamar Christina2021-01-258-4/+19
| | | | (cherry picked from commit f065b6b012fb8f73689bc5c2a4904d5e6e377af8)
* Document that ccall convention doesn't support varargsBen Gamari2021-01-255-3/+47
| | | | | | | | | | | | | We do not support foreign "C" imports of varargs functions. While this works on amd64, in general the platform's calling convention may need more type information that our Cmm representation can currently provide. For instance, this is the case with Darwin's AArch64 calling convention. Document this fact in the users guide and fix T5423 which makes use of a disallowed foreign import. Closes #18854. (cherry picked from commit 0b7722219ffdb109c3a8b034a8e112d18e6e4336)
* rts/Messages: Relax locked-closure assertionBen Gamari2021-01-251-2/+3
| | | | | | | | | In general we are less careful about locking closures when running with only a single capability. Fixes #19075. (cherry picked from commit 87bc458de497cdc407c5c32572103a452ee36e4d)
* base: Fix changelogBen Gamari2021-01-061-2/+2
|
* testsuite: Add test for #19149Ben Gamari2021-01-064-0/+51
| | | | (cherry picked from commit 61ce4261bb4c21ca5c41fcfc2107a81726cf22c1)
* compiler: Initialize ForeignExportsList.n_entriesBen Gamari2021-01-061-1/+4
| | | | | | | | | | | | The refactoring in ed57c3a9eb9286faa222f98e484a9ef3432b2025 failed to initialize this field, resulting in no exports being registered. A very silly bug and yet somehow none of our tests caught it. See #18548. Fixes #19149. (cherry picked from commit 4cd2674fbf1adb1e1d951dcb65e78eda03732484)
* rts/PEi386: Fix reentrant lock usageBen Gamari2021-01-061-1/+1
| | | | | | | | | | | | | | Previously lookupSymbol_PEi386 would call lookupSymbol while holding linker_mutex. Fix this by rather calling `lookupDependentSymbol`. This is safe because lookupSymbol_PEi386 unconditionally holds linker_mutex. Happily, this un-breaks `T12771`, `T13082_good`, and `T14611`, which were previously marked as broken due to #18718. Closes #19155. (cherry picked from commit a7105e53921e715d4d70c7c45ddc79bdc6eebffc)
* Maintain invariant: MVars on mut_list are dirtyViktor Dukhovni2021-01-022-0/+3
| | | | | | | | | | | | The fix for 18919 was somewhat incomplete: while the MVars were correctly added to the mut_list via dirty_MVAR(), their info table remained "clean". While this is mostly harmless in non-debug builds, but trips an assertion in the debug build, and may result in the MVar being needlessly being added to the mut_list multiple times. Resolves: #19145
* configure: Release 8.10.3ghc-8.10.3-releaseBen Gamari2020-12-161-2/+2
|
* Update autoconf scriptsBen Gamari2020-12-166-1215/+1491
| | | | Scripts taken from autoconf 90b8cb42ba3b244250a6986b8b78c80f30ed197a
* users guide: Add release notes for 8.10.3Ben Gamari2020-12-162-0/+142
|
* hadrian: Pass -Werror before other argumentsBen Gamari2020-12-161-2/+7
| | | | | Previously we would append -Werror to the argument list. However, this ended up overriding the -Wno-error=... flags in Settings.Warnings.
* hadrian: Reindent Settings.WarningsBen Gamari2020-12-161-32/+33
| | | | The previous state was quite illegible.
* Disable deprecation warnings in Cabal buildBen Gamari2020-12-162-1/+6
|
* gitlab-ci: Rename RELEASE variable to RELEASE_JOBBen Gamari2020-12-151-1/+1
| | | | | | | | This interfered with the autoconf variable of the same name, breaking pre-release builds. (cherry picked from commit 15dca84793d5ec4ff922726477923e40caa075eb) (cherry picked from commit 3e55edd97c8eba271f5cb64b9362796791e0e887)
* Fix bad span calculations of post qualified importsShayne Fletcher2020-12-154-8/+82
| | | | (cherry picked from commit 57f3fdb1fbeb82b5b19bc5e2970d8857c2514fcc)
* Bump bytestring submodule to 0.10.12.0Ben Gamari2020-12-131-0/+0
| | | | Fixes #18233.
* Limit upper version of Happy for ghc-9.0 and earlier (#18620)Takenobu Tani2020-12-132-1/+3
| | | | | | | | | | | This patch adds the upper bound of a happy version for ghc-9.0 and earlier. Currently, we can't use happy-1.20.0 for ghc-9.0. See #18620. (cherry picked from commit 74a7fbff5a8f244cd44345bf987e26413bb1989e)
* nonmoving: Add comments to nonmovingResurrectThreadsGHC GitLab CI2020-12-101-0/+5
|
* nonmoving: Don't push objects during deadlock detect GCBen Gamari2020-12-101-2/+6
| | | | | | Previously we would push large objects and compact regions to the mark queue during the deadlock detect GC, resulting in failure to detect deadlocks.
* nonmoving: Refactor alloc_for_copyGHC GitLab CI2020-12-101-48/+79
| | | | Pull the cold non-moving allocation path out of alloc_for_copy.
* nonmoving: Ensure deadlock detection promotion worksGHC GitLab CI2020-12-101-18/+22
| | | | | | Previously the deadlock-detection promotion logic in alloc_for_copy was just plain wrong: it failed to fire when gct->evac_gen_no != oldest_gen->gen_no. The fix is simple: move the
* nonmoving: Assert deadlock-gc promotion invariantGHC GitLab CI2020-12-101-0/+8
| | | | | When performing a deadlock-detection GC we must ensure that all objects end up in the non-moving generation. Assert this in scavenge.
* nonmoving: Fix small CPP bugBen Gamari2020-12-101-1/+3
| | | | | Previously an incorrect semicolon meant that we would fail to call busy_wait_nop when spinning.
* Bump text submodule to 1.2.4.1-rc1GHC GitLab CI2020-12-071-0/+0
| | | | Per request of @phadej.
* rts/linker: Ensure that .rodata is aligned to 16 bytesBen Gamari2020-12-071-1/+1
| | | | | | Pulled out of !4310. (cherry picked from commit be408b86c9125dedd2f83e9701ea9f2e499c8dd4)
* rts: Allocate MBlocks with MAP_TOP_DOWN on WindowsBen Gamari2020-12-071-1/+4
| | | | | | | | | 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)
* rts/linker: Align bssSize to page size when mapping symbol extrasBen Gamari2020-12-071-1/+3
| | | | | | | | | | 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) (cherry picked from commit 4b83b6a8f8ac08e81b6e75c47f133e3ed6bdea95)
* nonmoving: Ensure that evacuated large objects are markedGHC GitLab CI2020-12-072-8/+66
| | | | | | See Note [Non-moving GC: Marking evacuated objects]. (cherry picked from commit b416189e4004506b89f06f147be37e76f4cd507f)
* nonmoving: Add reference to Ueno 2016Ben Gamari2020-12-071-2/+7
| | | | (cherry picked from commit a3b8375eeb2ce9d2e30f8269f5b489c5bcacc69f)