Index: test/tools/llvm-readobj/headers.test =================================================================== --- /dev/null +++ test/tools/llvm-readobj/headers.test @@ -0,0 +1,10 @@ +RUN: llvm-readelf -e %p/Inputs/trivial.obj.elf-i386 | FileCheck %s +RUN: llvm-readelf --headers %p/Inputs/trivial.obj.elf-i386 | FileCheck %s +RUN: llvm-readelf --headers %p/Inputs/trivial.obj.elf-i386 \ +RUN: | FileCheck %s -check-prefix HEADERS + +CHECK: ELF Header: +CHECK: Section Headers: +CHECK: Program Headers: +HEADERS-NOT: Relocation section +HEADERS-NOT: Symbol table Index: tools/llvm-readobj/llvm-readobj.cpp =================================================================== --- tools/llvm-readobj/llvm-readobj.cpp +++ tools/llvm-readobj/llvm-readobj.cpp @@ -57,6 +57,14 @@ "--section-groups and --elf-hash-histogram.")); cl::alias AllShort("a", cl::desc("Alias for --all"), cl::aliasopt(All)); + // --headers -e + cl::opt<bool> + Headers("headers", + cl::desc("Equivalent to setting: --file-headers, --program-headers, " + "--section-headers")); + cl::alias HeadersShort("e", cl::desc("Alias for --headers"), + cl::aliasopt(Headers)); + // -wide, -W cl::opt<bool> WideOutput("wide", cl::desc("Ignored for compatibility with GNU readelf"), @@ -666,6 +674,12 @@ opts::HashHistogram = true; } + if (opts::Headers) { + opts::FileHeaders = true; + opts::ProgramHeaders = true; + opts::SectionHeaders = true; + } + // Default to stdin if no filename is specified. if (opts::InputFilenames.size() == 0) opts::InputFilenames.push_back("-");