about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorRafael Ávila de Espíndola <respindola@mozilla.com>2011-06-01 15:45:31 -0400
committerRafael Ávila de Espíndola <respindola@mozilla.com>2011-06-01 15:45:31 -0400
commit30efdeeca1bd0d60412fdb9e88eba6336ffcacea (patch)
tree8e6e044d4515457c2cc5285f95afff7811507b97 /src
parent2ef2bda276d2fe28d8b15f722850f5f21b226792 (diff)
downloadrust-30efdeeca1bd0d60412fdb9e88eba6336ffcacea.tar.gz
rust-30efdeeca1bd0d60412fdb9e88eba6336ffcacea.zip
Visibility is an ELF concept and protected visibility is not very well implemented,
avoid using it for now.

Instead, mark pairs that are not needed elsewhere as internal.
Diffstat (limited to 'src')
-rw-r--r--src/comp/middle/trans.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index 3e3f8654be3..78850d20fa1 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@@ -7436,9 +7436,12 @@ fn register_fn_pair(&@crate_ctxt cx, str ps, TypeRef llpairty, ValueRef llfn,
 
     llvm::LLVMSetInitializer(gvar, pair);
     llvm::LLVMSetGlobalConstant(gvar, True);
-    llvm::LLVMSetVisibility(gvar,
-                           lib::llvm::LLVMProtectedVisibility
-                           as llvm::Visibility);
+
+    // FIXME: We should also hide the unexported pairs in crates.
+    if (!cx.sess.get_opts().shared) {
+        llvm::LLVMSetLinkage(gvar, lib::llvm::LLVMInternalLinkage
+                             as llvm::Linkage);
+    }
 
     cx.item_ids.insert(id, llfn);
     cx.item_symbols.insert(id, ps);