blob: 4c2ef219f4297edaed3be664e9c60c2987e45dab (
plain) (
tree)
|
|
From 085ba75b10376fa55bb94cb6fa6c54526957732f Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Thu, 13 Sep 2018 11:42:28 -0500
Subject: [PATCH] =?UTF-8?q?Add=20support=20for=20Ad=C3=A9lie=20Linux?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
include/clang/Driver/Distro.h | 5 +++++
lib/Driver/Distro.cpp | 3 +++
lib/Driver/ToolChains/Linux.cpp | 6 ++++--
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/include/clang/Driver/Distro.h b/include/clang/Driver/Distro.h
index 7b34a09256..7a3774a4f1 100644
--- a/include/clang/Driver/Distro.h
+++ b/include/clang/Driver/Distro.h
@@ -26,6 +26,7 @@ public:
// NB: Releases of a particular Linux distro should be kept together
// in this enum, because some tests are done by integer comparison against
// the first and last known member in the family, e.g. IsRedHat().
+ AdelieLinux,
AlpineLinux,
ArchLinux,
DebianLenny,
@@ -120,6 +121,10 @@ public:
return DistroVal >= UbuntuHardy && DistroVal <= UbuntuDisco;
}
+ bool IsAdelieLinux() const {
+ return DistroVal == AdelieLinux;
+ }
+
bool IsAlpineLinux() const {
return DistroVal == AlpineLinux;
}
diff --git a/lib/Driver/Distro.cpp b/lib/Driver/Distro.cpp
index 2c4d44faf8..7ef35ab379 100644
--- a/lib/Driver/Distro.cpp
+++ b/lib/Driver/Distro.cpp
@@ -132,6 +132,9 @@ static Distro::DistroType DetectDistro(vfs::FileSystem &VFS) {
if (VFS.exists("/etc/exherbo-release"))
return Distro::Exherbo;
+ if (VFS.exists("/etc/adelie-release"))
+ return Distro::AdelieLinux;
+
if (VFS.exists("/etc/alpine-release"))
return Distro::AlpineLinux;
--
2.18.0
--- cfe-8.0.0.src/lib/Driver/ToolChains/Linux.cpp.old 2018-11-29 18:52:22.000000000 +0000
+++ cfe-8.0.0.src/lib/Driver/ToolChains/Linux.cpp 2019-04-23 23:49:37.786181838 +0000
@@ -241,13 +241,13 @@
Distro Distro(D.getVFS());
- if (Distro.IsAlpineLinux() || Triple.isAndroid()) {
+ if (Distro.IsAdelieLinux() || Distro.IsAlpineLinux() || Triple.isAndroid()) {
ExtraOpts.push_back("-z");
ExtraOpts.push_back("now");
}
if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() ||
- Triple.isAndroid()) {
+ Distro.IsAdelieLinux() || Triple.isAndroid()) {
ExtraOpts.push_back("-z");
ExtraOpts.push_back("relro");
}
@@ -290,7 +290,8 @@
if (!IsMips && !IsHexagon) {
if (Distro.IsRedhat() || Distro.IsOpenSUSE() || Distro.IsAlpineLinux() ||
(Distro.IsUbuntu() && Distro >= Distro::UbuntuMaverick) ||
- (IsAndroid && !Triple.isAndroidVersionLT(23)))
+ (IsAndroid && !Triple.isAndroidVersionLT(23)) ||
+ Distro.IsAdelieLinux())
ExtraOpts.push_back("--hash-style=gnu");
if (Distro.IsDebian() || Distro.IsOpenSUSE() ||
|