diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0e204ee563f..0002f074993 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2000-10-17 Chandrakala Chavva + + * gcc.c: New options --target-help. + (process_command): Added code to parse this new option. + * toplev.c (display_target_options): New function to support the + above new option. + * cppinit.c (new_pending_directive) : New option OPT_target__help. + (cpp_handle_option): Support this new option. + * invoke.texi: Added notes about --target-help option. + 2000-10-17 Graham Stott * config/i386/i386.md (testqi_1): Add missing operand prefix diff --git a/gcc/invoke.texi b/gcc/invoke.texi index 47d4fd53e0f..19ae2a0b28d 100644 --- a/gcc/invoke.texi +++ b/gcc/invoke.texi @@ -90,7 +90,7 @@ in the following sections. @item Overall Options @xref{Overall Options,,Options Controlling the Kind of Output}. @smallexample --c -S -E -o @var{file} -pipe -pass-exit-codes -v --help -x @var{language} +-c -S -E -o @var{file} -pipe -pass-exit-codes -v --target-help --help -x @var{language} @end smallexample @item C Language Options @@ -646,6 +646,10 @@ invoked by @code{gcc}, so that they can display the command line options they accept. If the @code{-W} option is also specified then command line options which have no documentation associated with them will also be displayed. + +@item --target-help +Print (on the standard output) a description of target specific command +line options for each tool. @end table @node Invoking G++ diff --git a/gcc/toplev.c b/gcc/toplev.c index cccdb352147..66139638309 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -170,6 +170,7 @@ static void output_lang_identify PARAMS ((FILE *)) ATTRIBUTE_UNUSED; #endif static void compile_file PARAMS ((const char *)); static void display_help PARAMS ((void)); +static void display_target_options PARAMS ((void)); static void mark_file_stack PARAMS ((void *)); static void decode_d_option PARAMS ((const char *)); @@ -3886,6 +3887,15 @@ display_help () printf (_("\nThere are undocumented %s specific options as well.\n"), lang); + display_target_options (); +} + +void +display_target_options () +{ + int undoc,i; + unsigned long; + if (ARRAY_SIZE (target_switches) > 1 #ifdef TARGET_OPTIONS || ARRAY_SIZE (target_options) > 1 @@ -3910,10 +3920,10 @@ display_help () undoc = 1; if (extra_warnings) - printf (_(" -m%-21.21s [undocumented]\n"), option); + printf (_(" -m%-23.23s [undocumented]\n"), option); } else if (* description != 0) - doc += printf (" -m%-21.21s %s\n", option, description); + doc += printf (" -m%-23.23s %s\n", option, description); } #ifdef TARGET_OPTIONS @@ -3929,10 +3939,10 @@ display_help () undoc = 1; if (extra_warnings) - printf (_(" -m%-21.21s [undocumented]\n"), option); + printf (_(" -m%-23.23s [undocumented]\n"), option); } else if (* description != 0) - doc += printf (" -m%-21.21s %s\n", option, description); + doc += printf (" -m%-23.23s %s\n", option, description); } #endif if (undoc) @@ -4307,6 +4317,12 @@ independent_decode_option (argc, argv) exit (0); } + if (!strcmp (arg, "-target-help")) + { + display_target_options (); + exit (0); + } + if (*arg == 'Y') arg++;