Cross-build for QNX ARM smashes stack when using FunPtr wrappers
I have built an unregistered LLVM cross-compiler for arm-unknown-nto-qnx8.0.0eabi, which I finally got to build using the attached patch. Simple programs no longer crash like they do in registered ARM cross-compilers (as reported on mailing list at http://www.haskell.org/pipermail/ghc-devs/2013-January/000005.html and other places), however the following code does crash:
{-# LANGUAGE ForeignFunctionInterface #-}
module Main (main) where
import Foreign.Ptr
foreign import ccall "wrapper" wrap_refresh :: ( IO ()) -> IO (FunPtr ( IO ()))
main :: IO ()
main = do
wrap_refresh (return ())
return ()
It seems, from experiments, that any code using the "wrapper" imports causes this error:
$ ./Main
*** stack smashing detected ***: Main terminated
Abort (core dumped)
Trac metadata
Trac field | Value |
---|---|
Version | 7.6.1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler (FFI) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | nathan.huesken@posteo.de |
Operating system | Unknown/Multiple |
Architecture |