Ticket #4133 (closed bug: wontfix)
-fvia-C option does not work on ppc with Linux
Description
Tested on the just released 6.12.3 and Debian's ghc6_6.12.1-13, processor type is 7447A:
mikolaj@bratek:~/Desktop$ ghc -fvia-C --make -O2 -Wall -XForeignFunctionInterface -o CallBacker CallBacker.hs callerback.c [1 of 1] Compiling Main ( CallBacker.hs, CallBacker.o ) Prologue junk?: .type s1ds_ret, @function s1ds_ret: # 20 "/tmp/ghc1444_0/ghc1444_0.hc" 1
Since some of the PowerPC assembler in GHC bitrotted, perhaps the port could be revived more cheaply with -fvia-C? Alas, it fails even for trivial code.
BTW, -funregisterised does not work, either:
mikolaj@bratek:~/Desktop$ ghc6 --make -funregisterised -O2 -Wall -XForeignFunctionInterface -o ffitest ffitest.hs callerback.c [1 of 1] Compiling Main ( ffitest.hs, ffitest.o ) Linking ffitest ... ffitest.o: In function `r1ca_entry': (.text+0xf0): undefined reference to `base_GHCziBase_unpackCStringzh_entry' ffitest.o: In function `r1cc_entry': (.text+0x118): undefined reference to `base_GHCziFloat_timesDouble_entry' ffitest.o: In function `s1fu_entry': (.text+0x180): undefined reference to `base_GHCziFloat_zdwzdsshowSignedFloat_entry' ffitest.o: In function `s1fA_entry': (.text+0x1e0): undefined reference to `base_GHCziFloat_zdwzdsshowSignedFloat_entry' ffitest.o: In function `s1fB_ret': (.text+0x238): undefined reference to `base_GHCziIOziHandleziText_hPutChar1_entry' ffitest.o: In function `s1fz_ret': (.text+0x280): undefined reference to `base_GHCziIOziHandleziText_hPutStr1_entry' ffitest.o: In function `s1fv_ret': (.text+0x36c): undefined reference to `base_GHCziIOziHandleziText_hPutChar1_entry' ffitest.o: In function `s1ft_ret': (.text+0x3b8): undefined reference to `base_GHCziIOziHandleziText_hPutStr1_entry' ffitest.o: In function `s1fo_ret': (.text+0x4ec): undefined reference to `base_GHCziIOziHandleziText_hPutChar1_entry' ffitest.o: In function `s1fn_ret': (.text+0x51c): undefined reference to `base_GHCziIOziHandleziText_hPutStr1_entry' ffitest.o: In function `s1fn_ret': (.text+0x578): undefined reference to `base_GHCziTopHandler_runMainIO1_entry' collect2: ld returned 1 exit status
And there is no option -unreg that man ghc suggests to use instead.
Change History
Note: See
TracTickets for help on using
tickets.
