diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-03-27 17:55:23 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-03-27 17:55:23 +0000 |
commit | 463a0afe15b15d35d0c7dc9750ee3a5a480bcf8c (patch) | |
tree | 74ee2024c3b2e3008582624c5fdd0c6d647baeee | |
parent | 75e0c4b0603c2006111f164c4113c4f26bcdaf64 (diff) | |
download | bcm5719-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.cpp | 9 | ||||
-rw-r--r-- | clang/test/Driver/function-sections.c | 10 |
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 |