@@ -2227,10 +2227,19 @@ void Generic_GCC::GCCInstallationDetector::init(
2227
2227
SmallVector<StringRef, 16 > CandidateBiarchTripleAliases;
2228
2228
// Add some triples that we want to check first.
2229
2229
CandidateTripleAliases.push_back (TargetTriple.str ());
2230
- std::string TripleNoVendor = TargetTriple.getArchName ().str () + " -" +
2231
- TargetTriple.getOSAndEnvironmentName ().str ();
2232
- if (TargetTriple.getVendor () == llvm::Triple::UnknownVendor)
2230
+ std::string TripleNoVendor, BiarchTripleNoVendor;
2231
+ if (TargetTriple.getVendor () == llvm::Triple::UnknownVendor) {
2232
+ StringRef OSEnv = TargetTriple.getOSAndEnvironmentName ();
2233
+ if (TargetTriple.getEnvironment () == llvm::Triple::GNUX32)
2234
+ OSEnv = " linux-gnu" ;
2235
+ TripleNoVendor = (TargetTriple.getArchName ().str () + ' -' + OSEnv).str ();
2233
2236
CandidateTripleAliases.push_back (TripleNoVendor);
2237
+ if (BiarchVariantTriple.getArch () != llvm::Triple::UnknownArch) {
2238
+ BiarchTripleNoVendor =
2239
+ (BiarchVariantTriple.getArchName ().str () + ' -' + OSEnv).str ();
2240
+ CandidateBiarchTripleAliases.push_back (BiarchTripleNoVendor);
2241
+ }
2242
+ }
2234
2243
2235
2244
CollectLibDirsAndTriples (TargetTriple, BiarchVariantTriple, CandidateLibDirs,
2236
2245
CandidateTripleAliases, CandidateBiarchLibDirs,
@@ -2453,11 +2462,9 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
2453
2462
// lists should shrink over time. Please don't add more elements to *Triples.
2454
2463
static const char *const AArch64LibDirs[] = {" /lib64" , " /lib" };
2455
2464
static const char *const AArch64Triples[] = {
2456
- " aarch64-none-linux-gnu" , " aarch64-linux-gnu" , " aarch64-redhat-linux" ,
2457
- " aarch64-suse-linux" };
2465
+ " aarch64-none-linux-gnu" , " aarch64-redhat-linux" , " aarch64-suse-linux" };
2458
2466
static const char *const AArch64beLibDirs[] = {" /lib" };
2459
- static const char *const AArch64beTriples[] = {" aarch64_be-none-linux-gnu" ,
2460
- " aarch64_be-linux-gnu" };
2467
+ static const char *const AArch64beTriples[] = {" aarch64_be-none-linux-gnu" };
2461
2468
2462
2469
static const char *const ARMLibDirs[] = {" /lib" };
2463
2470
static const char *const ARMTriples[] = {" arm-linux-gnueabi" };
@@ -2482,9 +2489,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
2482
2489
" x86_64-linux-gnu" , " x86_64-unknown-linux-gnu" ,
2483
2490
" x86_64-pc-linux-gnu" , " x86_64-redhat-linux6E" ,
2484
2491
" x86_64-redhat-linux" , " x86_64-suse-linux" ,
2485
- " x86_64-manbo-linux-gnu" , " x86_64-linux-gnu" ,
2486
- " x86_64-slackware-linux" , " x86_64-unknown-linux" ,
2487
- " x86_64-amazon-linux" };
2492
+ " x86_64-manbo-linux-gnu" , " x86_64-slackware-linux" ,
2493
+ " x86_64-unknown-linux" , " x86_64-amazon-linux" };
2488
2494
static const char *const X32Triples[] = {" x86_64-linux-gnux32" ,
2489
2495
" x86_64-pc-linux-gnux32" };
2490
2496
static const char *const X32LibDirs[] = {" /libx32" , " /lib" };
@@ -2500,26 +2506,24 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
2500
2506
" loongarch64-linux-gnu" , " loongarch64-unknown-linux-gnu" };
2501
2507
2502
2508
static const char *const M68kLibDirs[] = {" /lib" };
2503
- static const char *const M68kTriples[] = {
2504
- " m68k-linux-gnu " , " m68k-unknown-linux-gnu " , " m68k-suse-linux" };
2509
+ static const char *const M68kTriples[] = {" m68k-unknown-linux-gnu " ,
2510
+ " m68k-suse-linux" };
2505
2511
2506
2512
static const char *const MIPSLibDirs[] = {" /libo32" , " /lib" };
2507
2513
static const char *const MIPSTriples[] = {
2508
2514
" mips-linux-gnu" , " mips-mti-linux" , " mips-mti-linux-gnu" ,
2509
2515
" mips-img-linux-gnu" , " mipsisa32r6-linux-gnu" };
2510
2516
static const char *const MIPSELLibDirs[] = {" /libo32" , " /lib" };
2511
- static const char *const MIPSELTriples[] = {
2512
- " mipsel-linux-gnu " , " mips-img-linux-gnu " , " mipsisa32r6el -linux-gnu" };
2517
+ static const char *const MIPSELTriples[] = {" mipsel-linux-gnu " ,
2518
+ " mips-img-linux-gnu" };
2513
2519
2514
2520
static const char *const MIPS64LibDirs[] = {" /lib64" , " /lib" };
2515
2521
static const char *const MIPS64Triples[] = {
2516
- " mips64-linux-gnu" , " mips-mti-linux-gnu" ,
2517
- " mips-img-linux-gnu" , " mips64-linux-gnuabi64" ,
2522
+ " mips-mti-linux-gnu" , " mips-img-linux-gnu" , " mips64-linux-gnuabi64" ,
2518
2523
" mipsisa64r6-linux-gnu" , " mipsisa64r6-linux-gnuabi64" };
2519
2524
static const char *const MIPS64ELLibDirs[] = {" /lib64" , " /lib" };
2520
2525
static const char *const MIPS64ELTriples[] = {
2521
- " mips64el-linux-gnu" , " mips-mti-linux-gnu" ,
2522
- " mips-img-linux-gnu" , " mips64el-linux-gnuabi64" ,
2526
+ " mips-mti-linux-gnu" , " mips-img-linux-gnu" , " mips64el-linux-gnuabi64" ,
2523
2527
" mipsisa64r6el-linux-gnu" , " mipsisa64r6el-linux-gnuabi64" };
2524
2528
2525
2529
static const char *const MIPSN32LibDirs[] = {" /lib32" };
@@ -2534,46 +2538,39 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
2534
2538
2535
2539
static const char *const PPCLibDirs[] = {" /lib32" , " /lib" };
2536
2540
static const char *const PPCTriples[] = {
2537
- " powerpc-linux-gnu " , " powerpc- unknown-linux-gnu" , " powerpc-linux-gnuspe " ,
2541
+ " powerpc-unknown-linux-gnu" ,
2538
2542
// On 32-bit PowerPC systems running SUSE Linux, gcc is configured as a
2539
2543
// 64-bit compiler which defaults to "-m32", hence "powerpc64-suse-linux".
2540
2544
" powerpc64-suse-linux" , " powerpc-montavista-linuxspe" };
2541
2545
static const char *const PPCLELibDirs[] = {" /lib32" , " /lib" };
2542
- static const char *const PPCLETriples[] = {" powerpcle-linux-gnu" ,
2543
- " powerpcle-unknown-linux-gnu" ,
2546
+ static const char *const PPCLETriples[] = {" powerpcle-unknown-linux-gnu" ,
2544
2547
" powerpcle-linux-musl" };
2545
2548
2546
2549
static const char *const PPC64LibDirs[] = {" /lib64" , " /lib" };
2547
- static const char *const PPC64Triples[] = {
2548
- " powerpc64-linux-gnu " , " powerpc64-unknown -linux-gnu " ,
2549
- " powerpc64-suse-linux " , " ppc64-redhat-linux" };
2550
+ static const char *const PPC64Triples[] = {" powerpc64-unknown-linux-gnu " ,
2551
+ " powerpc64-suse -linux" ,
2552
+ " ppc64-redhat-linux" };
2550
2553
static const char *const PPC64LELibDirs[] = {" /lib64" , " /lib" };
2551
2554
static const char *const PPC64LETriples[] = {
2552
- " powerpc64le-linux-gnu" , " powerpc64le-unknown-linux-gnu" ,
2553
- " powerpc64le-none-linux-gnu" , " powerpc64le-suse-linux" ,
2554
- " ppc64le-redhat-linux" };
2555
+ " powerpc64le-unknown-linux-gnu" , " powerpc64le-none-linux-gnu" ,
2556
+ " powerpc64le-suse-linux" , " ppc64le-redhat-linux" };
2555
2557
2556
2558
static const char *const RISCV32LibDirs[] = {" /lib32" , " /lib" };
2557
2559
static const char *const RISCV32Triples[] = {" riscv32-unknown-linux-gnu" ,
2558
- " riscv32-linux-gnu" ,
2559
2560
" riscv32-unknown-elf" };
2560
2561
static const char *const RISCV64LibDirs[] = {" /lib64" , " /lib" };
2561
2562
static const char *const RISCV64Triples[] = {" riscv64-unknown-linux-gnu" ,
2562
- " riscv64-linux-gnu" ,
2563
2563
" riscv64-unknown-elf" };
2564
2564
2565
2565
static const char *const SPARCv8LibDirs[] = {" /lib32" , " /lib" };
2566
- static const char *const SPARCv8Triples[] = {" sparc-linux-gnu" ,
2567
- " sparcv8-linux-gnu" };
2566
+ static const char *const SPARCv8Triples[] = {" sparcv8-linux-gnu" };
2568
2567
static const char *const SPARCv9LibDirs[] = {" /lib64" , " /lib" };
2569
- static const char *const SPARCv9Triples[] = {" sparc64-linux-gnu" ,
2570
- " sparcv9-linux-gnu" };
2568
+ static const char *const SPARCv9Triples[] = {" sparcv9-linux-gnu" };
2571
2569
2572
2570
static const char *const SystemZLibDirs[] = {" /lib64" , " /lib" };
2573
2571
static const char *const SystemZTriples[] = {
2574
- " s390x-linux-gnu" , " s390x-unknown-linux-gnu" , " s390x-ibm-linux-gnu" ,
2575
- " s390x-suse-linux" , " s390x-redhat-linux" };
2576
-
2572
+ " s390x-unknown-linux-gnu" , " s390x-ibm-linux-gnu" , " s390x-suse-linux" ,
2573
+ " s390x-redhat-linux" };
2577
2574
2578
2575
using std::begin;
2579
2576
using std::end;
0 commit comments