[llvm] [llvm-objcopy][COFF] Support --rename-section (PR #210573)
James Henderson via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 20 00:11:06 PDT 2026
================
@@ -0,0 +1,56 @@
+## --update-section / --add-section / --set-section-flags match the original
+## name and run before --rename-section.
+
+# RUN: yaml2obj %s -o %t
+# RUN: echo DEADBEEF > %t.sec
+
+## --update-section then rename:
+# RUN: echo -n AAAB > %t.diff
+# RUN: llvm-objcopy --update-section=.foo=%t.diff --rename-section=.foo=.bar %t %t.1
+# RUN: llvm-readobj --sections --section-data %t.1 | FileCheck %s --check-prefix=UPDATE
+
+# UPDATE: Name: .bar
+# UPDATE: SectionData (
+# UPDATE-NEXT: 0000: 41414142
+# UPDATE-NEXT: )
+
+## --add-section then rename:
+# RUN: llvm-objcopy --add-section=.new=%t.sec --rename-section=.new=.renamed %t %t.2
+# RUN: llvm-readobj --sections --section-data %t.2 | FileCheck %s --check-prefix=ADD
+
+# ADD: Name: .foo
+# ADD: Name: .renamed
+# ADD: SectionData (
+# ADD-NEXT: 0000: {{.*}}DEADBEEF{{.*}}
+# ADD-NEXT: )
+
+## --set-section-flags then rename (flags applied under original name):
+# RUN: llvm-objcopy --set-section-flags=.foo=code --rename-section=.foo=.bar %t %t.3
+# RUN: llvm-readobj --sections %t.3 | FileCheck %s --check-prefix=FLAGS
+
+# FLAGS: Name: .bar
+# FLAGS: Characteristics [
+# FLAGS-NEXT: IMAGE_SCN_ALIGN_4BYTES
+# FLAGS-NEXT: IMAGE_SCN_CNT_CODE
+# FLAGS-NEXT: IMAGE_SCN_MEM_EXECUTE
+# FLAGS-NEXT: IMAGE_SCN_MEM_READ
+# FLAGS-NEXT: IMAGE_SCN_MEM_WRITE
+# FLAGS-NEXT: ]
+
+## Conflict: --set-section-flags on rename destination is rejected (CLI).
----------------
jh7370 wrote:
What is the point of "(CLI)" in this comment?
https://github.com/llvm/llvm-project/pull/210573
More information about the llvm-commits
mailing list