--- a/include/clang/Driver/Distro.h +++ a/include/clang/Driver/Distro.h @@ -39,6 +39,7 @@ public: RHEL6, RHEL7, Fedora, + Gentoo, OpenSUSE, UbuntuHardy, UbuntuIntrepid, --- a/lib/Driver/Distro.cpp +++ a/lib/Driver/Distro.cpp @@ -137,6 +137,9 @@ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) { if (VFS.exists("/etc/arch-release")) return Distro::ArchLinux; + if (VFS.exists("/etc/gentoo-release")) + return Distro::Gentoo; + return Distro::UnknownDistro; } --- a/lib/Driver/ToolChains/Clang.cpp +++ a/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" @@ -5138,7 +5139,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, if (Args.hasFlag(options::OPT_faddrsig, options::OPT_fno_addrsig, (TC.getTriple().isOSBinFormatELF() || TC.getTriple().isOSBinFormatCOFF()) && - TC.useIntegratedAs())) + TC.useIntegratedAs() && + Distro(D.getVFS()) != Distro::Gentoo)) CmdArgs.push_back("-faddrsig"); // Finally add the compile command to the compilation.