Open
Conversation
1b78be8 to
58d807b
Compare
b79450c to
ef31a5d
Compare
GHC's runtime linker only checks the Thumb bit (bit 0) for ELF symbols with type STT_FUNC. Imported symbols (e.g. glibc's strlen resolved via dlsym) have type STT_NOTYPE, so the check is skipped. This causes the linker to emit ARM BL instead of BLX for ARM→Thumb calls, resulting in SIGILL when Template Haskell evaluation triggers calls to Thumb glibc functions under QEMU. The patch adds a fallback that detects the Thumb bit from the resolved address itself, which dlsym preserves on ARM32 Linux. Also pin nixpkgs to nixos-25.05 (GHC 9.8.4) to avoid an LLVM ARM32 crash affecting GHC 9.10+ with all LLVM 17–21. Add core dump files to .gitignore
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This closes #738