@@ -2011,32 +2011,6 @@ extern {
2011
2011
pub fn LLVMIsAAllocaInst ( value_ref : ValueRef ) -> ValueRef ;
2012
2012
pub fn LLVMIsAConstantInt ( value_ref : ValueRef ) -> ValueRef ;
2013
2013
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
-
2040
2014
pub fn LLVMRustAddPass ( PM : PassManagerRef , Pass : * const c_char ) -> bool ;
2041
2015
pub fn LLVMRustCreateTargetMachine ( Triple : * const c_char ,
2042
2016
CPU : * const c_char ,
@@ -2144,6 +2118,53 @@ extern {
2144
2118
pub fn LLVMRustGetModuleDataLayout ( M : ModuleRef ) -> TargetDataRef ;
2145
2119
}
2146
2120
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
+
2147
2168
// LLVM requires symbols from this library, but apparently they're not printed
2148
2169
// during llvm-config?
2149
2170
#[ cfg( windows) ]
@@ -2357,6 +2378,20 @@ pub fn initialize_available_targets() {
2357
2378
init_target ! ( have_component_aarch64 AArch64 ) ;
2358
2379
init_target ! ( have_component_arm ARM ) ;
2359
2380
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 ( ) ;
2360
2395
}
2361
2396
2362
2397
// The module containing the native LLVM dependencies, generated by the build system
0 commit comments