[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