blob: 073ad7ac9a3c6a02be80bc06fc23c4dc5bf21c71 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
{-# LANGUAGE TemplateHaskell #-}
module Main where
import Language.Haskell.TH.Syntax
import Foreign.C.String
import Config -- from "ghc" package
$(do
-- some targets (e.g. Darwin) require a "_" symbol prefix...
addForeignSource LangAsm (if cLeadingUnderscore == "YES"
then ".global \"_mydata\"\n\
\_mydata:\n\
\.ascii \"Hello world\\0\"\n"
else ".global \"mydata\"\n\
\mydata:\n\
\.ascii \"Hello world\\0\"\n"
)
return [])
foreign import ccall "&mydata" mystring :: CString
main :: IO ()
main = putStrLn =<< peekCString mystring
|