[llvm] [llvm-objcopy] Add --gap-fill and --pad-to options (PR #65815)

James Henderson via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 13 01:52:55 PDT 2023


================
@@ -0,0 +1,149 @@
+# RUN: yaml2obj %s > %t
+
+## Verify section headers before we perform several testings.
+# RUN: llvm-readelf -S %t | FileCheck %s --check-prefix=ORG-SHDR
+# ORG-SHDR: Section Headers:
+# ORG-SHDR:  [Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
+# ORG-SHDR:  [ 0]                   NULL            0000000000000000 000000 000000 00      0   0  0
+# ORG-SHDR:  [ 1] .nogap            PROGBITS        0000000000000102 000042 000006 00   A  0   0  1
+# ORG-SHDR:  [ 2] .gap1             PROGBITS        0000000000000108 000048 000007 00  AX  0   0  1
+# ORG-SHDR:  [ 3] .gap2             PROGBITS        0000000000000110 000050 000004 00   A  0   0  1
+# ORG-SHDR:  [ 4] .nobit_tbss       NOBITS          0000000000000180 000058 000018 00 WAT  0   0  8
+# ORG-SHDR:  [ 5] .foo              PROGBITS        0000000000000184 00005c 000004 00  WA  0   0  1
+# ORG-SHDR:  [ 6] .nobit_bss        NOBITS          000000000000018a 000060 000008 00  WA  0   0  1
+
+# RUN: not llvm-objcopy --gap-fill 1 %t 2>&1 | FileCheck %s --check-prefix=NOT-BINARY
+# NOT-BINARY: error: '--gap-fill' is only supported for binary output
+
+# RUN: not llvm-objcopy -O binary --gap-fill %t 2>&1 | FileCheck %s --check-prefix=EMPTY
+# EMPTY: no input file specified
+
+# RUN: not llvm-objcopy -O binary --gap-fill= %t 2>&1 | FileCheck %s --check-prefix=BAD-FORMAT
+# BAD-FORMAT: bad number for --gap-fill:
+
+# RUN: not llvm-objcopy -O binary --gap-fill=x %t 2>&1 | FileCheck %s --check-prefix=BAD-INPUT
+# BAD-INPUT: bad number for --gap-fill: x
+
+# RUN: not llvm-objcopy -O binary --gap-fill=0x1G %t 2>&1 | FileCheck %s --check-prefix=BAD-INPUT2
+# BAD-INPUT2: bad number for --gap-fill: 0x1G
+
+# RUN: not llvm-objcopy -O binary --gap-fill=0x1122 %t %t-val16 2>&1 | FileCheck %s --check-prefix=BAD-INPUT3
+# BAD-INPUT3: bad number for --gap-fill: 0x1122
+
+# Test no gap fill gap fill with all allocatable output sections
+# RUN: llvm-objcopy -O binary %t %t-default
+# RUN: od -v -Ax -t x1 %t-default | FileCheck %s --check-prefix=DEFAULT
----------------
jh7370 wrote:

Should these have --match-full-lines, to show that there's no more output after the last section?

https://github.com/llvm/llvm-project/pull/65815


More information about the llvm-commits mailing list