diff -urNp -x '*.orig' llvm-19.1.5.src.org/tools/clang/include/clang/Driver/Distro.h llvm-19.1.5.src/tools/clang/include/clang/Driver/Distro.h --- llvm-19.1.5.src.org/tools/clang/include/clang/Driver/Distro.h 2024-12-03 08:46:10.000000000 +0100 +++ llvm-19.1.5.src/tools/clang/include/clang/Driver/Distro.h 2024-12-23 14:15:31.732367771 +0100 @@ -30,6 +30,7 @@ public: // the first and last known member in the family, e.g. IsRedHat(). AlpineLinux, ArchLinux, + TLDLinux, DebianLenny, DebianSqueeze, DebianWheezy, @@ -138,6 +139,10 @@ public: bool IsGentoo() const { return DistroVal == Gentoo; } + bool IsTLD() { + return DistroVal == TLDLinux; + } + /// @} }; diff -urNp -x '*.orig' llvm-19.1.5.src.org/tools/clang/lib/Driver/Distro.cpp llvm-19.1.5.src/tools/clang/lib/Driver/Distro.cpp --- llvm-19.1.5.src.org/tools/clang/lib/Driver/Distro.cpp 2024-12-03 08:46:10.000000000 +0100 +++ llvm-19.1.5.src/tools/clang/lib/Driver/Distro.cpp 2024-12-23 14:15:31.732367771 +0100 @@ -205,6 +205,9 @@ static Distro::DistroType DetectDistro(l if (VFS.exists("/etc/gentoo-release")) return Distro::Gentoo; + if (VFS.exists("/etc/tld-release")) + return Distro::TLDLinux; + return Distro::UnknownDistro; } diff -urNp -x '*.orig' llvm-19.1.5.src.org/tools/clang/lib/Driver/ToolChains/Gnu.cpp llvm-19.1.5.src/tools/clang/lib/Driver/ToolChains/Gnu.cpp --- llvm-19.1.5.src.org/tools/clang/lib/Driver/ToolChains/Gnu.cpp 2024-12-03 08:46:10.000000000 +0100 +++ llvm-19.1.5.src/tools/clang/lib/Driver/ToolChains/Gnu.cpp 2024-12-23 14:15:31.732367771 +0100 @@ -2463,6 +2463,7 @@ void Generic_GCC::GCCInstallationDetecto // lists should shrink over time. Please don't add more elements to *Triples. static const char *const AArch64LibDirs[] = {"/lib64", "/lib"}; static const char *const AArch64Triples[] = { + "aarch64-tld-linux", "aarch64-none-linux-gnu", "aarch64-linux-gnu", "aarch64-redhat-linux", "aarch64-suse-linux"}; static const char *const AArch64beLibDirs[] = {"/lib"}; @@ -2488,6 +2489,7 @@ void Generic_GCC::GCCInstallationDetecto static const char *const X86_64LibDirs[] = {"/lib64", "/lib"}; static const char *const X86_64Triples[] = { + "x86_64-tld-linux", "amd64-tld-linux", "x86_64-linux-gnu", "x86_64-unknown-linux-gnu", "x86_64-pc-linux-gnu", "x86_64-redhat-linux6E", "x86_64-redhat-linux", "x86_64-suse-linux", @@ -2498,6 +2500,7 @@ void Generic_GCC::GCCInstallationDetecto static const char *const X32LibDirs[] = {"/libx32", "/lib"}; static const char *const X86LibDirs[] = {"/lib32", "/lib"}; static const char *const X86Triples[] = { + "i686-tld-linux", "i586-linux-gnu", "i686-linux-gnu", "i686-pc-linux-gnu", "i386-redhat-linux6E", "i686-redhat-linux", "i386-redhat-linux", "i586-suse-linux", "i686-montavista-linux", diff -urNp -x '*.orig' llvm-19.1.5.src.org/tools/clang/lib/Driver/ToolChains/Linux.cpp llvm-19.1.5.src/tools/clang/lib/Driver/ToolChains/Linux.cpp --- llvm-19.1.5.src.org/tools/clang/lib/Driver/ToolChains/Linux.cpp 2024-12-03 08:46:10.000000000 +0100 +++ llvm-19.1.5.src/tools/clang/lib/Driver/ToolChains/Linux.cpp 2024-12-23 14:15:31.732367771 +0100 @@ -234,7 +234,7 @@ Linux::Linux(const Driver &D, const llvm ExtraOpts.push_back("now"); } - if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() || + if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() || Distro.IsTLD() || Triple.isAndroid()) { ExtraOpts.push_back("-z"); ExtraOpts.push_back("relro");