summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-objcopy
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2019-03-26 18:42:15 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2019-03-26 18:42:15 +0000
commit279898b3152556c223b7773f78063b52176b9edc (patch)
tree93674cb9f05976b3de3fed78f28e98ab7287b170 /llvm/tools/llvm-objcopy
parentd7aba7678308848b640551ac083c8dfee01a7ba9 (diff)
downloadbcm5719-llvm-279898b3152556c223b7773f78063b52176b9edc.tar.gz
bcm5719-llvm-279898b3152556c223b7773f78063b52176b9edc.zip
[llvm-objcopy] - Strip sections before symbols.
This is a fix for https://bugs.llvm.org/show_bug.cgi?id=40007. Idea is to swap the order of stripping. So that we strip sections before symbols what allows us to strip relocation sections without emitting the error about relative symbols. Differential revision: https://reviews.llvm.org/D59763 llvm-svn: 357017
Diffstat (limited to 'llvm/tools/llvm-objcopy')
-rw-r--r--llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp b/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
index 1ae802ff14b..0cf195de113 100644
--- a/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
+++ b/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
@@ -542,10 +542,14 @@ static Error handleArgs(const CopyConfig &Config, Object &Obj,
Obj.OSABI = Config.OutputArch.getValue().OSABI;
}
- if (Error E = updateAndRemoveSymbols(Config, Obj))
+ // It is important to remove the sections first. For example, we want to
+ // remove the relocation sections before removing the symbols. That allows
+ // us to avoid reporting the inappropriate errors about removing symbols
+ // named in relocations.
+ if (Error E = replaceAndRemoveSections(Config, Obj))
return E;
- if (Error E = replaceAndRemoveSections(Config, Obj))
+ if (Error E = updateAndRemoveSymbols(Config, Obj))
return E;
if (!Config.SectionsToRename.empty()) {
OpenPOWER on IntegriCloud