[PATCH] D53125: Detect Clear Linux and apply Clear's default linker options
mgorny accepted this revision. mgorny added a comment. This revision is now accepted and ready to land. LGTM, presuming the tests pass for you. https://reviews.llvm.org/D53125 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D53125: Detect Clear Linux and apply Clear's default linker options
thiagomacieira updated this revision to Diff 169779. thiagomacieira added a comment. Update detection: as of Clear Linux 25620, /usr/lib/os-relaese contains ID_LIKE=clear-linux-os, which allows detecting not only Clear itself, but also Linux distributions derived from it (Clear Linux mixes). https://reviews.llvm.org/D53125 Files: include/clang/Driver/Distro.h lib/Driver/Distro.cpp lib/Driver/ToolChains/Linux.cpp unittests/Driver/DistroTest.cpp Index: unittests/Driver/DistroTest.cpp === --- unittests/Driver/DistroTest.cpp +++ unittests/Driver/DistroTest.cpp @@ -302,4 +302,28 @@ ASSERT_FALSE(ArchLinux.IsDebian()); } +TEST(DistroTest, DetectClearLinux) { + vfs::InMemoryFileSystem ClearLinuxFileSystem; + ClearLinuxFileSystem.addFile("/usr/lib/os-release", 0, + llvm::MemoryBuffer::getMemBuffer("NAME=\"Clear Linux OS\"\n" + "VERSION=1\n" + "ID=clear-linux-os\n" + "ID_LIKE=clear-linux-os\n" + "VERSION_ID=25530\n" + "PRETTY_NAME=\"Clear Linux OS\"\n" + "ANSI_COLOR=\"1;35\"\n" + "HOME_URL=\"https://clearlinux.org\"\n; + "SUPPORT_URL=\"https://clearlinux.org\"\n; + "BUG_REPORT_URL=\"mailto:d...@lists.clearlinux.org\"\n" + "PRIVACY_POLICY_URL=\"http://www.intel.com/privacy\"\n;)); + + Distro ClearLinux{ClearLinuxFileSystem}; + ASSERT_EQ(Distro(Distro::ClearLinux), ClearLinux); + ASSERT_TRUE(ClearLinux.IsClearLinux()); + ASSERT_FALSE(ClearLinux.IsUbuntu()); + ASSERT_FALSE(ClearLinux.IsRedhat()); + ASSERT_FALSE(ClearLinux.IsOpenSUSE()); + ASSERT_FALSE(ClearLinux.IsDebian()); +} + } // end anonymous namespace Index: lib/Driver/ToolChains/Linux.cpp === --- lib/Driver/ToolChains/Linux.cpp +++ lib/Driver/ToolChains/Linux.cpp @@ -229,17 +229,20 @@ Distro Distro(D.getVFS()); - if (Distro.IsAlpineLinux() || Triple.isAndroid()) { + if (Distro.IsAlpineLinux() || Distro.IsClearLinux() || Triple.isAndroid()) { ExtraOpts.push_back("-z"); ExtraOpts.push_back("now"); } if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() || - Triple.isAndroid()) { + Distro.IsClearLinux() || Triple.isAndroid()) { ExtraOpts.push_back("-z"); ExtraOpts.push_back("relro"); } + if (Distro.IsClearLinux()) +ExtraOpts.push_back("--copy-dt-needed-entries"); + if (GCCInstallation.getParentLibPath().find("opt/rh/devtoolset") != StringRef::npos) // With devtoolset on RHEL, we want to add a bin directory that is relative @@ -287,7 +290,7 @@ ExtraOpts.push_back("--build-id"); #endif - if (IsAndroid || Distro.IsOpenSUSE()) + if (IsAndroid || Distro.IsOpenSUSE() || Distro.IsClearLinux()) ExtraOpts.push_back("--enable-new-dtags"); // The selection of paths to try here is designed to match the patterns which Index: lib/Driver/Distro.cpp === --- lib/Driver/Distro.cpp +++ lib/Driver/Distro.cpp @@ -137,6 +137,21 @@ if (VFS.exists("/etc/arch-release")) return Distro::ArchLinux; + File = VFS.getBufferForFile("/etc/os-release"); + if (!File) +File = VFS.getBufferForFile("/usr/lib/os-release"); + if (File) { +StringRef Data = File.get()->getBuffer(); +SmallVector Lines; +Data.split(Lines, "\n"); +Distro::DistroType Version = Distro::UnknownDistro; +for (StringRef Line : Lines) + if (Version == Distro::UnknownDistro && Line.startswith("ID_LIKE=")) +Version = llvm::StringSwitch(Line.substr(7)) + .Case("clear-linux-os", Distro::ClearLinux); +return Version; + } + return Distro::UnknownDistro; } Index: include/clang/Driver/Distro.h === --- include/clang/Driver/Distro.h +++ include/clang/Driver/Distro.h @@ -28,6 +28,7 @@ // the first and last known member in the family, e.g. IsRedHat(). AlpineLinux, ArchLinux, +ClearLinux, DebianLenny, DebianSqueeze, DebianWheezy, @@ -122,6 +123,10 @@ return DistroVal == AlpineLinux; } + bool IsClearLinux() const { +return DistroVal == ClearLinux; + } + /// @} }; ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D53125: Detect Clear Linux and apply Clear's default linker options
thiagomacieira marked an inline comment as done. thiagomacieira added inline comments. Comment at: lib/Driver/Distro.cpp:148 +for (StringRef Line : Lines) + if (Version == Distro::UnknownDistro && Line.startswith("ID=")) +Version = llvm::StringSwitch(Line.substr(3)) I'm changing this so we can detect Clear-derived distributions. https://reviews.llvm.org/D53125 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D53125: Detect Clear Linux and apply Clear's default linker options
thiagomacieira updated this revision to Diff 169236. thiagomacieira added a comment. Updated to check for /etc/os-release first and /usr/lib/os-release if that fails https://reviews.llvm.org/D53125 Files: include/clang/Driver/Distro.h lib/Driver/Distro.cpp lib/Driver/ToolChains/Linux.cpp unittests/Driver/DistroTest.cpp Index: unittests/Driver/DistroTest.cpp === --- unittests/Driver/DistroTest.cpp +++ unittests/Driver/DistroTest.cpp @@ -302,4 +302,27 @@ ASSERT_FALSE(ArchLinux.IsDebian()); } +TEST(DistroTest, DetectClearLinux) { + vfs::InMemoryFileSystem ClearLinuxFileSystem; + ClearLinuxFileSystem.addFile("/usr/lib/os-release", 0, + llvm::MemoryBuffer::getMemBuffer("NAME=\"Clear Linux OS\"\n" + "VERSION=1\n" + "ID=clear-linux-os\n" + "VERSION_ID=25530\n" + "PRETTY_NAME=\"Clear Linux OS\"\n" + "ANSI_COLOR=\"1;35\"\n" + "HOME_URL=\"https://clearlinux.org\"\n; + "SUPPORT_URL=\"https://clearlinux.org\"\n; + "BUG_REPORT_URL=\"mailto:d...@lists.clearlinux.org\"\n" + "PRIVACY_POLICY_URL=\"http://www.intel.com/privacy\"\n;)); + + Distro ClearLinux{ClearLinuxFileSystem}; + ASSERT_EQ(Distro(Distro::ClearLinux), ClearLinux); + ASSERT_TRUE(ClearLinux.IsClearLinux()); + ASSERT_FALSE(ClearLinux.IsUbuntu()); + ASSERT_FALSE(ClearLinux.IsRedhat()); + ASSERT_FALSE(ClearLinux.IsOpenSUSE()); + ASSERT_FALSE(ClearLinux.IsDebian()); +} + } // end anonymous namespace Index: lib/Driver/ToolChains/Linux.cpp === --- lib/Driver/ToolChains/Linux.cpp +++ lib/Driver/ToolChains/Linux.cpp @@ -229,16 +229,19 @@ Distro Distro(D.getVFS()); - if (Distro.IsAlpineLinux()) { + if (Distro.IsAlpineLinux() || Distro.IsClearLinux()) { ExtraOpts.push_back("-z"); ExtraOpts.push_back("now"); } - if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux()) { + if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() || Distro.IsClearLinux()) { ExtraOpts.push_back("-z"); ExtraOpts.push_back("relro"); } + if (Distro.IsClearLinux()) +ExtraOpts.push_back("--copy-dt-needed-entries"); + if (GCCInstallation.getParentLibPath().find("opt/rh/devtoolset") != StringRef::npos) // With devtoolset on RHEL, we want to add a bin directory that is relative @@ -283,7 +286,7 @@ ExtraOpts.push_back("--build-id"); #endif - if (IsAndroid || Distro.IsOpenSUSE()) + if (IsAndroid || Distro.IsOpenSUSE() || Distro.IsClearLinux()) ExtraOpts.push_back("--enable-new-dtags"); // The selection of paths to try here is designed to match the patterns which Index: lib/Driver/Distro.cpp === --- lib/Driver/Distro.cpp +++ lib/Driver/Distro.cpp @@ -136,6 +136,21 @@ if (VFS.exists("/etc/arch-release")) return Distro::ArchLinux; + File = VFS.getBufferForFile("/etc/os-release"); + if (!File) +File = VFS.getBufferForFile("/usr/lib/os-release"); + if (File) { +StringRef Data = File.get()->getBuffer(); +SmallVector Lines; +Data.split(Lines, "\n"); +Distro::DistroType Version = Distro::UnknownDistro; +for (StringRef Line : Lines) + if (Version == Distro::UnknownDistro && Line.startswith("ID=")) +Version = llvm::StringSwitch(Line.substr(3)) + .Case("clear-linux-os", Distro::ClearLinux); +return Version; + } + return Distro::UnknownDistro; } Index: include/clang/Driver/Distro.h === --- include/clang/Driver/Distro.h +++ include/clang/Driver/Distro.h @@ -28,6 +28,7 @@ // the first and last known member in the family, e.g. IsRedHat(). AlpineLinux, ArchLinux, +ClearLinux, DebianLenny, DebianSqueeze, DebianWheezy, @@ -122,6 +123,10 @@ return DistroVal == AlpineLinux; } + bool IsClearLinux() const { +return DistroVal == ClearLinux; + } + /// @} }; ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D53125: Detect Clear Linux and apply Clear's default linker options
thiagomacieira added inline comments. Comment at: lib/Driver/Distro.cpp:139 + File = VFS.getBufferForFile("/usr/lib/os-release"); + if (File) { mgorny wrote: > Technically speaking, the spec says you are supposed to read > `/etc/os-release` first and fall back to `/usr/lib/os-release` only if the > former does not exist. You're right, I'll adapt. https://reviews.llvm.org/D53125 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D53125: Detect Clear Linux and apply Clear's default linker options
mgorny added inline comments. Comment at: lib/Driver/Distro.cpp:139 + File = VFS.getBufferForFile("/usr/lib/os-release"); + if (File) { Technically speaking, the spec says you are supposed to read `/etc/os-release` first and fall back to `/usr/lib/os-release` only if the former does not exist. https://reviews.llvm.org/D53125 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D53125: Detect Clear Linux and apply Clear's default linker options
thiagomacieira updated this revision to Diff 169152. https://reviews.llvm.org/D53125 Files: include/clang/Driver/Distro.h lib/Driver/Distro.cpp lib/Driver/ToolChains/Linux.cpp unittests/Driver/DistroTest.cpp Index: unittests/Driver/DistroTest.cpp === --- unittests/Driver/DistroTest.cpp +++ unittests/Driver/DistroTest.cpp @@ -302,4 +302,27 @@ ASSERT_FALSE(ArchLinux.IsDebian()); } +TEST(DistroTest, DetectClearLinux) { + vfs::InMemoryFileSystem ClearLinuxFileSystem; + ClearLinuxFileSystem.addFile("/usr/lib/os-release", 0, + llvm::MemoryBuffer::getMemBuffer("NAME=\"Clear Linux OS\"\n" + "VERSION=1\n" + "ID=clear-linux-os\n" + "VERSION_ID=25530\n" + "PRETTY_NAME=\"Clear Linux OS\"\n" + "ANSI_COLOR=\"1;35\"\n" + "HOME_URL=\"https://clearlinux.org\"\n; + "SUPPORT_URL=\"https://clearlinux.org\"\n; + "BUG_REPORT_URL=\"mailto:d...@lists.clearlinux.org\"\n" + "PRIVACY_POLICY_URL=\"http://www.intel.com/privacy\"\n;)); + + Distro ClearLinux{ClearLinuxFileSystem}; + ASSERT_EQ(Distro(Distro::ClearLinux), ClearLinux); + ASSERT_TRUE(ClearLinux.IsClearLinux()); + ASSERT_FALSE(ClearLinux.IsUbuntu()); + ASSERT_FALSE(ClearLinux.IsRedhat()); + ASSERT_FALSE(ClearLinux.IsOpenSUSE()); + ASSERT_FALSE(ClearLinux.IsDebian()); +} + } // end anonymous namespace Index: lib/Driver/ToolChains/Linux.cpp === --- lib/Driver/ToolChains/Linux.cpp +++ lib/Driver/ToolChains/Linux.cpp @@ -229,16 +229,19 @@ Distro Distro(D.getVFS()); - if (Distro.IsAlpineLinux()) { + if (Distro.IsAlpineLinux() || Distro.IsClearLinux()) { ExtraOpts.push_back("-z"); ExtraOpts.push_back("now"); } - if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux()) { + if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() || Distro.IsClearLinux()) { ExtraOpts.push_back("-z"); ExtraOpts.push_back("relro"); } + if (Distro.IsClearLinux()) +ExtraOpts.push_back("--copy-dt-needed-entries"); + if (GCCInstallation.getParentLibPath().find("opt/rh/devtoolset") != StringRef::npos) // With devtoolset on RHEL, we want to add a bin directory that is relative @@ -283,7 +286,7 @@ ExtraOpts.push_back("--build-id"); #endif - if (IsAndroid || Distro.IsOpenSUSE()) + if (IsAndroid || Distro.IsOpenSUSE() || Distro.IsClearLinux()) ExtraOpts.push_back("--enable-new-dtags"); // The selection of paths to try here is designed to match the patterns which Index: lib/Driver/Distro.cpp === --- lib/Driver/Distro.cpp +++ lib/Driver/Distro.cpp @@ -136,6 +136,19 @@ if (VFS.exists("/etc/arch-release")) return Distro::ArchLinux; + File = VFS.getBufferForFile("/usr/lib/os-release"); + if (File) { +StringRef Data = File.get()->getBuffer(); +SmallVector Lines; +Data.split(Lines, "\n"); +Distro::DistroType Version = Distro::UnknownDistro; +for (StringRef Line : Lines) + if (Version == Distro::UnknownDistro && Line.startswith("ID=")) +Version = llvm::StringSwitch(Line.substr(3)) + .Case("clear-linux-os", Distro::ClearLinux); +return Version; + } + return Distro::UnknownDistro; } Index: include/clang/Driver/Distro.h === --- include/clang/Driver/Distro.h +++ include/clang/Driver/Distro.h @@ -28,6 +28,7 @@ // the first and last known member in the family, e.g. IsRedHat(). AlpineLinux, ArchLinux, +ClearLinux, DebianLenny, DebianSqueeze, DebianWheezy, @@ -122,6 +123,10 @@ return DistroVal == AlpineLinux; } + bool IsClearLinux() const { +return DistroVal == ClearLinux; + } + /// @} }; ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D53125: Detect Clear Linux and apply Clear's default linker options
thiagomacieira updated this revision to Diff 169151. thiagomacieira added a comment. Oops, add the missing portion of the unit test (the part that actually tests). https://reviews.llvm.org/D53125 Files: include/clang/Driver/Distro.h lib/Driver/Distro.cpp lib/Driver/ToolChains/Linux.cpp unittests/Driver/DistroTest.cpp Index: unittests/Driver/DistroTest.cpp === --- unittests/Driver/DistroTest.cpp +++ unittests/Driver/DistroTest.cpp @@ -302,4 +302,19 @@ ASSERT_FALSE(ArchLinux.IsDebian()); } +TEST(DistroTest, DetectClearLinux) { + vfs::InMemoryFileSystem ClearLinuxFileSystem; + ClearLinuxFileSystem.addFile("/usr/lib/os-release", 0, + llvm::MemoryBuffer::getMemBuffer("NAME=\"Clear Linux OS\"\n" + "VERSION=1\n" + "ID=clear-linux-os\n" + "VERSION_ID=25530\n" + "PRETTY_NAME=\"Clear Linux OS\"\n" + "ANSI_COLOR=\"1;35\"\n" + "HOME_URL=\"https://clearlinux.org\"\n; + "SUPPORT_URL=\"https://clearlinux.org\"\n; + "BUG_REPORT_URL=\"mailto:d...@lists.clearlinux.org\"\n" + "PRIVACY_POLICY_URL=\"http://www.intel.com/privacy\"\n;)); +} + } // end anonymous namespace Index: lib/Driver/ToolChains/Linux.cpp === --- lib/Driver/ToolChains/Linux.cpp +++ lib/Driver/ToolChains/Linux.cpp @@ -229,16 +229,19 @@ Distro Distro(D.getVFS()); - if (Distro.IsAlpineLinux()) { + if (Distro.IsAlpineLinux() || Distro.IsClearLinux()) { ExtraOpts.push_back("-z"); ExtraOpts.push_back("now"); } - if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux()) { + if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() || Distro.IsClearLinux()) { ExtraOpts.push_back("-z"); ExtraOpts.push_back("relro"); } + if (Distro.IsClearLinux()) +ExtraOpts.push_back("--copy-dt-needed-entries"); + if (GCCInstallation.getParentLibPath().find("opt/rh/devtoolset") != StringRef::npos) // With devtoolset on RHEL, we want to add a bin directory that is relative @@ -283,7 +286,7 @@ ExtraOpts.push_back("--build-id"); #endif - if (IsAndroid || Distro.IsOpenSUSE()) + if (IsAndroid || Distro.IsOpenSUSE() || Distro.IsClearLinux()) ExtraOpts.push_back("--enable-new-dtags"); // The selection of paths to try here is designed to match the patterns which Index: lib/Driver/Distro.cpp === --- lib/Driver/Distro.cpp +++ lib/Driver/Distro.cpp @@ -136,6 +136,19 @@ if (VFS.exists("/etc/arch-release")) return Distro::ArchLinux; + File = VFS.getBufferForFile("/usr/lib/os-release"); + if (File) { +StringRef Data = File.get()->getBuffer(); +SmallVector Lines; +Data.split(Lines, "\n"); +Distro::DistroType Version = Distro::UnknownDistro; +for (StringRef Line : Lines) + if (Version == Distro::UnknownDistro && Line.startswith("ID=")) +Version = llvm::StringSwitch(Line.substr(3)) + .Case("clear-linux-os", Distro::ClearLinux); +return Version; + } + return Distro::UnknownDistro; } Index: include/clang/Driver/Distro.h === --- include/clang/Driver/Distro.h +++ include/clang/Driver/Distro.h @@ -28,6 +28,7 @@ // the first and last known member in the family, e.g. IsRedHat(). AlpineLinux, ArchLinux, +ClearLinux, DebianLenny, DebianSqueeze, DebianWheezy, @@ -122,6 +123,10 @@ return DistroVal == AlpineLinux; } + bool IsClearLinux() const { +return DistroVal == ClearLinux; + } + /// @} }; ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D53125: Detect Clear Linux and apply Clear's default linker options
thiagomacieira created this revision. thiagomacieira added reviewers: mgorny, erichkeane. Herald added subscribers: cfe-commits, srhines. /usr/lib/os-release is the official path of /etc/os-release (the latter is usually a symlink to the former) Repository: rC Clang https://reviews.llvm.org/D53125 Files: include/clang/Driver/Distro.h lib/Driver/Distro.cpp lib/Driver/ToolChains/Linux.cpp unittests/Driver/DistroTest.cpp Index: unittests/Driver/DistroTest.cpp === --- unittests/Driver/DistroTest.cpp +++ unittests/Driver/DistroTest.cpp @@ -302,4 +302,19 @@ ASSERT_FALSE(ArchLinux.IsDebian()); } +TEST(DistroTest, DetectClearLinux) { + vfs::InMemoryFileSystem ClearLinuxFileSystem; + ClearLinuxFileSystem.addFile("/usr/lib/os-release", 0, + llvm::MemoryBuffer::getMemBuffer("NAME=\"Clear Linux OS\"\n" + "VERSION=1\n" + "ID=clear-linux-os\n" + "VERSION_ID=25530\n" + "PRETTY_NAME=\"Clear Linux OS\"\n" + "ANSI_COLOR=\"1;35\"\n" + "HOME_URL=\"https://clearlinux.org\"\n; + "SUPPORT_URL=\"https://clearlinux.org\"\n; + "BUG_REPORT_URL=\"mailto:d...@lists.clearlinux.org\"\n" + "PRIVACY_POLICY_URL=\"http://www.intel.com/privacy\"\n;)); +} + } // end anonymous namespace Index: lib/Driver/ToolChains/Linux.cpp === --- lib/Driver/ToolChains/Linux.cpp +++ lib/Driver/ToolChains/Linux.cpp @@ -229,16 +229,19 @@ Distro Distro(D.getVFS()); - if (Distro.IsAlpineLinux()) { + if (Distro.IsAlpineLinux() || Distro.IsClearLinux()) { ExtraOpts.push_back("-z"); ExtraOpts.push_back("now"); } - if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux()) { + if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() || Distro.IsClearLinux()) { ExtraOpts.push_back("-z"); ExtraOpts.push_back("relro"); } + if (Distro.IsClearLinux()) +ExtraOpts.push_back("--copy-dt-needed-entries"); + if (GCCInstallation.getParentLibPath().find("opt/rh/devtoolset") != StringRef::npos) // With devtoolset on RHEL, we want to add a bin directory that is relative @@ -283,7 +286,7 @@ ExtraOpts.push_back("--build-id"); #endif - if (IsAndroid || Distro.IsOpenSUSE()) + if (IsAndroid || Distro.IsOpenSUSE() || Distro.IsClearLinux()) ExtraOpts.push_back("--enable-new-dtags"); // The selection of paths to try here is designed to match the patterns which Index: lib/Driver/Distro.cpp === --- lib/Driver/Distro.cpp +++ lib/Driver/Distro.cpp @@ -136,6 +136,19 @@ if (VFS.exists("/etc/arch-release")) return Distro::ArchLinux; + File = VFS.getBufferForFile("/usr/lib/os-release"); + if (File) { +StringRef Data = File.get()->getBuffer(); +SmallVector Lines; +Data.split(Lines, "\n"); +Distro::DistroType Version = Distro::UnknownDistro; +for (StringRef Line : Lines) + if (Version == Distro::UnknownDistro && Line.startswith("ID=")) +Version = llvm::StringSwitch(Line.substr(3)) + .Case("clear-linux-os", Distro::ClearLinux); +return Version; + } + return Distro::UnknownDistro; } Index: include/clang/Driver/Distro.h === --- include/clang/Driver/Distro.h +++ include/clang/Driver/Distro.h @@ -28,6 +28,7 @@ // the first and last known member in the family, e.g. IsRedHat(). AlpineLinux, ArchLinux, +ClearLinux, DebianLenny, DebianSqueeze, DebianWheezy, @@ -122,6 +123,10 @@ return DistroVal == AlpineLinux; } + bool IsClearLinux() const { +return DistroVal == ClearLinux; + } + /// @} }; ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits