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 | |
| 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')
| -rw-r--r-- | src/comp/middle/metadata.rs | 11 | ||||
| -rw-r--r-- | src/comp/middle/trans.rs | 2 |
2 files changed, 8 insertions, 5 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), diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index aea6b8e9..64d1df7b 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -7747,7 +7747,7 @@ fn trans_crate(session.session sess, @ast.crate crate, ty.ctxt tcx, } // Translate the metadata. - middle.metadata.write_metadata(cx.ccx, crate); + middle.metadata.write_metadata(cx.ccx, shared, crate); run_passes(llmod, optimize, verify, save_temps, output, ot); } |