diff options
author | Ilia Kuklin <ikuklin@accesssoftek.com> | 2024-03-21 17:05:35 +0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-21 17:05:35 +0500 |
commit | 4946cc37f4865b89fbebcfa0120183a11ae8d4ab (patch) | |
tree | 8c4c9c15281230678bd5f335e79695f9d952ba04 /llvm/tools/llvm-objcopy/ObjcopyOptions.cpp | |
parent | 2699072b4bc8d8d5e84eb66af38face73ceeb4d3 (diff) | |
download | llvm-4946cc37f4865b89fbebcfa0120183a11ae8d4ab.zip llvm-4946cc37f4865b89fbebcfa0120183a11ae8d4ab.tar.gz llvm-4946cc37f4865b89fbebcfa0120183a11ae8d4ab.tar.bz2 |
[llvm-objcopy] Add --skip-symbol and --skip-symbols options (#80873)
Add --skip-symbol and --skip-symbols options that allow to skip symbols
when executing other options that can change the symbol's name, binding
or visibility, similar to an existing option --keep-symbol that keeps a
symbol from being removed by other options.
Diffstat (limited to 'llvm/tools/llvm-objcopy/ObjcopyOptions.cpp')
-rw-r--r-- | llvm/tools/llvm-objcopy/ObjcopyOptions.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp b/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp index a0c6415..7269c51 100644 --- a/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp +++ b/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp @@ -978,6 +978,15 @@ objcopy::parseObjcopyOptions(ArrayRef<const char *> RawArgsArr, addSymbolsFromFile(Config.SymbolsToKeep, DC.Alloc, Arg->getValue(), SymbolMatchStyle, ErrorCallback)) return std::move(E); + for (auto *Arg : InputArgs.filtered(OBJCOPY_skip_symbol)) + if (Error E = Config.SymbolsToSkip.addMatcher(NameOrPattern::create( + Arg->getValue(), SymbolMatchStyle, ErrorCallback))) + return std::move(E); + for (auto *Arg : InputArgs.filtered(OBJCOPY_skip_symbols)) + if (Error E = + addSymbolsFromFile(Config.SymbolsToSkip, DC.Alloc, Arg->getValue(), + SymbolMatchStyle, ErrorCallback)) + return std::move(E); for (auto *Arg : InputArgs.filtered(OBJCOPY_add_symbol)) { Expected<NewSymbolInfo> SymInfo = parseNewSymbolInfo(Arg->getValue()); if (!SymInfo) |