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