diff options
Diffstat (limited to 'lld/ELF/Options.td')
| -rw-r--r-- | lld/ELF/Options.td | 45 |
1 files changed, 30 insertions, 15 deletions
diff --git a/lld/ELF/Options.td b/lld/ELF/Options.td index ca9fdcde791f..1d9fbcbcee3c 100644 --- a/lld/ELF/Options.td +++ b/lld/ELF/Options.td @@ -129,10 +129,6 @@ def color_diagnostics_eq: JJ<"color-diagnostics=">, def cref: FF<"cref">, HelpText<"Output cross reference table. If -Map is specified, print to the map file">; -defm define_common: B<"define-common", - "Assign space to common symbols", - "Do not assign space to common symbols">; - defm demangle: B<"demangle", "Demangle symbol names (default)", "Do not demangle symbol names">; @@ -180,7 +176,7 @@ defm entry: Eq<"entry", "Name of entry point symbol">, MetaVarName<"<entry>">; defm error_limit: - Eq<"error-limit", "Maximum number of errors to emit before stopping (0 = no limit)">; + EEq<"error-limit", "Maximum number of errors to emit before stopping (0 = no limit)">; def error_unresolved_symbols: F<"error-unresolved-symbols">, HelpText<"Report unresolved symbols as errors">; @@ -412,8 +408,10 @@ defm threads "Number of threads. '1' disables multi-threading. By default all " "available hardware threads are used">; -def time_trace: FF<"time-trace">, HelpText<"Record time trace">; -def time_trace_file_eq: JJ<"time-trace-file=">, HelpText<"Specify time trace output file">; +def time_trace_eq: JJ<"time-trace=">, MetaVarName<"<file>">, + HelpText<"Record time trace to <file>">; +def : FF<"time-trace">, Alias<time_trace_eq>, + HelpText<"Record time trace to file next to output">; defm time_trace_granularity: EEq<"time-trace-granularity", "Minimum time granularity (in microseconds) traced by time profiler">; @@ -512,9 +510,6 @@ def: F<"dy">, Alias<Bdynamic>, HelpText<"Alias for --Bdynamic">; def: F<"dn">, Alias<Bstatic>, HelpText<"Alias for --Bstatic">; def: F<"non_shared">, Alias<Bstatic>, HelpText<"Alias for --Bstatic">; def: F<"static">, Alias<Bstatic>, HelpText<"Alias for --Bstatic">; -def: Flag<["-"], "d">, Alias<define_common>, HelpText<"Alias for --define-common">; -def: F<"dc">, Alias<define_common>, HelpText<"Alias for --define-common">; -def: F<"dp">, Alias<define_common>, HelpText<"Alias for --define-common">; def: Flag<["-"], "x">, Alias<discard_all>, HelpText<"Alias for --discard-all">; def: Flag<["-"], "X">, Alias<discard_locals>, HelpText<"Alias for --discard-locals">; def: Flag<["-"], "q">, Alias<emit_relocs>, HelpText<"Alias for --emit-relocs">; @@ -554,9 +549,8 @@ def lto_debug_pass_manager: FF<"lto-debug-pass-manager">, HelpText<"Debug new pass manager">; def lto_emit_asm: FF<"lto-emit-asm">, HelpText<"Emit assembly code">; -defm lto_legacy_pass_manager: BB<"lto-legacy-pass-manager", - "Use the legacy pass manager in LLVM", - "Use the new pass manager in LLVM">; +def no_lto_legacy_pass_manager: FF<"no-lto-legacy-pass-manager">, + HelpText<"Use the new pass manager in LLVM">; def lto_newpm_passes: JJ<"lto-newpm-passes=">, HelpText<"Passes to run during LTO">; def lto_O: JJ<"lto-O">, MetaVarName<"<opt-level>">, @@ -604,6 +598,7 @@ def thinlto_cache_dir: JJ<"thinlto-cache-dir=">, HelpText<"Path to ThinLTO cached object file directory">; defm thinlto_cache_policy: EEq<"thinlto-cache-policy", "Pruning policy for the ThinLTO cache">; def thinlto_emit_imports_files: FF<"thinlto-emit-imports-files">; +def thinlto_emit_index_files: FF<"thinlto-emit-index-files">; def thinlto_index_only: FF<"thinlto-index-only">; def thinlto_index_only_eq: JJ<"thinlto-index-only=">; def thinlto_jobs: JJ<"thinlto-jobs=">, @@ -627,8 +622,6 @@ def: J<"plugin-opt=lto-partitions=">, Alias<lto_partitions>, HelpText<"Alias for def plugin_opt_mcpu_eq: J<"plugin-opt=mcpu=">; def: F<"plugin-opt=new-pass-manager">, Alias<no_lto_legacy_pass_manager>, HelpText<"Alias for --no-lto-legacy-pass-manager">; -def: F<"plugin-opt=legacy-pass-manager">, - Alias<lto_legacy_pass_manager>, HelpText<"Alias for --no-legacy-pass-manager">; def: F<"plugin-opt=cs-profile-generate">, Alias<lto_cs_profile_generate>, HelpText<"Alias for --lto-cs-profile-generate">; def: J<"plugin-opt=cs-profile-path=">, @@ -636,6 +629,10 @@ def: J<"plugin-opt=cs-profile-path=">, def: J<"plugin-opt=obj-path=">, Alias<lto_obj_path_eq>, HelpText<"Alias for --lto-obj-path=">; +def plugin_opt_opaque_pointers: F<"plugin-opt=opaque-pointers">, + HelpText<"Use opaque pointers in IR during LTO (default)">; +def plugin_opt_no_opaque_pointers: F<"plugin-opt=no-opaque-pointers">, + HelpText<"Use typed pointers in IR during LTO">; def: J<"plugin-opt=opt-remarks-filename=">, Alias<opt_remarks_filename>, HelpText<"Alias for --opt-remarks-filename">; @@ -654,6 +651,8 @@ def: J<"plugin-opt=opt-remarks-hotness-threshold=">, def: J<"plugin-opt=sample-profile=">, Alias<lto_sample_profile>, HelpText<"Alias for --lto-sample-profile">; def: F<"plugin-opt=save-temps">, Alias<save_temps>, HelpText<"Alias for --save-temps">; +def plugin_opt_stats_file: J<"plugin-opt=stats-file=">, + HelpText<"Filename to write LTO statistics to">; def: F<"plugin-opt=thinlto-emit-imports-files">, Alias<thinlto_emit_imports_files>, HelpText<"Alias for --thinlto-emit-imports-files">; @@ -693,8 +692,10 @@ def plugin_opt_eq : J<"plugin-opt=">; // Options listed below are silently ignored for now for compatibility. def: F<"detect-odr-violations">; +def: Flag<["-"], "d">; def: Flag<["-"], "g">; def: F<"long-plt">; +def: FF<"no-add-needed">; def: F<"no-copy-dt-needed-entries">; def: F<"no-ctors-in-init-array">; def: F<"no-keep-memory">; @@ -719,3 +720,17 @@ defm check_dynamic_relocations: BB<"check-dynamic-relocations", "Perform additional validation of the written dynamic relocations", "Do not perform additional validation of the written dynamic relocations">, Flags<[HelpHidden]>; + +defm load_pass_plugins: EEq<"load-pass-plugin", "Load passes from plugin library">; + +// Hidden options, used by clang's -fsanitize=memtag-* options to emit an ELF +// note to designate what kinds of memory (stack/heap) should be protected using +// ARM's MTE on armv8.5+. A binary's desire for stack MTE can't be obtained +// implicitly, so we have a specific bit in the note to signal to the loader to +// remap the stack as PROT_MTE. +defm android_memtag_stack: BB<"android-memtag-stack", + "Instruct the dynamic loader to prepare for MTE stack instrumentation", "">; +defm android_memtag_heap: BB<"android-memtag-heap", + "Instruct the dynamic loader to enable MTE protection for the heap", "">; +defm android_memtag_mode: EEq<"android-memtag-mode", + "Instruct the dynamic loader to start under MTE mode {async, sync, none}">; |
