Skip to content

-fvia-C option does not work on ppc with Linux

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.

Trac metadata
Trac field Value
Version 6.12.3
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information