diff options
author | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2015-02-05 01:12:24 +0000 |
---|---|---|
committer | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2015-02-05 01:12:24 +0000 |
commit | 0a9c061343f621c7cc8e734d2c68e3d5e5899f5d (patch) | |
tree | d48cabad360edfc1d401f8e76bc20cb1ae4d42ff /clang/lib/Driver/Tools.cpp | |
parent | ddaf4fd68037735199f13d0fea77532c9898f170 (diff) | |
download | llvm-0a9c061343f621c7cc8e734d2c68e3d5e5899f5d.zip llvm-0a9c061343f621c7cc8e734d2c68e3d5e5899f5d.tar.gz llvm-0a9c061343f621c7cc8e734d2c68e3d5e5899f5d.tar.bz2 |
[PowerPC] Revert workaround for TLS linker bug
In r227480, Ulrich Weigand introduced a workaround for a linker
optimization bug that can create mis-optimized code for accesses to
general-dynamic or local-dynamic TLS variables. The linker
optimization bug only occurred for Clang/LLVM because of some
inefficient code being generated for these TLS accesses. I have
recently corrected LLVM to produce the efficient code sequence
expected by the linkers, so this workaround is no longer needed.
Therefore this patch reverts r227480.
I've tested that the previous bootstrap failure no longer occurs with
the workaround reverted.
llvm-svn: 228253
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index c459554..d24375b 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -7625,13 +7625,6 @@ void gnutools::Link::ConstructJob(Compilation &C, const JobAction &JA, D.DyldPrefix + getLinuxDynamicLinker(Args, ToolChain))); } - // Work around a bug in GNU ld (and gold) linker versions up to 2.25 - // that may mis-optimize code generated by this version of clang/LLVM - // to access general-dynamic or local-dynamic TLS variables. - if (ToolChain.getArch() == llvm::Triple::ppc64 || - ToolChain.getArch() == llvm::Triple::ppc64le) - CmdArgs.push_back("--no-tls-optimize"); - CmdArgs.push_back("-o"); CmdArgs.push_back(Output.getFilename()); |