Files
clang-p2996/llvm/test/tools/llvm-objcopy/ELF/binary-input-and-output.test
Fangrui Song ba53030dd0 [llvm-objcopy] Default --output-target to --input-target when unspecified
Fixes PR42171.

In GNU objcopy, if -O (--output-target) is not specified, the value is
copied from -I (--input-target).

```
objcopy -I binary -B i386:x86-64 a.txt b       # b is copied from a.txt
llvm-objcopy -I binary -B i386:x86-64 a.txt b  # b is an x86-64 object file
```

This patch changes our behavior to match GNU. With this change, we can
delete code related to -B handling (D67215).

Reviewed By: jakehehrlich

Differential Revision: https://reviews.llvm.org/D67144

llvm-svn: 371913
2019-09-14 01:36:16 +00:00

24 lines
764 B
Plaintext

# RUN: echo abcd > %t.txt
# Preserve input to verify it is not modified
# RUN: cp %t.txt %t-copy.txt
## -I binary -O binary preserves payload through in-memory representation.
# RUN: llvm-objcopy -I binary -O binary %t.txt %t.2.txt
# RUN: cmp %t.txt %t.2.txt
# RUN: cmp %t.txt %t-copy.txt
## If -O is not specified, it defaults to -I, i.e. "binary".
# RUN: llvm-objcopy -I binary %t.txt %t.3.txt
# RUN: cmp %t.txt %t.3.txt
## -I binary -O elf* creates an ELF. -O binary transforms it back to the
## original file.
# RUN: llvm-objcopy -I binary -O elf64-x86-64 %t.txt %t.o
# RUN: llvm-objcopy -O binary %t.o %t.4.txt
# RUN: cmp %t.txt %t.4.txt
## -B is ignored.
# RUN: llvm-objcopy -I binary -B i386:x86-64 -O binary %t.txt %t.5.txt
# RUN: cmp %t.txt %t.5.txt