summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-03-27 17:55:23 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-03-27 17:55:23 +0000
commit463a0afe15b15d35d0c7dc9750ee3a5a480bcf8c (patch)
tree74ee2024c3b2e3008582624c5fdd0c6d647baeee
parent75e0c4b0603c2006111f164c4113c4f26bcdaf64 (diff)
downloadbcm5719-llvm-463a0afe15b15d35d0c7dc9750ee3a5a480bcf8c.tar.gz
bcm5719-llvm-463a0afe15b15d35d0c7dc9750ee3a5a480bcf8c.zip
Don't use unique section names by default if using the integrated as.
This saves some IO and ccache space by not creating long section names. It should work with every ELF linker. llvm-svn: 233393
-rw-r--r--clang/lib/Driver/Tools.cpp9
-rw-r--r--clang/test/Driver/function-sections.c10
2 files changed, 16 insertions, 3 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index ed1bd3ef868..318cd07c153 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -3087,8 +3087,10 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
Args.hasArg(options::OPT_dA))
CmdArgs.push_back("-masm-verbose");
- if (!Args.hasFlag(options::OPT_fintegrated_as, options::OPT_fno_integrated_as,
- IsIntegratedAssemblerDefault))
+ bool UsingIntegratedAssembler =
+ Args.hasFlag(options::OPT_fintegrated_as, options::OPT_fno_integrated_as,
+ IsIntegratedAssemblerDefault);
+ if (!UsingIntegratedAssembler)
CmdArgs.push_back("-no-integrated-as");
if (Args.hasArg(options::OPT_fdebug_pass_structure)) {
@@ -3332,7 +3334,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
}
if (!Args.hasFlag(options::OPT_funique_section_names,
- options::OPT_fno_unique_section_names, true))
+ options::OPT_fno_unique_section_names,
+ !UsingIntegratedAssembler))
CmdArgs.push_back("-fno-unique-section-names");
Args.AddAllArgs(CmdArgs, options::OPT_finstrument_functions);
diff --git a/clang/test/Driver/function-sections.c b/clang/test/Driver/function-sections.c
index ba065b1367a..6c243195f62 100644
--- a/clang/test/Driver/function-sections.c
+++ b/clang/test/Driver/function-sections.c
@@ -72,3 +72,13 @@
// RUN: -target i386-unknown-linux \
// RUN: -fno-unique-section-names \
// RUN: | FileCheck --check-prefix=CHECK-NOUS %s
+
+// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
+// RUN: -target i386-unknown-linux \
+// RUN: -fno-integrated-as \
+// RUN: | FileCheck --check-prefix=CHECK-US %s
+
+// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
+// RUN: -target i386-unknown-linux \
+// RUN: -fintegrated-as \
+// RUN: | FileCheck --check-prefix=CHECK-NOUS %s
OpenPOWER on IntegriCloud