@@ -2166,53 +2166,6 @@ extern {
2166
2166
pub fn LLVMRustFreeOperandBundleDef ( Bundle : OperandBundleDefRef ) ;
2167
2167
}
2168
2168
2169
- #[ cfg( have_component_x86) ]
2170
- extern {
2171
- pub fn LLVMInitializeX86TargetInfo ( ) ;
2172
- pub fn LLVMInitializeX86Target ( ) ;
2173
- pub fn LLVMInitializeX86TargetMC ( ) ;
2174
- pub fn LLVMInitializeX86AsmPrinter ( ) ;
2175
- pub fn LLVMInitializeX86AsmParser ( ) ;
2176
- }
2177
- #[ cfg( have_component_arm) ]
2178
- extern {
2179
- pub fn LLVMInitializeARMTargetInfo ( ) ;
2180
- pub fn LLVMInitializeARMTarget ( ) ;
2181
- pub fn LLVMInitializeARMTargetMC ( ) ;
2182
- pub fn LLVMInitializeARMAsmPrinter ( ) ;
2183
- pub fn LLVMInitializeARMAsmParser ( ) ;
2184
- }
2185
- #[ cfg( have_component_aarch64) ]
2186
- extern {
2187
- pub fn LLVMInitializeAArch64TargetInfo ( ) ;
2188
- pub fn LLVMInitializeAArch64Target ( ) ;
2189
- pub fn LLVMInitializeAArch64TargetMC ( ) ;
2190
- pub fn LLVMInitializeAArch64AsmPrinter ( ) ;
2191
- pub fn LLVMInitializeAArch64AsmParser ( ) ;
2192
- }
2193
- #[ cfg( have_component_mips) ]
2194
- extern {
2195
- pub fn LLVMInitializeMipsTargetInfo ( ) ;
2196
- pub fn LLVMInitializeMipsTarget ( ) ;
2197
- pub fn LLVMInitializeMipsTargetMC ( ) ;
2198
- pub fn LLVMInitializeMipsAsmPrinter ( ) ;
2199
- pub fn LLVMInitializeMipsAsmParser ( ) ;
2200
- }
2201
- #[ cfg( have_component_powerpc) ]
2202
- extern {
2203
- pub fn LLVMInitializePowerPCTargetInfo ( ) ;
2204
- pub fn LLVMInitializePowerPCTarget ( ) ;
2205
- pub fn LLVMInitializePowerPCTargetMC ( ) ;
2206
- pub fn LLVMInitializePowerPCAsmPrinter ( ) ;
2207
- pub fn LLVMInitializePowerPCAsmParser ( ) ;
2208
- }
2209
- #[ cfg( have_component_pnacl) ]
2210
- extern {
2211
- pub fn LLVMInitializePNaClTargetInfo ( ) ;
2212
- pub fn LLVMInitializePNaClTarget ( ) ;
2213
- pub fn LLVMInitializePNaClTargetMC ( ) ;
2214
- }
2215
-
2216
2169
// LLVM requires symbols from this library, but apparently they're not printed
2217
2170
// during llvm-config?
2218
2171
#[ cfg( windows) ]
@@ -2399,47 +2352,55 @@ pub unsafe fn debug_loc_to_string(c: ContextRef, tr: DebugLocRef) -> String {
2399
2352
2400
2353
pub fn initialize_available_targets ( ) {
2401
2354
macro_rules! init_target(
2402
- ( $cfg: ident $arch : ident) => { {
2355
+ ( $cfg: meta , $ ( $method : ident) , * ) => { {
2403
2356
#[ cfg( $cfg) ]
2404
2357
fn init( ) {
2358
+ extern {
2359
+ $( fn $method( ) ; ) *
2360
+ }
2405
2361
unsafe {
2406
- let f = concat_idents!( LLVMInitialize , $arch, TargetInfo ) ;
2407
- f( ) ;
2408
- let f = concat_idents!( LLVMInitialize , $arch, Target ) ;
2409
- f( ) ;
2410
- let f = concat_idents!( LLVMInitialize , $arch, TargetMC ) ;
2411
- f( ) ;
2412
- let f = concat_idents!( LLVMInitialize , $arch, AsmPrinter ) ;
2413
- f( ) ;
2414
- let f = concat_idents!( LLVMInitialize , $arch, AsmParser ) ;
2415
- f( ) ;
2362
+ $( $method( ) ; ) *
2416
2363
}
2417
2364
}
2418
2365
#[ cfg( not( $cfg) ) ]
2419
2366
fn init( ) { }
2420
2367
init( ) ;
2421
2368
} }
2422
2369
) ;
2423
-
2424
- init_target ! ( have_component_powerpc PowerPC ) ;
2425
- init_target ! ( have_component_mips Mips ) ;
2426
- init_target ! ( have_component_aarch64 AArch64 ) ;
2427
- init_target ! ( have_component_arm ARM ) ;
2428
- init_target ! ( have_component_x86 X86 ) ;
2429
-
2430
- // PNaCl doesn't provide some of the optional target components, so we
2431
- // manually initialize it here.
2432
- #[ cfg( have_component_pnacl) ]
2433
- fn init_pnacl ( ) {
2434
- unsafe {
2435
- LLVMInitializePNaClTargetInfo ( ) ;
2436
- LLVMInitializePNaClTarget ( ) ;
2437
- LLVMInitializePNaClTargetMC ( ) ;
2438
- }
2439
- }
2440
- #[ cfg( not( have_component_pnacl) ) ]
2441
- fn init_pnacl ( ) { }
2442
- init_pnacl ( ) ;
2370
+ init_target ! ( llvm_component = "x86" ,
2371
+ LLVMInitializeX86TargetInfo ,
2372
+ LLVMInitializeX86Target ,
2373
+ LLVMInitializeX86TargetMC ,
2374
+ LLVMInitializeX86AsmPrinter ,
2375
+ LLVMInitializeX86AsmParser ) ;
2376
+ init_target ! ( llvm_component = "arm" ,
2377
+ LLVMInitializeARMTargetInfo ,
2378
+ LLVMInitializeARMTarget ,
2379
+ LLVMInitializeARMTargetMC ,
2380
+ LLVMInitializeARMAsmPrinter ,
2381
+ LLVMInitializeARMAsmParser ) ;
2382
+ init_target ! ( llvm_component = "aarch64" ,
2383
+ LLVMInitializeAArch64TargetInfo ,
2384
+ LLVMInitializeAArch64Target ,
2385
+ LLVMInitializeAArch64TargetMC ,
2386
+ LLVMInitializeAArch64AsmPrinter ,
2387
+ LLVMInitializeAArch64AsmParser ) ;
2388
+ init_target ! ( llvm_component = "mips" ,
2389
+ LLVMInitializeMipsTargetInfo ,
2390
+ LLVMInitializeMipsTarget ,
2391
+ LLVMInitializeMipsTargetMC ,
2392
+ LLVMInitializeMipsAsmPrinter ,
2393
+ LLVMInitializeMipsAsmParser ) ;
2394
+ init_target ! ( llvm_component = "powerpc" ,
2395
+ LLVMInitializePowerPCTargetInfo ,
2396
+ LLVMInitializePowerPCTarget ,
2397
+ LLVMInitializePowerPCTargetMC ,
2398
+ LLVMInitializePowerPCAsmPrinter ,
2399
+ LLVMInitializePowerPCAsmParser ) ;
2400
+ init_target ! ( llvm_component = "pnacl" ,
2401
+ LLVMInitializePNaClTargetInfo ,
2402
+ LLVMInitializePNaClTarget ,
2403
+ LLVMInitializePNaClTargetMC ) ;
2443
2404
}
2444
2405
2445
2406
pub fn last_error ( ) -> Option < String > {
0 commit comments