diff --git a/lld/MinGW/Options.td b/lld/MinGW/Options.td --- a/lld/MinGW/Options.td +++ b/lld/MinGW/Options.td @@ -16,6 +16,11 @@ HelpText; } +multiclass B { + def NAME: Flag<["--", "-"], name>, HelpText; + def no_ # NAME: Flag<["--", "-"], "no-" # name>, HelpText; +} + def L: JoinedOrSeparate<["-"], "L">, MetaVarName<"">, HelpText<"Add a directory to the library search path">; def Bdynamic: F<"Bdynamic">, HelpText<"Link against shared libraries">; @@ -35,12 +40,15 @@ def export_all_symbols: F<"export-all-symbols">, HelpText<"Export all symbols even if a def file or dllexport attributes are used">; defm file_alignment: Eq<"file-alignment", "Set file alignment">; -def gc_sections: F<"gc-sections">, HelpText<"Remove unused sections">; +defm gc_sections: B<"gc-sections", + "Remove unused sections", + "Don't remove unused sections">; def help: F<"help">, HelpText<"Print option help">; def icf: J<"icf=">, HelpText<"Identical code folding">; def image_base: S<"image-base">, HelpText<"Base address of the program">; -def insert_timestamp: F<"insert-timestamp">, - HelpText<"Include PE header timestamp">; +defm insert_timestamp: B<"insert-timestamp", + "Include PE header timestamp", + "Don't include PE header timestamp">; def kill_at: F<"kill-at">, HelpText<"Remove @n from exported symbols">; def l: JoinedOrSeparate<["-"], "l">, MetaVarName<"">, HelpText<"Root name of library to use">; @@ -54,14 +62,9 @@ "Set the OS and subsystem minor version">; defm minor_subsystem_version: EqLong<"minor-subsystem-version", "Set the OS and subsystem minor version">; -def no_insert_timestamp: F<"no-insert-timestamp">, - HelpText<"Don't include PE header timestamp">; def no_seh: F<"no-seh">, HelpText<"Set the 'no SEH' flag in the executable">; -def no_whole_archive: F<"no-whole-archive">, - HelpText<"No longer include all object files for following archives">; def large_address_aware: Flag<["--"], "large-address-aware">, HelpText<"Enable large addresses">; -def no_gc_sections: F<"no-gc-sections">, HelpText<"Don't remove unused sections">; def o: JoinedOrSeparate<["-"], "o">, MetaVarName<"">, HelpText<"Path to file to write output">; defm out_implib: Eq<"out-implib", "Import library name">; @@ -76,8 +79,9 @@ HelpText<"Omit all debug information, but keep symbol information">; defm reproduce: Eq<"reproduce", "Write a tar file containing input files and command line options to reproduce link">; defm undefined: Eq<"undefined", "Include symbol in the link, if available">; -def whole_archive: F<"whole-archive">, - HelpText<"Include all object files for following archives">; +defm whole_archive: B<"whole-archive", + "Include all object files for following archives", + "No longer include all object files for following archives">; def v: Flag<["-"], "v">, HelpText<"Display the version number">; def verbose: F<"verbose">, HelpText<"Verbose mode">; def version: F<"version">, HelpText<"Display the version number and exit">;