diff options
author | Kavon Farvardin <kavon@farvard.in> | 2018-05-16 18:13:04 -0500 |
---|---|---|
committer | Kavon Farvardin <kavon@farvard.in> | 2018-05-16 18:20:25 -0500 |
commit | 3bee4f8515db7aa3d644085da431ecf330575983 (patch) | |
tree | d553ed1fb8c18e3dcadb34dff820a3592084441a | |
parent | f9b84f633c9eee144824c7dc0a441caa2e04281a (diff) | |
download | haskell-wip/kavon-nosplit-llvm.tar.gz |
fix bug with missing symbols in info table on Linuxwip/kavon-nosplit-llvm
[skip-ci]
-rw-r--r-- | compiler/llvmGen/LlvmCodeGen/Data.hs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/compiler/llvmGen/LlvmCodeGen/Data.hs b/compiler/llvmGen/LlvmCodeGen/Data.hs index 75493d1a11..355fca0a41 100644 --- a/compiler/llvmGen/LlvmCodeGen/Data.hs +++ b/compiler/llvmGen/LlvmCodeGen/Data.hs @@ -195,7 +195,7 @@ cvtForMangler (Statics _ datum) = do -- its corresponding byte string. cvtLit (CmmLabelDiffOff srt _ off w) = do srtVar <- getGlobalPtr =<< strCLabel_llvm srt - let srtLab = asmNameOf srtVar + srtLab <- asmNameOf srtVar return $ mkDiffOff srtLab off w cvtLit _ = error "cvtForMangler: unexpected lit." @@ -220,11 +220,12 @@ cvtForMangler (Statics _ datum) = do eol ] - -- TODO(kavon): consult dflags to put the right number of underscores on the name - asmNameOf (LMGlobalVar fs _ _ _ _ _) = let - llName = "_" ++ unpackFS fs - in - B.pack llName + asmNameOf (LMGlobalVar fs _ _ _ _ _) = do + dflags <- getDynFlags + return $ B.pack $ case platformOS (targetPlatform dflags) of + OSDarwin -> "_" ++ unpackFS fs + OSLinux -> unpackFS fs + _ -> panic "please update cvtForMangler" asmNameOf _ = error "asmNameOf -- unexpected name kind" |