diff options
author | serge-sans-paille <sguelton@mozilla.com> | 2024-04-29 13:27:04 +0200 |
---|---|---|
committer | serge-sans-paille <sguelton@mozilla.com> | 2024-07-11 17:59:19 +0200 |
commit | fb5a38bb4930736b0aab3ce428b60245921f982f (patch) | |
tree | 53fe9703d31dc3c86618cd39eeb1bb31290ee836 /llvm/tools/llvm-objcopy | |
parent | 0431c61f6b80b4ba34e36e7763c58edafcbbf1a9 (diff) | |
download | llvm-fb5a38bb4930736b0aab3ce428b60245921f982f.zip llvm-fb5a38bb4930736b0aab3ce428b60245921f982f.tar.gz llvm-fb5a38bb4930736b0aab3ce428b60245921f982f.tar.bz2 |
[llvm-objcopy] Add verification of added .note section format
Also add a --no-verify-note-sections flag to make it possible to add
invalid sections if needs be.
Pull Request: https://github.com/llvm/llvm-project/pull/90458
Diffstat (limited to 'llvm/tools/llvm-objcopy')
-rw-r--r-- | llvm/tools/llvm-objcopy/ObjcopyOptions.cpp | 4 | ||||
-rw-r--r-- | llvm/tools/llvm-objcopy/ObjcopyOpts.td | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp b/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp index eb27ba0..a54feb7 100644 --- a/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp +++ b/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp @@ -990,6 +990,10 @@ objcopy::parseObjcopyOptions(ArrayRef<const char *> RawArgsArr, ? DiscardType::All : DiscardType::Locals; } + + ELFConfig.VerifyNoteSections = InputArgs.hasFlag( + OBJCOPY_verify_note_sections, OBJCOPY_no_verify_note_sections, true); + Config.OnlyKeepDebug = InputArgs.hasArg(OBJCOPY_only_keep_debug); ELFConfig.KeepFileSymbols = InputArgs.hasArg(OBJCOPY_keep_file_symbols); MachOConfig.KeepUndefined = InputArgs.hasArg(OBJCOPY_keep_undefined); diff --git a/llvm/tools/llvm-objcopy/ObjcopyOpts.td b/llvm/tools/llvm-objcopy/ObjcopyOpts.td index f3d14ab..b26c497 100644 --- a/llvm/tools/llvm-objcopy/ObjcopyOpts.td +++ b/llvm/tools/llvm-objcopy/ObjcopyOpts.td @@ -1,5 +1,10 @@ include "CommonOpts.td" +multiclass B<string name, string help1, string help2> { + def NAME: Flag<["--"], name>, HelpText<help1>; + def no_ # NAME: Flag<["--"], "no-" # name>, HelpText<help2>; +} + defm binary_architecture : Eq<"binary-architecture", "Ignored for compatibility">; def B : JoinedOrSeparate<["-"], "B">, @@ -176,6 +181,10 @@ def G : JoinedOrSeparate<["-"], "G">, Alias<keep_global_symbol>, HelpText<"Alias for --keep-global-symbol">; +defm verify_note_sections : B<"verify-note-sections", + "Validate note sections", + "Don't validate note sections">; + defm keep_global_symbols : Eq<"keep-global-symbols", "Read a list of symbols from <filename> and run as if " |