Import rand using capi
authorReid Barton <rwbarton@gmail.com>
Thu, 9 Apr 2015 15:31:20 +0000 (11:31 -0400)
committerReid Barton <rwbarton@gmail.com>
Thu, 9 Apr 2015 15:31:20 +0000 (11:31 -0400)
Summary: Android has no rand symbol (it's a static inline function there).

Test Plan: ghc-android builds

Reviewers: trofi, austin, hvr

Reviewed By: hvr

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D826

GHC Trac Issues: #10274

libraries/base/System/IO.hs

index 52931fd..7b13552 100644 (file)
@@ -1,5 +1,5 @@
 {-# LANGUAGE Trustworthy #-}
-{-# LANGUAGE CPP, NoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, CApiFFI #-}
 
 -----------------------------------------------------------------------------
 -- |
@@ -509,7 +509,7 @@ openTempFile' loc tmp_dir template binary mode = findTempName
                   | otherwise = a ++ [pathSeparator] ++ b
 
 -- int rand(void) from <stdlib.h>, limited by RAND_MAX (small value, 32768)
-foreign import ccall "rand" c_rand :: IO CInt
+foreign import capi "stdlib.h rand" c_rand :: IO CInt
 
 -- build large digit-alike number
 rand_string :: IO String