From eeee0e8f4c30301d079ab225f093804c939c3ef3 Mon Sep 17 00:00:00 2001 From: Steve Klabnik Date: Mon, 16 Feb 2015 06:37:49 -0500 Subject: [PATCH] Remove hax Fixes #19321 --- src/librustc_llvm/lib.rs | 61 +--------------------------------------- 1 file changed, 1 insertion(+), 60 deletions(-) diff --git a/src/librustc_llvm/lib.rs b/src/librustc_llvm/lib.rs index 878070e98e7e8..a8b0865535507 100644 --- a/src/librustc_llvm/lib.rs +++ b/src/librustc_llvm/lib.rs @@ -58,7 +58,7 @@ pub use self::Linkage::*; use std::ffi::CString; use std::cell::RefCell; -use std::{raw, mem, ptr}; +use std::{raw, mem}; use libc::{c_uint, c_ushort, uint64_t, c_int, size_t, c_char}; use libc::{c_longlong, c_ulonglong, c_void}; use debuginfo::{DIBuilderRef, DIDescriptor, @@ -2225,65 +2225,6 @@ pub unsafe fn debug_loc_to_string(c: ContextRef, tr: DebugLocRef) -> String { .expect("got a non-UTF8 DebugLoc from LLVM") } -// FIXME #15460 - create a public function that actually calls our -// static LLVM symbols. Otherwise the linker will just throw llvm -// away. We're just calling lots of stuff until we transitively get -// all of LLVM. This is worse than anything. -pub unsafe fn static_link_hack_this_sucks() { - LLVMInitializePasses(); - - LLVMInitializeX86TargetInfo(); - LLVMInitializeX86Target(); - LLVMInitializeX86TargetMC(); - LLVMInitializeX86AsmPrinter(); - LLVMInitializeX86AsmParser(); - - LLVMInitializeARMTargetInfo(); - LLVMInitializeARMTarget(); - LLVMInitializeARMTargetMC(); - LLVMInitializeARMAsmPrinter(); - LLVMInitializeARMAsmParser(); - - LLVMInitializeAArch64TargetInfo(); - LLVMInitializeAArch64Target(); - LLVMInitializeAArch64TargetMC(); - LLVMInitializeAArch64AsmPrinter(); - LLVMInitializeAArch64AsmParser(); - - LLVMInitializeMipsTargetInfo(); - LLVMInitializeMipsTarget(); - LLVMInitializeMipsTargetMC(); - LLVMInitializeMipsAsmPrinter(); - LLVMInitializeMipsAsmParser(); - - LLVMInitializePowerPCTargetInfo(); - LLVMInitializePowerPCTarget(); - LLVMInitializePowerPCTargetMC(); - LLVMInitializePowerPCAsmPrinter(); - LLVMInitializePowerPCAsmParser(); - - LLVMRustSetLLVMOptions(0 as c_int, ptr::null()); - - LLVMPassManagerBuilderPopulateModulePassManager(ptr::null_mut(), ptr::null_mut()); - LLVMPassManagerBuilderPopulateLTOPassManager(ptr::null_mut(), ptr::null_mut(), False, False); - LLVMPassManagerBuilderPopulateFunctionPassManager(ptr::null_mut(), ptr::null_mut()); - LLVMPassManagerBuilderSetOptLevel(ptr::null_mut(), 0 as c_uint); - LLVMPassManagerBuilderUseInlinerWithThreshold(ptr::null_mut(), 0 as c_uint); - LLVMWriteBitcodeToFile(ptr::null_mut(), ptr::null()); - LLVMPassManagerBuilderCreate(); - LLVMPassManagerBuilderDispose(ptr::null_mut()); - - LLVMRustLinkInExternalBitcode(ptr::null_mut(), ptr::null(), 0 as size_t); - - LLVMLinkInMCJIT(); - LLVMLinkInInterpreter(); - - extern { - fn LLVMLinkInMCJIT(); - fn LLVMLinkInInterpreter(); - } -} - // The module containing the native LLVM dependencies, generated by the build system // Note that this must come after the rustllvm extern declaration so that // parts of LLVM that rustllvm depends on aren't thrown away by the linker.