From dae01c352b98022dddbf1aec8a25c919d3389d9e Mon Sep 17 00:00:00 2001 From: Michal Gorny Date: Sun, 23 Dec 2018 15:07:26 +0000 Subject: [PATCH] [Driver] Disable -faddrsig on Gentoo by default Gentoo supports combining clang toolchain with GNU binutils, and many users actually do that. As -faddrsig is not supported by GNU strip, this results in a lot of warnings. Disable it by default and let users enable it explicitly if they want it; with the intent of reevaluating when the underlying feature becomes standarized. See also: https://bugs.gentoo.org/667854 Differential Revision: https://reviews.llvm.org/D56047 llvm-svn: 350028 --- clang/lib/Driver/ToolChains/Clang.cpp | 2 ++ clang/test/Driver/addrsig.c | 3 +++ clang/test/lit.cfg.py | 3 +++ 3 files changed, 8 insertions(+) diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index ec4fdd2e6d78..10487a6d450a 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -25,6 +25,7 @@ #include "clang/Basic/LangOptions.h" #include "clang/Basic/ObjCRuntime.h" #include "clang/Basic/Version.h" +#include "clang/Driver/Distro.h" #include "clang/Driver/DriverDiagnostic.h" #include "clang/Driver/Options.h" #include "clang/Driver/SanitizerArgs.h" @@ -5290,6 +5291,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, TC.getTriple().isOSBinFormatCOFF()) && !TC.getTriple().isPS4() && !TC.getTriple().isOSNetBSD() && + !Distro(D.getVFS()).IsGentoo() && TC.useIntegratedAs())) CmdArgs.push_back("-faddrsig"); diff --git a/clang/test/Driver/addrsig.c b/clang/test/Driver/addrsig.c index 739dcc35ffcb..556a908e30bd 100644 --- a/clang/test/Driver/addrsig.c +++ b/clang/test/Driver/addrsig.c @@ -1,3 +1,6 @@ +// Gentoo disables -faddrsig by default +// XFAIL: gentoo + // RUN: %clang -### -target x86_64-unknown-linux -c %s 2>&1 | FileCheck -check-prefix=ADDRSIG %s // RUN: %clang -### -target x86_64-pc-win32 -c %s 2>&1 | FileCheck -check-prefix=ADDRSIG %s // RUN: %clang -### -target x86_64-unknown-linux -fno-integrated-as -c %s 2>&1 | FileCheck -check-prefix=NO-ADDRSIG %s diff --git a/clang/test/lit.cfg.py b/clang/test/lit.cfg.py index d105f8d7e13b..e61b4bb10484 100644 --- a/clang/test/lit.cfg.py +++ b/clang/test/lit.cfg.py @@ -190,3 +190,6 @@ lit.util.usePlatformSdkOnDarwin(config, lit_config) macOSSDKVersion = lit.util.findPlatformSdkVersionOnMacOS(config, lit_config) if macOSSDKVersion is not None: config.available_features.add('macos-sdk-' + macOSSDKVersion) + +if os.path.exists('/etc/gentoo-release'): + config.available_features.add('gentoo')