aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/gold
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2020-07-20 09:58:31 -0700
committerFangrui Song <i@maskray.me>2020-07-20 10:02:56 -0700
commit55fa315b0352b63454206600d6803fafacb42d5e (patch)
tree1b94450f20d43f5c9621de8586478c6bb937d868 /llvm/tools/gold
parent2875df0d56572168b478f80f59106284ef15d87d (diff)
downloadllvm-55fa315b0352b63454206600d6803fafacb42d5e.zip
llvm-55fa315b0352b63454206600d6803fafacb42d5e.tar.gz
llvm-55fa315b0352b63454206600d6803fafacb42d5e.tar.bz2
[LLVMgold.so] -plugin-opt=save-temps: save combined module to .lto.o instead of .o
This matches LLD and fixes https://sourceware.org/bugzilla/show_bug.cgi?id=26262#c1 .o is a bad choice for save-temps output because it is easy to override the bitcode file (*.o) ``` # Use bfd for the example, -fuse-ld=gold is similar. clang -flto -c a.c # generate bitcode file a.o clang -fuse-ld=bfd -flto a.o -o a -Wl,-plugin-opt=save-temps # override a.o # The user repeats the command but get surprised, because a.o is now a combined module. clang -fuse-ld=bfd -flto a.o -o a -Wl,-plugin-opt=save-temps ``` Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D84132
Diffstat (limited to 'llvm/tools/gold')
-rw-r--r--llvm/tools/gold/gold-plugin.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/tools/gold/gold-plugin.cpp b/llvm/tools/gold/gold-plugin.cpp
index 7654d44..0124e0a 100644
--- a/llvm/tools/gold/gold-plugin.cpp
+++ b/llvm/tools/gold/gold-plugin.cpp
@@ -1050,7 +1050,7 @@ static std::vector<std::pair<SmallString<128>, bool>> runLTO() {
if (!options::obj_path.empty())
Filename = options::obj_path;
else if (options::TheOutputType == options::OT_SAVE_TEMPS)
- Filename = output_name + ".o";
+ Filename = output_name + ".lto.o";
else if (options::TheOutputType == options::OT_ASM_ONLY)
Filename = output_name;
bool SaveTemps = !Filename.empty();