[clang] [clang] Updates for support for Ubunutu, Debian and RHEL (PR #162796)

Brad Smith via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 10 01:25:01 PDT 2025


https://github.com/brad0 updated https://github.com/llvm/llvm-project/pull/162796

>From 0f81e057ccb435b910a6d8068784b70bde764c4e Mon Sep 17 00:00:00 2001
From: Brad Smith <brad at comstyle.com>
Date: Fri, 10 Oct 2025 03:06:57 -0400
Subject: [PATCH] [clang] Updates for support for Ubunutu, Debian and RHEL

Remove support for long unsupported Ubuntu, Debian and RHEL.

Add support for RHEL 8, 9 and 10 and recognize Rocky and Alma Linux
as RHEL.
---
 clang/include/clang/Driver/Distro.h | 18 ++++++------------
 clang/lib/Driver/Distro.cpp         | 26 +++++++++-----------------
 2 files changed, 15 insertions(+), 29 deletions(-)

diff --git a/clang/include/clang/Driver/Distro.h b/clang/include/clang/Driver/Distro.h
index 008de0dc94b03..9544ab53f7fd9 100644
--- a/clang/include/clang/Driver/Distro.h
+++ b/clang/include/clang/Driver/Distro.h
@@ -30,9 +30,6 @@ class Distro {
     // the first and last known member in the family, e.g. IsRedHat().
     AlpineLinux,
     ArchLinux,
-    DebianLenny,
-    DebianSqueeze,
-    DebianWheezy,
     DebianJessie,
     DebianStretch,
     DebianBuster,
@@ -42,16 +39,13 @@ class Distro {
     DebianForky,
     DebianDuke,
     Exherbo,
-    RHEL5,
-    RHEL6,
     RHEL7,
+    RHEL8,
+    RHEL9,
+    RHEL10,
     Fedora,
     Gentoo,
     OpenSUSE,
-    UbuntuMaverick,
-    UbuntuNatty,
-    UbuntuOneiric,
-    UbuntuPrecise,
     UbuntuQuantal,
     UbuntuRaring,
     UbuntuSaucy,
@@ -120,17 +114,17 @@ class Distro {
   /// @{
 
   bool IsRedhat() const {
-    return DistroVal == Fedora || (DistroVal >= RHEL5 && DistroVal <= RHEL7);
+    return DistroVal == Fedora || DistroVal >= RHEL7 && DistroVal <= RHEL10);
   }
 
   bool IsOpenSUSE() const { return DistroVal == OpenSUSE; }
 
   bool IsDebian() const {
-    return DistroVal >= DebianLenny && DistroVal <= DebianDuke;
+    return DistroVal >= DebianJessie && DistroVal <= DebianDuke;
   }
 
   bool IsUbuntu() const {
-    return DistroVal >= UbuntuMaverick && DistroVal <= UbuntuQuesting;
+    return DistroVal >= UbuntuQuantal && DistroVal <= UbuntuQuesting;
   }
 
   bool IsAlpineLinux() const { return DistroVal == AlpineLinux; }
diff --git a/clang/lib/Driver/Distro.cpp b/clang/lib/Driver/Distro.cpp
index 8a5a9fc3026a3..96dc83a66dd3e 100644
--- a/clang/lib/Driver/Distro.cpp
+++ b/clang/lib/Driver/Distro.cpp
@@ -61,10 +61,6 @@ static Distro::DistroType DetectLsbRelease(llvm::vfs::FileSystem &VFS) {
     if (Version == Distro::UnknownDistro &&
         Line.starts_with("DISTRIB_CODENAME="))
       Version = llvm::StringSwitch<Distro::DistroType>(Line.substr(17))
-                    .Case("maverick", Distro::UbuntuMaverick)
-                    .Case("natty", Distro::UbuntuNatty)
-                    .Case("oneiric", Distro::UbuntuOneiric)
-                    .Case("precise", Distro::UbuntuPrecise)
                     .Case("quantal", Distro::UbuntuQuantal)
                     .Case("raring", Distro::UbuntuRaring)
                     .Case("saucy", Distro::UbuntuSaucy)
@@ -119,13 +115,17 @@ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) {
     if (Data.starts_with("Fedora release"))
       return Distro::Fedora;
     if (Data.starts_with("Red Hat Enterprise Linux") ||
-        Data.starts_with("CentOS") || Data.starts_with("Scientific Linux")) {
+        Data.starts_with("CentOS") || Data.starts_with("Alma Linux") ||
+        Data.starts_with("Rocky Linux") ||
+        Data.starts_with("Scientific Linux")) {
+      if (Data.contains("release 10"))
+        return Distro::RHEL10;
+      if (Data.contains("release 9"))
+        return Distro::RHEL9;
+      if (Data.contains("release 8"))
+        return Distro::RHEL8;
       if (Data.contains("release 7"))
         return Distro::RHEL7;
-      else if (Data.contains("release 6"))
-        return Distro::RHEL6;
-      else if (Data.contains("release 5"))
-        return Distro::RHEL5;
     }
     return Distro::UnknownDistro;
   }
@@ -138,12 +138,6 @@ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) {
     int MajorVersion;
     if (!Data.split('.').first.getAsInteger(10, MajorVersion)) {
       switch (MajorVersion) {
-      case 5:
-        return Distro::DebianLenny;
-      case 6:
-        return Distro::DebianSqueeze;
-      case 7:
-        return Distro::DebianWheezy;
       case 8:
         return Distro::DebianJessie;
       case 9:
@@ -165,8 +159,6 @@ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) {
       }
     }
     return llvm::StringSwitch<Distro::DistroType>(Data.split("\n").first)
-        .Case("squeeze/sid", Distro::DebianSqueeze)
-        .Case("wheezy/sid", Distro::DebianWheezy)
         .Case("jessie/sid", Distro::DebianJessie)
         .Case("stretch/sid", Distro::DebianStretch)
         .Case("buster/sid", Distro::DebianBuster)



More information about the cfe-commits mailing list