Skip to content

Commit a3e5d49

Browse files
committed
Print out "Alias for -foo" instead of repeating the same help message for -foo.
Since aliases don't actually need name, I removed it from Options.td to keep the definitions concise. Before: -( Ignored for compatibility with GNU unless you pass --warn-backrefs -) Ignored for compatibility with GNU unless you pass --warn-backrefs --allow-multiple-definition Allow multiple definitions --apply-dynamic-relocs Apply dynamic relocations to place --as-needed Only set DT_NEEDED for shared libraries if used --auxiliary=<value> Set DT_AUXILIARY field to the specified name --Bdynamic Link against shared libraries --Bshareable Build a shared object ... After: -( Alias for --start-group -) Alias for --end-group --allow-multiple-definition Allow multiple definitions --apply-dynamic-relocs Apply dynamic relocations to place --as-needed Only set DT_NEEDED for shared libraries if used --auxiliary=<value> Set DT_AUXILIARY field to the specified name --Bdynamic Link against shared libraries (default) --Bshareable Alias for --shared ... Differential Revision: https://reviews.llvm.org/D47588 llvm-svn: 333694
1 parent ecc8483 commit a3e5d49

File tree

2 files changed

+52
-49
lines changed

2 files changed

+52
-49
lines changed

lld/ELF/Options.td

Lines changed: 50 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -352,45 +352,45 @@ def z: JoinedOrSeparate<["-"], "z">, MetaVarName<"<option>">,
352352
HelpText<"Linker option extensions">;
353353

354354
// Aliases
355-
def alias_auxiliary: Separate<["-"], "f">, Alias<auxiliary>;
356-
def alias_Bdynamic_call_shared: F<"call_shared">, Alias<Bdynamic>;
357-
def alias_Bdynamic_dy: F<"dy">, Alias<Bdynamic>;
358-
def alias_Bstatic_dn: F<"dn">, Alias<Bstatic>;
359-
def alias_Bstatic_non_shared: F<"non_shared">, Alias<Bstatic>;
360-
def alias_Bstatic_static: F<"static">, Alias<Bstatic>;
361-
def alias_define_common_d: Flag<["-"], "d">, Alias<define_common>;
362-
def alias_define_common_dc: F<"dc">, Alias<define_common>;
363-
def alias_define_common_dp: F<"dp">, Alias<define_common>;
364-
def alias_discard_all_x: Flag<["-"], "x">, Alias<discard_all>;
365-
def alias_discard_locals_X: Flag<["-"], "X">, Alias<discard_locals>;
366-
def alias_emit_relocs: Flag<["-"], "q">, Alias<emit_relocs>;
367-
def alias_end_group_paren: Flag<["-"], ")">, Alias<end_group>;
368-
def alias_entry_e: JoinedOrSeparate<["-"], "e">, Alias<entry>;
369-
def alias_export_dynamic_E: Flag<["-"], "E">, Alias<export_dynamic>;
370-
def alias_filter: Separate<["-"], "F">, Alias<filter>;
371-
def alias_format_b: Separate<["-"], "b">, Alias<format>;
372-
def alias_library: JoinedOrSeparate<["-"], "l">, Alias<library>;
373-
def alias_library_path: JoinedOrSeparate<["-"], "L">, Alias<library_path>;
374-
def alias_no_pie_pic_executable: F<"no-pic-executable">, Alias<no_pie>;
375-
def alias_omagic: Flag<["-"], "N">, Alias<omagic>;
376-
def alias_o_output: Joined<["--"], "output=">, Alias<o>;
377-
def alias_o_output2 : Separate<["--"], "output">, Alias<o>;
378-
def alias_pie_pic_executable: F<"pic-executable">, Alias<pie>;
379-
def alias_print_map_M: Flag<["-"], "M">, Alias<print_map>;
380-
def alias_relocatable_r: Flag<["-"], "r">, Alias<relocatable>;
381-
def alias_rpath_R: JoinedOrSeparate<["-"], "R">, Alias<rpath>;
382-
def alias_script_T: JoinedOrSeparate<["-"], "T">, Alias<script>;
383-
def alias_shared_Bshareable: F<"Bshareable">, Alias<shared>;
384-
def alias_soname_h: JoinedOrSeparate<["-"], "h">, Alias<soname>;
385-
def alias_start_group_paren: Flag<["-"], "(">, Alias<start_group>;
386-
def alias_strip_all: Flag<["-"], "s">, Alias<strip_all>;
387-
def alias_strip_debug_S: Flag<["-"], "S">, Alias<strip_debug>;
388-
def alias_trace: Flag<["-"], "t">, Alias<trace>;
389-
def alias_trace_symbol_y : JoinedOrSeparate<["-"], "y">, Alias<trace_symbol>;
390-
def alias_Ttext_segment: Separate<["-", "--"], "Ttext-segment">, Alias<Ttext>;
391-
def alias_Ttext_segment_eq: Joined<["-", "--"], "Ttext-segment=">, Alias<Ttext>;
392-
def alias_undefined_u: JoinedOrSeparate<["-"], "u">, Alias<undefined>;
393-
def alias_version_V: Flag<["-"], "V">, Alias<version>;
355+
def: Separate<["-"], "f">, Alias<auxiliary>, HelpText<"Alias for --auxiliary">;
356+
def: F<"call_shared">, Alias<Bdynamic>, HelpText<"Alias for --Bdynamic">;
357+
def: F<"dy">, Alias<Bdynamic>, HelpText<"Alias for --Bdynamic">;
358+
def: F<"dn">, Alias<Bstatic>, HelpText<"Alias for --Bstatic">;
359+
def: F<"non_shared">, Alias<Bstatic>, HelpText<"Alias for --Bstatic">;
360+
def: F<"static">, Alias<Bstatic>, HelpText<"Alias for --Bstatic">;
361+
def: Flag<["-"], "d">, Alias<define_common>, HelpText<"Alias for --define-common">;
362+
def: F<"dc">, Alias<define_common>, HelpText<"Alias for --define-common">;
363+
def: F<"dp">, Alias<define_common>, HelpText<"Alias for --define-common">;
364+
def: Flag<["-"], "x">, Alias<discard_all>, HelpText<"Alias for --discard-all">;
365+
def: Flag<["-"], "X">, Alias<discard_locals>, HelpText<"Alias for --discard-locals">;
366+
def: Flag<["-"], "q">, Alias<emit_relocs>, HelpText<"Alias for --emit-relocs">;
367+
def: Flag<["-"], ")">, Alias<end_group>, HelpText<"Alias for --end-group">;
368+
def: JoinedOrSeparate<["-"], "e">, Alias<entry>, HelpText<"Alias for --entry">;
369+
def: Flag<["-"], "E">, Alias<export_dynamic>, HelpText<"Alias for --export-dynamic">;
370+
def: Separate<["-"], "F">, Alias<filter>, HelpText<"Alias for --filter">;
371+
def: Separate<["-"], "b">, Alias<format>, HelpText<"Alias for --format">;
372+
def: JoinedOrSeparate<["-"], "l">, Alias<library>, HelpText<"Alias for --library">;
373+
def: JoinedOrSeparate<["-"], "L">, Alias<library_path>, HelpText<"Alias for --library-path">;
374+
def: F<"no-pic-executable">, Alias<no_pie>, HelpText<"Alias for --no-pie">;
375+
def: Flag<["-"], "N">, Alias<omagic>, HelpText<"Alias for --omagic">;
376+
def: Joined<["--"], "output=">, Alias<o>, HelpText<"Alias for -o">;
377+
def: Separate<["--"], "output">, Alias<o>, HelpText<"Alias for -o">;
378+
def: F<"pic-executable">, Alias<pie>, HelpText<"Alias for --pie">;
379+
def: Flag<["-"], "M">, Alias<print_map>, HelpText<"Alias for --print-map">;
380+
def: Flag<["-"], "r">, Alias<relocatable>, HelpText<"Alias for --relocatable">;
381+
def: JoinedOrSeparate<["-"], "R">, Alias<rpath>, HelpText<"Alias for --rpath">;
382+
def: JoinedOrSeparate<["-"], "T">, Alias<script>, HelpText<"Alias for --script">;
383+
def: F<"Bshareable">, Alias<shared>, HelpText<"Alias for --shared">;
384+
def: JoinedOrSeparate<["-"], "h">, Alias<soname>, HelpText<"Alias for --soname">;
385+
def: Flag<["-"], "(">, Alias<start_group>, HelpText<"Alias for --start-group">;
386+
def: Flag<["-"], "s">, Alias<strip_all>, HelpText<"Alias for --strip-all">;
387+
def: Flag<["-"], "S">, Alias<strip_debug>, HelpText<"Alias for --strip-debug">;
388+
def: Flag<["-"], "t">, Alias<trace>, HelpText<"Alias for --trace">;
389+
def: JoinedOrSeparate<["-"], "y">, Alias<trace_symbol>, HelpText<"Alias for --trace-symbol">;
390+
def: Separate<["-", "--"], "Ttext-segment">, Alias<Ttext>, HelpText<"Alias for --Ttext">;
391+
def: Joined<["-", "--"], "Ttext-segment=">, Alias<Ttext>, HelpText<"Alias for --Ttext">;
392+
def: JoinedOrSeparate<["-"], "u">, Alias<undefined>, HelpText<"Alias for --undefined">;
393+
def: Flag<["-"], "V">, Alias<version>, HelpText<"Alias for --version">;
394394

395395
// LTO-related options.
396396
def lto_aa_pipeline: J<"lto-aa-pipeline=">,
@@ -420,16 +420,19 @@ def thinlto_cache_dir: J<"thinlto-cache-dir=">,
420420
defm thinlto_cache_policy: Eq<"thinlto-cache-policy", "Pruning policy for the ThinLTO cache">;
421421
def thinlto_jobs: J<"thinlto-jobs=">, HelpText<"Number of ThinLTO jobs">;
422422

423-
def plugin_opt_O: J<"plugin-opt=O">, Alias<lto_O>;
424-
def plugin_opt_debug_pass_manager: F<"plugin-opt=debug-pass-manager">, Alias<lto_debug_pass_manager>;
425-
def plugin_opt_disable_verify: F<"plugin-opt=disable-verify">, Alias<disable_verify>;
426-
def plugin_opt_jobs_eq: J<"plugin-opt=jobs=">, Alias<thinlto_jobs>;
427-
def plugin_opt_lto_partitions_eq: J<"plugin-opt=lto-partitions=">, Alias<lto_partitions>;
423+
def: J<"plugin-opt=O">, Alias<lto_O>, HelpText<"Alias for -lto-O">;
424+
def: F<"plugin-opt=debug-pass-manager">,
425+
Alias<lto_debug_pass_manager>, HelpText<"Alias for -lto-debug-pass-manager">;
426+
def: F<"plugin-opt=disable-verify">, Alias<disable_verify>, HelpText<"Alias for -disable-verify">;
427+
def: J<"plugin-opt=jobs=">, Alias<thinlto_jobs>, HelpText<"Alias for -thinlto-jobs">;
428+
def: J<"plugin-opt=lto-partitions=">, Alias<lto_partitions>, HelpText<"Alias for -lto-partitions">;
428429
def plugin_opt_mcpu_eq: J<"plugin-opt=mcpu=">;
429-
def plugin_opt_new_pass_manager: F<"plugin-opt=new-pass-manager">, Alias<lto_new_pass_manager>;
430+
def: F<"plugin-opt=new-pass-manager">,
431+
Alias<lto_new_pass_manager>, HelpText<"Alias for -lto-new-pass-manager">;
430432
def plugin_opt_obj_path_eq: J<"plugin-opt=obj-path=">;
431-
def plugin_opt_sample_profile_eq: J<"plugin-opt=sample-profile=">, Alias<lto_sample_profile>;
432-
def plugin_opt_save_temps: F<"plugin-opt=save-temps">, Alias<save_temps>;
433+
def: J<"plugin-opt=sample-profile=">,
434+
Alias<lto_sample_profile>, HelpText<"Alias for -lto-sample-profile">;
435+
def: F<"plugin-opt=save-temps">, Alias<save_temps>, HelpText<"Alias for -save-temps">;
433436
def plugin_opt_thinlto_emit_imports_files: F<"plugin-opt=thinlto-emit-imports-files">;
434437
def plugin_opt_thinlto_index_only: F<"plugin-opt=thinlto-index-only">;
435438
def plugin_opt_thinlto_index_only_eq: J<"plugin-opt=thinlto-index-only=">;

lld/test/ELF/help.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# RUN: ld.lld --help 2>&1 | FileCheck %s
22
# CHECK: OPTIONS:
3-
# CHECK: --output=<value> Path to file to write output
4-
# CHECK: --output <value> Path to file to write output
3+
# CHECK: --output=<value> Alias for -o
4+
# CHECK: --output <value> Alias for -o
55
# CHECK: -o <path> Path to file to write output

0 commit comments

Comments
 (0)