
#11123: Arm: checkProddableBlock: invalid fixup in runtime linker ----------------------------------------+----------------------------- Reporter: erikd | Owner: Type: bug | Status: new Priority: normal | Milestone: 8.0.1 Component: Compiler | Version: 7.11 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: arm Type of failure: Building GHC failed | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ----------------------------------------+----------------------------- Comment (by erikd): Disassembling libm using `objdump -D /lib/arm-linux- gnueabihf/libm-2.19.so` shows that the `sin` function is indeed Thumb code (indicated by instruction offsets that are not a multiple of 2): {{{ 00015850 <sin>: 15850: b570 push {r4, r5, r6, lr} 15852: ed2d 8b0e vpush {d8-d14} 15856: b08a sub sp, #40 ; 0x28 15858: eeb0 8b40 vmov.f64 d8, d0 1585c: ac01 add r4, sp, #4 1585e: 4620 mov r0, r4 15860: f7f0 fd48 bl 62f4 <feholdexcept> ... }}} This problem is encountered when ghci loads a Haskell module which calls maths functions in `libm`. {{{ Loading package ghc-prim-0.5.0.0 ... linking ... ghc-stage2: Symbol `__aeabi_idiv' requires Thumb linkage which is not currently supported. }}} However on IRC, @rwbarton suggests: {{{ .... the rts linker should use its own copy of sin to satisfy a use in a .o file }}} so maybe this is still a bug in Phab:D1470. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11123#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler