#10402: powerpc: unhandled ELF relocation(RelA) type 252 -----------------------------------+----------------------------------- Reporter: cjwatson | Owner: simonmar Type: bug | Status: patch Priority: normal | Milestone: 7.10.2 Component: Runtime System | Version: 7.8.4 Resolution: | Keywords: Operating System: Linux | Architecture: powerpc Type of failure: Runtime crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: -----------------------------------+----------------------------------- Comment (by slyfox): Replying to [comment:8 nomeata]:
Does debian disable dynamic GHC by default as `DYNAMIC_GHC_PROGRAMS = NO`?
No (`ldd /usr/lib/ghc/bin/ghc` lists various `libHS...` libraries).
Do I do something incorrectly? (or the test was on non-powerpc?) {{{ # debootstrap --arch=powerpc --include=ghc unstable . # chroot . # ghc --version The Glorious Glasgow Haskell Compilation System, version 7.8.4 # ldd /usr/lib/ghc/bin/ghc linux-vdso32.so.1 (0x00100000) libtinfo.so.5 => /lib/powerpc-linux-gnu/libtinfo.so.5 (0x0ffaf000) librt.so.1 => /lib/powerpc-linux-gnu/librt.so.1 (0x0ff86000) libutil.so.1 => /lib/powerpc-linux-gnu/libutil.so.1 (0x0ff63000) libdl.so.2 => /lib/powerpc-linux-gnu/libdl.so.2 (0x0ff3f000) libpthread.so.0 => /lib/powerpc-linux-gnu/libpthread.so.0 (0x0ff04000) libgmp.so.10 => /usr/lib/powerpc-linux-gnu/libgmp.so.10 (0x0fe69000) libm.so.6 => /lib/powerpc-linux-gnu/libm.so.6 (0x0fd93000) libffi.so.6 => /usr/lib/powerpc-linux-gnu/libffi.so.6 (0x0fd6a000) libc.so.6 => /lib/powerpc-linux-gnu/libc.so.6 (0x0fbcb000) /lib/ld.so.1 (0x2052a000) # ghc --info | grep -i dyn ,("Support dynamic-too","YES") ,("Dynamic by default","NO") ,("GHC Dynamic","NO") }}} It's not able to handle PIC: {{{ // cat a.c #include <stdio.h> void ffi_a_hello (int i) { fprintf (stderr, "WEEEEEEEE: i=%d\n", i); } -- cat A.hs {-# LANGUAGE ForeignFunctionInterface #-} module A where import Foreign.C foreign import ccall "ffi_a_hello" a :: CInt -> IO () # ghc -fPIC -c a.c -fforce-recomp # ghc -fPIC -c A.hs -fforce-recomp # ghci --interactive ./a.o A GHCi, version 7.8.4: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Loading object (static) a.o ... done final link ... done [1 of 1] Compiling A ( A.hs, interpreted ) [flags changed] Ok, modules loaded: A. *A> a 42 Segmentation fault }}} Non-PIC is fine, but it does not contain PLT-style relocations: {{{ # ghc -c a.c -fforce-recomp # ghc -c A.hs -fforce-recomp # ghci --interactive ./a.o A GHCi, version 7.8.4: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Loading object (static) a.o ... done final link ... done [1 of 1] Compiling A ( A.hs, interpreted ) [flags changed] Ok, modules loaded: A. *A> a 42 WEEEEEEEE: i=42 *A> Leaving GHCi. # objdump -d -r a.o | grep PLT # objdump -d -r A.o | grep PLT }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10402#comment:12> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler