CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
92 lines
4.0 KiB
Plaintext
92 lines
4.0 KiB
Plaintext
## Test --verbose / -v for llvm-objcopy and llvm-strip.
|
|
|
|
# RUN: rm -rf %t && mkdir %t
|
|
# RUN: yaml2obj %s --docnum=1 -o %t/input.o
|
|
# RUN: yaml2obj %s --docnum=2 -o %t/coff.o
|
|
|
|
## --verbose and -v both print to stdout.
|
|
# RUN: llvm-objcopy --verbose %t/input.o %t/output.o 2>/dev/null \
|
|
# RUN: | FileCheck %s --check-prefix=OBJCOPY --implicit-check-not={{.}} \
|
|
# RUN: -DIN=%t/input.o -DOUT=%t/output.o
|
|
# RUN: llvm-objcopy -v %t/input.o %t/output.o 2>/dev/null \
|
|
# RUN: | FileCheck %s --check-prefix=OBJCOPY --implicit-check-not={{.}} \
|
|
# RUN: -DIN=%t/input.o -DOUT=%t/output.o
|
|
# OBJCOPY: copy from '[[IN]]' [elf64-x86-64] to '[[OUT]]' [elf64-x86-64]
|
|
|
|
## In-place: a single positional argument means input == output.
|
|
# RUN: cp %t/input.o %t/inplace.o
|
|
# RUN: llvm-objcopy --verbose %t/inplace.o 2>/dev/null \
|
|
# RUN: | FileCheck %s --check-prefix=OBJCOPY --implicit-check-not={{.}} \
|
|
# RUN: -DIN=%t/inplace.o -DOUT=%t/inplace.o
|
|
|
|
## The output format name reflects the requested output type, not the input.
|
|
# RUN: llvm-objcopy --verbose -O binary %t/input.o %t/output.bin 2>/dev/null \
|
|
# RUN: | FileCheck %s --check-prefix=BINARY --implicit-check-not={{.}} \
|
|
# RUN: -DIN=%t/input.o -DOUT=%t/output.bin
|
|
# BINARY: copy from '[[IN]]' [elf64-x86-64] to '[[OUT]]' [binary]
|
|
|
|
## Explicit input/output formats (-I ihex -O srec): both format names come
|
|
## from the command-line flags rather than the file content.
|
|
# RUN: printf ':0100000001FE\n:00000001FF\n' > %t/input.hex
|
|
# RUN: llvm-objcopy --verbose -I ihex -O srec %t/input.hex %t/output.srec 2>/dev/null \
|
|
# RUN: | FileCheck %s --check-prefix=IHEX --implicit-check-not={{.}} \
|
|
# RUN: -DIN=%t/input.hex -DOUT=%t/output.srec
|
|
# IHEX: copy from '[[IN]]' [ihex] to '[[OUT]]' [srec]
|
|
|
|
## Non-ELF input (COFF i386): the format name reflects the actual object type and architecture
|
|
# RUN: llvm-objcopy --verbose %t/coff.o %t/coff.out 2>/dev/null \
|
|
# RUN: | FileCheck %s --check-prefix=COFF --implicit-check-not={{.}} \
|
|
# RUN: -DIN=%t/coff.o -DOUT=%t/coff.out
|
|
# COFF: copy from '[[IN]]' [COFF-i386] to '[[OUT]]' [COFF-i386]
|
|
|
|
## llvm-strip --verbose and -v each print one line per input file (in-place).
|
|
# RUN: cp %t/input.o %t/strip1.o
|
|
# RUN: cp %t/input.o %t/strip2.o
|
|
# RUN: llvm-strip --verbose %t/strip1.o %t/strip2.o 2>/dev/null \
|
|
# RUN: | FileCheck %s --check-prefix=STRIP --implicit-check-not={{.}} \
|
|
# RUN: -DF1=%t/strip1.o -DF2=%t/strip2.o
|
|
# RUN: cp %t/input.o %t/strip3.o
|
|
# RUN: cp %t/input.o %t/strip4.o
|
|
# RUN: llvm-strip -v %t/strip3.o %t/strip4.o 2>/dev/null \
|
|
# RUN: | FileCheck %s --check-prefix=STRIP --implicit-check-not={{.}} \
|
|
# RUN: -DF1=%t/strip3.o -DF2=%t/strip4.o
|
|
# STRIP: copy from '[[F1]]' [elf64-x86-64] to '[[F1]]' [elf64-x86-64]
|
|
# STRIP-NEXT: copy from '[[F2]]' [elf64-x86-64] to '[[F2]]' [elf64-x86-64]
|
|
|
|
## Archive: one line per member using <archive>(<member>) syntax.
|
|
# RUN: cp %t/input.o %t/member1.o
|
|
# RUN: cp %t/input.o %t/member2.o
|
|
# RUN: rm -f %t/archive.a
|
|
# RUN: llvm-ar crs %t/archive.a %t/member1.o %t/member2.o
|
|
# RUN: llvm-objcopy --verbose %t/archive.a %t/archive.out 2>/dev/null \
|
|
# RUN: | FileCheck %s --check-prefix=ARCHIVE --implicit-check-not={{.}} \
|
|
# RUN: -DAR=%t/archive.a -DOUT=%t/archive.out \
|
|
# RUN: -DMEM1=member1.o -DMEM2=member2.o
|
|
# ARCHIVE: copy from '[[AR]]([[MEM1]])' [elf64-x86-64] to '[[OUT]]([[MEM1]])' [elf64-x86-64]
|
|
# ARCHIVE-NEXT: copy from '[[AR]]([[MEM2]])' [elf64-x86-64] to '[[OUT]]([[MEM2]])' [elf64-x86-64]
|
|
|
|
## llvm-strip on an archive modifies in-place (OUT == AR).
|
|
# RUN: rm -f %t/strip.a
|
|
# RUN: llvm-ar crs %t/strip.a %t/member1.o %t/member2.o
|
|
# RUN: llvm-strip --verbose %t/strip.a 2>/dev/null \
|
|
# RUN: | FileCheck %s --check-prefix=ARCHIVE --implicit-check-not={{.}} \
|
|
# RUN: -DAR=%t/strip.a -DOUT=%t/strip.a \
|
|
# RUN: -DMEM1=member1.o -DMEM2=member2.o
|
|
|
|
## No output without the flag.
|
|
# RUN: llvm-objcopy %t/input.o %t/output.o 2>/dev/null | count 0
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_REL
|
|
Machine: EM_X86_64
|
|
|
|
--- !COFF
|
|
header:
|
|
Machine: IMAGE_FILE_MACHINE_I386
|
|
Characteristics: []
|
|
sections: []
|
|
symbols: []
|