@@ -2011,32 +2011,6 @@ extern {
20112011 pub fn LLVMIsAAllocaInst ( value_ref : ValueRef ) -> ValueRef ;
20122012 pub fn LLVMIsAConstantInt ( value_ref : ValueRef ) -> ValueRef ;
20132013
2014- pub fn LLVMInitializeX86TargetInfo ( ) ;
2015- pub fn LLVMInitializeX86Target ( ) ;
2016- pub fn LLVMInitializeX86TargetMC ( ) ;
2017- pub fn LLVMInitializeX86AsmPrinter ( ) ;
2018- pub fn LLVMInitializeX86AsmParser ( ) ;
2019- pub fn LLVMInitializeARMTargetInfo ( ) ;
2020- pub fn LLVMInitializeARMTarget ( ) ;
2021- pub fn LLVMInitializeARMTargetMC ( ) ;
2022- pub fn LLVMInitializeARMAsmPrinter ( ) ;
2023- pub fn LLVMInitializeARMAsmParser ( ) ;
2024- pub fn LLVMInitializeAArch64TargetInfo ( ) ;
2025- pub fn LLVMInitializeAArch64Target ( ) ;
2026- pub fn LLVMInitializeAArch64TargetMC ( ) ;
2027- pub fn LLVMInitializeAArch64AsmPrinter ( ) ;
2028- pub fn LLVMInitializeAArch64AsmParser ( ) ;
2029- pub fn LLVMInitializeMipsTargetInfo ( ) ;
2030- pub fn LLVMInitializeMipsTarget ( ) ;
2031- pub fn LLVMInitializeMipsTargetMC ( ) ;
2032- pub fn LLVMInitializeMipsAsmPrinter ( ) ;
2033- pub fn LLVMInitializeMipsAsmParser ( ) ;
2034- pub fn LLVMInitializePowerPCTargetInfo ( ) ;
2035- pub fn LLVMInitializePowerPCTarget ( ) ;
2036- pub fn LLVMInitializePowerPCTargetMC ( ) ;
2037- pub fn LLVMInitializePowerPCAsmPrinter ( ) ;
2038- pub fn LLVMInitializePowerPCAsmParser ( ) ;
2039-
20402014 pub fn LLVMRustAddPass ( PM : PassManagerRef , Pass : * const c_char ) -> bool ;
20412015 pub fn LLVMRustCreateTargetMachine ( Triple : * const c_char ,
20422016 CPU : * const c_char ,
@@ -2144,6 +2118,53 @@ extern {
21442118 pub fn LLVMRustGetModuleDataLayout ( M : ModuleRef ) -> TargetDataRef ;
21452119}
21462120
2121+ #[ cfg( have_component_x86) ]
2122+ extern {
2123+ pub fn LLVMInitializeX86TargetInfo ( ) ;
2124+ pub fn LLVMInitializeX86Target ( ) ;
2125+ pub fn LLVMInitializeX86TargetMC ( ) ;
2126+ pub fn LLVMInitializeX86AsmPrinter ( ) ;
2127+ pub fn LLVMInitializeX86AsmParser ( ) ;
2128+ }
2129+ #[ cfg( have_component_arm) ]
2130+ extern {
2131+ pub fn LLVMInitializeARMTargetInfo ( ) ;
2132+ pub fn LLVMInitializeARMTarget ( ) ;
2133+ pub fn LLVMInitializeARMTargetMC ( ) ;
2134+ pub fn LLVMInitializeARMAsmPrinter ( ) ;
2135+ pub fn LLVMInitializeARMAsmParser ( ) ;
2136+ }
2137+ #[ cfg( have_component_aarch64) ]
2138+ extern {
2139+ pub fn LLVMInitializeAArch64TargetInfo ( ) ;
2140+ pub fn LLVMInitializeAArch64Target ( ) ;
2141+ pub fn LLVMInitializeAArch64TargetMC ( ) ;
2142+ pub fn LLVMInitializeAArch64AsmPrinter ( ) ;
2143+ pub fn LLVMInitializeAArch64AsmParser ( ) ;
2144+ }
2145+ #[ cfg( have_component_mips) ]
2146+ extern {
2147+ pub fn LLVMInitializeMipsTargetInfo ( ) ;
2148+ pub fn LLVMInitializeMipsTarget ( ) ;
2149+ pub fn LLVMInitializeMipsTargetMC ( ) ;
2150+ pub fn LLVMInitializeMipsAsmPrinter ( ) ;
2151+ pub fn LLVMInitializeMipsAsmParser ( ) ;
2152+ }
2153+ #[ cfg( have_component_powerpc) ]
2154+ extern {
2155+ pub fn LLVMInitializePowerPCTargetInfo ( ) ;
2156+ pub fn LLVMInitializePowerPCTarget ( ) ;
2157+ pub fn LLVMInitializePowerPCTargetMC ( ) ;
2158+ pub fn LLVMInitializePowerPCAsmPrinter ( ) ;
2159+ pub fn LLVMInitializePowerPCAsmParser ( ) ;
2160+ }
2161+ #[ cfg( have_component_pnacl) ]
2162+ extern {
2163+ pub fn LLVMInitializePNaClTargetInfo ( ) ;
2164+ pub fn LLVMInitializePNaClTarget ( ) ;
2165+ pub fn LLVMInitializePNaClTargetMC ( ) ;
2166+ }
2167+
21472168// LLVM requires symbols from this library, but apparently they're not printed
21482169// during llvm-config?
21492170#[ cfg( windows) ]
@@ -2357,6 +2378,20 @@ pub fn initialize_available_targets() {
23572378 init_target ! ( have_component_aarch64 AArch64 ) ;
23582379 init_target ! ( have_component_arm ARM ) ;
23592380 init_target ! ( have_component_x86 X86 ) ;
2381+
2382+ // PNaCl doesn't provide some of the optional target components, so we
2383+ // manually initialize it here.
2384+ #[ cfg( have_component_pnacl) ]
2385+ fn init_pnacl ( ) {
2386+ unsafe {
2387+ LLVMInitializePNaClTargetInfo ( ) ;
2388+ LLVMInitializePNaClTarget ( ) ;
2389+ LLVMInitializePNaClTargetMC ( ) ;
2390+ }
2391+ }
2392+ #[ cfg( not( have_component_pnacl) ) ]
2393+ fn init_pnacl ( ) { }
2394+ init_pnacl ( ) ;
23602395}
23612396
23622397// The module containing the native LLVM dependencies, generated by the build system
0 commit comments