@@ -2227,10 +2227,19 @@ void Generic_GCC::GCCInstallationDetector::init(
22272227 SmallVector<StringRef, 16 > CandidateBiarchTripleAliases;
22282228 // Add some triples that we want to check first.
22292229 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 ();
22332236 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+ }
22342243
22352244 CollectLibDirsAndTriples (TargetTriple, BiarchVariantTriple, CandidateLibDirs,
22362245 CandidateTripleAliases, CandidateBiarchLibDirs,
@@ -2453,11 +2462,9 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
24532462 // lists should shrink over time. Please don't add more elements to *Triples.
24542463 static const char *const AArch64LibDirs[] = {" /lib64" , " /lib" };
24552464 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" };
24582466 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" };
24612468
24622469 static const char *const ARMLibDirs[] = {" /lib" };
24632470 static const char *const ARMTriples[] = {" arm-linux-gnueabi" };
@@ -2482,9 +2489,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
24822489 " x86_64-linux-gnu" , " x86_64-unknown-linux-gnu" ,
24832490 " x86_64-pc-linux-gnu" , " x86_64-redhat-linux6E" ,
24842491 " 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" };
24882494 static const char *const X32Triples[] = {" x86_64-linux-gnux32" ,
24892495 " x86_64-pc-linux-gnux32" };
24902496 static const char *const X32LibDirs[] = {" /libx32" , " /lib" };
@@ -2500,26 +2506,24 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
25002506 " loongarch64-linux-gnu" , " loongarch64-unknown-linux-gnu" };
25012507
25022508 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" };
25052511
25062512 static const char *const MIPSLibDirs[] = {" /libo32" , " /lib" };
25072513 static const char *const MIPSTriples[] = {
25082514 " mips-linux-gnu" , " mips-mti-linux" , " mips-mti-linux-gnu" ,
25092515 " mips-img-linux-gnu" , " mipsisa32r6-linux-gnu" };
25102516 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" };
25132519
25142520 static const char *const MIPS64LibDirs[] = {" /lib64" , " /lib" };
25152521 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" ,
25182523 " mipsisa64r6-linux-gnu" , " mipsisa64r6-linux-gnuabi64" };
25192524 static const char *const MIPS64ELLibDirs[] = {" /lib64" , " /lib" };
25202525 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" ,
25232527 " mipsisa64r6el-linux-gnu" , " mipsisa64r6el-linux-gnuabi64" };
25242528
25252529 static const char *const MIPSN32LibDirs[] = {" /lib32" };
@@ -2534,46 +2538,39 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
25342538
25352539 static const char *const PPCLibDirs[] = {" /lib32" , " /lib" };
25362540 static const char *const PPCTriples[] = {
2537- " powerpc-linux-gnu " , " powerpc- unknown-linux-gnu" , " powerpc-linux-gnuspe " ,
2541+ " powerpc-unknown-linux-gnu" ,
25382542 // On 32-bit PowerPC systems running SUSE Linux, gcc is configured as a
25392543 // 64-bit compiler which defaults to "-m32", hence "powerpc64-suse-linux".
25402544 " powerpc64-suse-linux" , " powerpc-montavista-linuxspe" };
25412545 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" ,
25442547 " powerpcle-linux-musl" };
25452548
25462549 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" };
25502553 static const char *const PPC64LELibDirs[] = {" /lib64" , " /lib" };
25512554 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" };
25552557
25562558 static const char *const RISCV32LibDirs[] = {" /lib32" , " /lib" };
25572559 static const char *const RISCV32Triples[] = {" riscv32-unknown-linux-gnu" ,
2558- " riscv32-linux-gnu" ,
25592560 " riscv32-unknown-elf" };
25602561 static const char *const RISCV64LibDirs[] = {" /lib64" , " /lib" };
25612562 static const char *const RISCV64Triples[] = {" riscv64-unknown-linux-gnu" ,
2562- " riscv64-linux-gnu" ,
25632563 " riscv64-unknown-elf" };
25642564
25652565 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" };
25682567 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" };
25712569
25722570 static const char *const SystemZLibDirs[] = {" /lib64" , " /lib" };
25732571 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" };
25772574
25782575 using std::begin;
25792576 using std::end;
0 commit comments