[GHC] #7621: Cross-build for QNX ARM smashes stack when using FunPtr wrappers
GHC
cvs-ghc at haskell.org
Thu Jan 24 15:41:37 CET 2013
#7621: Cross-build for QNX ARM smashes stack when using FunPtr wrappers
-----------------------------+----------------------------------------------
Reporter: singpolyma | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler (FFI)
Version: 7.6.1 | Keywords: qnx unregistered cross-compile
Os: Unknown/Multiple | Architecture: arm
Failure: Runtime crash | Blockedby:
Blocking: | Related:
-----------------------------+----------------------------------------------
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)
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7621>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list