
#10383: AArch64: get GHC Calling convention working ----------------------------------------+------------------------------- Reporter: erikd | Owner: erikd Type: feature request | Status: new Priority: normal | Milestone: 8.0.1 Component: Compiler | Version: 7.11 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: aarch64 Type of failure: Building GHC failed | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ----------------------------------------+------------------------------- Comment (by erikd): Yep, added `%d15` to the clobbered regs list and added a comment along the lines you suggested. As usual its in the `wip/aarch64-regd` in the GHC git repo. Behavour as expected is unchanged. Currently have ~170 test failing. Choosing one, pretty much at random, I notice that it fails in three different ways (as do many of the other failing tests): {{{ $ inplace/bin/ghc-stage2 -O -v0 -fforce-recomp \ testsuite/tests/numeric/should_run/T7014.hs -o a.out Illegal instruction (core dumped) $ inplace/bin/ghc-stage2 -O -v0 -fforce-recomp \ testsuite/tests/numeric/should_run/T7014.hs -o a.out Segmentation fault (core dumped) $ inplace/bin/ghc-stage2 -O -v0 -fforce-recomp \ testsuite/tests/numeric/should_run/T7014.hs -o a.out Bus error (core dumped) }}} Even after disabling ASLR (Address space layout randomization) it still fails in at least two ways. The above failure only happens with optimisation (`-O`) turned on. As usual, GDB provides nothing but a very poor backtrace: {{{ Program received signal SIGSEGV, Segmentation fault. 0x000006d6f9400288 in ?? () (gdb) bt #0 0x000006d6f9400288 in ?? () #1 0x0000007fb6db8ca4 in cwTZ_info$def () from .../libHSghc-7.11.20151019-ghc7.11.20151019.so }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10383#comment:35 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler