diff options
| author | Graydon Hoare <[email protected]> | 2011-04-29 19:20:10 +0000 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2011-04-29 19:20:20 +0000 |
| commit | 7b95b5c033435e0b8902c3f3afb14c80e04fee83 (patch) | |
| tree | b42d338d615d96c2c30e991555730ad39b9c793f /src/comp/middle/metadata.rs | |
| parent | Implement destructors in rustc (diff) | |
| download | rust-7b95b5c033435e0b8902c3f3afb14c80e04fee83.tar.xz rust-7b95b5c033435e0b8902c3f3afb14c80e04fee83.zip | |
Don't emit metadata unless compiling -shared.
Diffstat (limited to 'src/comp/middle/metadata.rs')
| -rw-r--r-- | src/comp/middle/metadata.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/comp/middle/metadata.rs b/src/comp/middle/metadata.rs index 0cfe09b7..806f38b5 100644 --- a/src/comp/middle/metadata.rs +++ b/src/comp/middle/metadata.rs @@ -235,9 +235,9 @@ mod Encode { } -// Returns a Plain Old LLVM String, *without* the trailing zero byte. +// Returns a Plain Old LLVM String. fn C_postr(str s) -> ValueRef { - ret llvm.LLVMConstString(_str.buf(s), _str.byte_len(s) - 1u, False); + ret llvm.LLVMConstString(_str.buf(s), _str.byte_len(s), False); } @@ -674,8 +674,11 @@ fn encode_metadata(@trans.crate_ctxt cx, @ast.crate crate) ret C_postr(string_w.get_str()); } -fn write_metadata(@trans.crate_ctxt cx, @ast.crate crate) { - auto llmeta = encode_metadata(cx, crate); +fn write_metadata(@trans.crate_ctxt cx, bool shared, @ast.crate crate) { + auto llmeta = C_postr(""); + if (shared) { + llmeta = encode_metadata(cx, crate); + } auto llconst = trans.C_struct(vec(llmeta)); auto llglobal = llvm.LLVMAddGlobal(cx.llmod, trans.val_ty(llconst), |