
Users should generally observe no difference as long as they don't use unintended option forms. Behavior changes: * `-t=d` is removed. Use `-t d` instead. * `--demangle=false` and `--demangle=0` cannot be used. Omit the option or use `--no-demangle`. Other flag-style options don't have `--no-` forms. * `--help-list` is removed. This is a `cl::` specific option. * llvm-readobj now supports grouped short options as well. * `--color` is removed. This is generally not useful (only apply to errors/warnings) but was inherited from Support. Some adjustment to the canonical forms (usually from GNU readelf; currently llvm-readobj has too many redundant aliases): * --dyn-syms is canonical. --dyn-symbols is a hidden alias * --file-header is canonical. --file-headers is a hidden alias * --histogram is canonical. --elf-hash-histogram is a hidden alias * --relocs is canonical. --relocations is a hidden alias * --section-groups is canonical. --elf-section-groups is a hidden alias OptTable avoids global option collision if we decide to support multiplexing for binary utilities. * Most one-dash long options are still supported. `-dt, -sd, -st, -sr` are dropped due to their conflict with grouped short options. * `--section-mapping=false` (D57365) is strange but is kept for now. * Many `cl::opt` variables were unnecessarily external. I added `static` whenever appropriate. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D105532
56 lines
1.9 KiB
Plaintext
56 lines
1.9 KiB
Plaintext
## In this test we check that short command line options can be grouped.
|
|
|
|
## Check grouped options produce identical output to when not grouped.
|
|
# RUN: yaml2obj %s -o %t.o
|
|
# RUN: llvm-readelf -aeWhSrnudlVgIs %t.o > %t.grouped
|
|
# RUN: llvm-readelf -a -e -W -h -S -r -n -u -d -l -V -g -I -s %t.o > %t.not-grouped
|
|
# RUN: cmp %t.grouped %t.not-grouped
|
|
# RUN: FileCheck /dev/null --input-file %t.grouped --implicit-check-not=error:
|
|
|
|
## Check that the output without -a (--all) option is the same. We do it
|
|
## to verify that each of the options is handled, and not just the first
|
|
## one nor just -a, which triggers all other options.
|
|
# RUN: llvm-readelf -eWhSrnudlVgIs %t.o > %t.grouped.no.a
|
|
# RUN: cmp %t.grouped %t.grouped.no.a
|
|
|
|
## -e (--headers) is equivalent to setting --file-headers (-h),
|
|
## --program-headers (-l) and --section-headers (-S).
|
|
## Check that the output without -e is equal to the output with it.
|
|
## We do not use -a in this test either.
|
|
# RUN: llvm-readelf -WhSrnudlVgIs %t.o > %t.grouped.no.ae
|
|
# RUN: cmp %t.grouped %t.grouped.no.ae
|
|
|
|
## An arbitrary YAML description that triggers an output for each of
|
|
## the short option from the test sequence.
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_EXEC
|
|
Machine: EM_X86_64
|
|
Sections:
|
|
- Name: .note.ABI-tag
|
|
Type: SHT_NOTE
|
|
## An arbitrary valid note content.
|
|
Content: 040000001000000001000000474E550000000000020000000600000020000000
|
|
- Name: .eh_frame
|
|
Type: SHT_PROGBITS
|
|
- Name: .dynamic
|
|
Type: SHT_DYNAMIC
|
|
Entries:
|
|
- Tag: DT_NULL
|
|
Value: 0
|
|
- Name: .gnu.version
|
|
Type: SHT_GNU_versym
|
|
Flags: [ SHF_ALLOC ]
|
|
Entries: [ 0, 1 ]
|
|
DynamicSymbols:
|
|
- Name: foo
|
|
Binding: STB_GLOBAL
|
|
|
|
## Check llvm-readobj supports grouped short options as well.
|
|
# RUN: llvm-readobj -aeWhSsrnudlVgIS %t.o > %t.grouped
|
|
# RUN: llvm-readobj -a -e -W -h -S -r -n -u -d -l -V -g -I -s %t.o > %t.not-grouped
|
|
# RUN: cmp %t.grouped %t.not-grouped
|