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