#4133: -fvia-C option does not work on ppc with Linux
------------------------+---------------------------------------------------
Reporter: Mikolaj | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler
Version: 6.12.3 | Keywords:
Os: Linux | Testcase:
Architecture: powerpc | Failure: Compile-time crash
------------------------+---------------------------------------------------
Tested on the just released 6.12.3 and Debian's ghc6_6.12.1-13, processor
type is 7447A:
{{{
miko...@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:
{{{
miko...@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.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4133>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs