include "llvm/Option/OptParser.td" class F : Flag<["-"], letter>, HelpText; class FF : Flag<["--"], name>, HelpText; multiclass BB { def NAME: Flag<["--"], name>, HelpText; def no_ # NAME: Flag<["--"], "no-" # name>, HelpText; } multiclass Eq { def NAME #_EQ : Joined<["--"], name #"=">, HelpText; def : Separate<["--"], name>, Alias(NAME #_EQ)>; } def addrsig : FF<"addrsig", "Display address-significance table">; def all : FF<"all", "Equivalent to setting: --file-header, --program-headers, --section-headers, " "--symbols, --relocations, --dynamic-table, --notes, --version-info, --unwind, " "--section-groups and --histogram">; def arch_specific : FF<"arch-specific", "Display architecture-specific information">; def bb_addr_map : FF<"bb-addr-map", "Display the BB address map section">; def cg_profile : FF<"cg-profile", "Display call graph profile section">; defm demangle : BB<"demangle", "Demangle symbol names", "Do not demangle symbol names (default)">; def dependent_libraries : FF<"dependent-libraries", "Display the dependent libraries section">; def dyn_relocations : FF<"dyn-relocations", "Display the dynamic relocation entries in the file">; def dyn_syms : FF<"dyn-syms", "Display the dynamic symbol table">; def expand_relocs : FF<"expand-relocs", "Expand each shown relocation to multiple lines">; def file_header : FF<"file-header", "Display file header">; def headers : FF<"headers", "Equivalent to setting: --file-header, --program-headers, --section-headers">; defm hex_dump : Eq<"hex-dump", "Display the specified section(s) as hexadecimal bytes">, MetaVarName<"">; def pretty_print : FF<"pretty-print", "Pretty print JSON output">; def relocs : FF<"relocs", "Display the relocation entries in the file">; def section_data : FF<"section-data", "Display section data for each section shown. This option has no effect for GNU style output">; def section_details : FF<"section-details", "Display the section details">; def section_headers : FF<"section-headers", "Display section headers">; def section_mapping : FF<"section-mapping", "Display the section to segment mapping">; def section_mapping_EQ_false : FF<"section-mapping=false", "Don't display the section to segment mapping">, Flags<[HelpHidden]>; def section_relocations : FF<"section-relocations", "Display relocations for each section shown. This option has no effect for GNU style output">; def section_symbols : FF<"section-symbols", "Display symbols for each section shown. This option has no effect for GNU style output">; defm sort_symbols : Eq<"sort-symbols", "Specify the keys to sort the symbols before displaying symtab">; def stack_sizes : FF<"stack-sizes", "Display contents of all stack sizes sections. This option has no effect for GNU style output">; def stackmap : FF<"stackmap", "Display contents of stackmap section">; defm string_dump : Eq<"string-dump", "Display the specified section(s) as a list of strings">, MetaVarName<"">; def string_table : FF<"string-table", "Display the string table (only for XCOFF now)">; def symbols : FF<"symbols", "Display the symbol table. Also display the dynamic symbol table when using GNU output style for ELF">; def unwind : FF<"unwind", "Display unwind information">; // ELF specific options. def grp_elf : OptionGroup<"kind">, HelpText<"OPTIONS (ELF specific)">; def dynamic_table : FF<"dynamic-table", "Display the dynamic section table">, Group; def elf_linker_options : FF<"elf-linker-options", "Display the .linker-options section">, Group; defm elf_output_style : Eq<"elf-output-style", "Specify ELF dump style: LLVM, GNU, JSON">, Group; def histogram : FF<"histogram", "Display bucket list histogram for hash sections">, Group; def section_groups : FF<"section-groups", "Display section groups">, Group; def gnu_hash_table : FF<"gnu-hash-table", "Display the GNU hash table for dynamic symbols">, Group; def hash_symbols : FF<"hash-symbols", "Display the dynamic symbols derived from the hash section">, Group; def hash_table : FF<"hash-table", "Display .hash section">, Group; def memtag : FF<"memtag", "Display memory tagging metadata (modes, Android notes, global descriptors)">, Group; def needed_libs : FF<"needed-libs", "Display the needed libraries">, Group; def notes : FF<"notes", "Display notes">, Group; def program_headers : FF<"program-headers", "Display program headers">, Group; def raw_relr : FF<"raw-relr", "Do not decode relocations in SHT_RELR section, display raw contents">, Group; def version_info : FF<"version-info", "Display version sections">, Group; // Mach-O specific options. def grp_mach_o : OptionGroup<"kind">, HelpText<"OPTIONS (Mach-O specific)">; def macho_data_in_code : FF<"macho-data-in-code", "Display Data in Code command">, Group; def macho_dysymtab : FF<"macho-dysymtab", "Display Dysymtab command">, Group; def macho_indirect_symbols : FF<"macho-indirect-symbols", "Display indirect symbols">, Group; def macho_linker_options : FF<"macho-linker-options", "Display linker options">, Group; def macho_segment : FF<"macho-segment", "Display Segment command">, Group; def macho_version_min : FF<"macho-version-min", "Display version min command">, Group; // PE/COFF specific options. def grp_coff : OptionGroup<"kind">, HelpText<"OPTIONS (PE/COFF specific)">; def codeview : FF<"codeview", "Display CodeView debug information">, Group; def codeview_ghash : FF<"codeview-ghash", "Enable global hashing for CodeView type stream de-duplication">, Group; def codeview_merged_types : FF<"codeview-merged-types", "Display the merged CodeView type stream">, Group; def codeview_subsection_bytes : FF<"codeview-subsection-bytes", "Dump raw contents of codeview debug sections and records">, Group; def coff_basereloc : FF<"coff-basereloc", "Display .reloc section">, Group; def coff_debug_directory : FF<"coff-debug-directory", "Display debug directory">, Group; def coff_directives : FF<"coff-directives", "Display .drectve section">, Group; def coff_exports : FF<"coff-exports", "Display export table">, Group; def coff_imports : FF<"coff-imports", "Display import table">, Group; def coff_load_config : FF<"coff-load-config", "Display load config">, Group; def coff_resources : FF<"coff-resources", "Display .rsrc section">, Group; def coff_tls_directory : FF<"coff-tls-directory", "Display TLS directory">, Group; // XCOFF specific options. def grp_xcoff : OptionGroup<"kind">, HelpText<"OPTIONS (XCOFF specific)">; def auxiliary_header : FF<"auxiliary-header" , "Display the auxiliary header">, Group; def exception_section : FF<"exception-section" , "Display the exception section entries">, Group; def loader_section_header : FF<"loader-section-header" , "Display the loader section header">, Group; def loader_section_symbols : FF<"loader-section-symbols" , "Display the loader section symbol table">, Group; def loader_section_relocations : FF<"loader-section-relocations" , "Display the loader section relocation entries">, Group; def help : FF<"help", "Display this help">; def version : FF<"version", "Display the version">; // Ignored for GNU readelf compatibility. def wide : FF<"wide", "Ignored for GNU readelf compatibility">; def : F<"W", "Ignored for GNU readelf compatibility">, Alias; // Traditional llvm-readobj Aliases. def : Flag<["--"], "dt">, Alias, HelpText<"Alias for --dyn-syms">; def : Flag<["--"], "sd">, Alias, HelpText<"Alias for --section-data">; def : Flag<["--"], "st">, Alias, HelpText<"Alias for --section-symbols">; def : Flag<["--"], "sr">, Alias, HelpText<"Alias for --section-relocations">; // Aliases. def : FF<"dyn-symbols", "Alias for --dyn-syms">, Alias; def : FF<"dynamic", "Alias for --dynamic-table">, Alias; def : FF<"elf-cg-profile", "Alias for --cg-profile">, Alias, Flags<[HelpHidden]>; def : FF<"elf-hash-histogram", "Alias for --histogram">, Alias, Flags<[HelpHidden]>; def : FF<"elf-section-groups", "Alias for --section-groups">, Alias, Flags<[HelpHidden]>; def : FF<"file-headers", "Alias for --file-header">, Alias, Flags<[HelpHidden]>; def : FF<"relocations", "Alias for --relocs">, Alias; def : FF<"sections", "Alias for --section-headers">, Alias; def : FF<"segments", "Alias for --program-headers">, Alias, Group; def : FF<"syms", "Alias for --symbols">, Alias; def : F<"A", "Alias for --arch-specific">, Alias; def : F<"a", "Alias for --all">, Alias; def : F<"C", "Alias for --demangle">, Alias; def : F<"d", "Alias for --dynamic-table">, Alias, Group; def : F<"e", "Alias for --headers">, Alias; def : F<"g", "Alias for --section-groups">, Alias, Group; def : F<"h", "Alias for --file-header">, Alias; def : F<"I", "Alias for --histogram">, Alias, Group; def : F<"l", "Alias for --program-headers">, Alias; def : F<"n", "Alias for --notes">, Alias; def : JoinedOrSeparate<["-"], "p">, Alias, HelpText<"Alias for --string-dump">, MetaVarName<"">; def : F<"r", "Alias for --relocs">, Alias; def : F<"S", "Alias for --section-headers">, Alias; def : F<"s", "Alias for --symbols">, Alias; def : F<"t", "Alias for --section-details">, Alias; def : F<"u", "Alias for --unwind">, Alias; def : F<"V", "Alias for --version-info">, Alias, Group; def : JoinedOrSeparate<["-"], "x">, Alias, HelpText<"Alias for --hex-dump">, MetaVarName<"">;