Index: collect2.c =================================================================== --- collect2.c (revision 156482) +++ collect2.c (working copy) @@ -174,7 +174,7 @@ int number; }; -int vflag; /* true if -v */ +bool vflag; /* true if -v or --version */ static int rflag; /* true if -r */ static int strip_flag; /* true if -s */ static const char *demangle_flag; @@ -193,7 +193,8 @@ /* Current LTO mode. */ static enum lto_mode_d lto_mode = LTO_MODE_NONE; -int debug; /* true if -debug */ +bool debug; /* true if -debug */ +bool helpflag; /* true if --help */ static int shared_obj; /* true if -shared */ @@ -1228,7 +1229,7 @@ for (i = 1; argv[i] != NULL; i ++) { if (! strcmp (argv[i], "-debug")) - debug = 1; + debug = true; else if (! strcmp (argv[i], "-flto") && ! use_plugin) { use_verbose = true; @@ -1458,7 +1459,7 @@ if (use_verbose && *q == '-' && q[1] == 'v' && q[2] == 0) { /* Turn on trace in collect2 if needed. */ - vflag = 1; + vflag = true; } } obstack_free (&temporary_obstack, temporary_firstobj); @@ -1588,7 +1589,7 @@ case 'v': if (arg[2] == '\0') - vflag = 1; + vflag = true; break; case '-': @@ -1619,6 +1620,10 @@ } else if (strncmp (arg, "--sysroot=", 10) == 0) target_system_root = arg + 10; + else if (strncmp (arg, "--version", 9) == 0) + vflag = true; + else if (strncmp (arg, "--help", 9) == 0) + helpflag = true; break; } } @@ -1720,6 +1725,20 @@ fprintf (stderr, "\n"); } + if (helpflag) + { + fprintf (stderr, "Usage: collect2 [options]\n"); + fprintf (stderr, " Wrap linker and generate constructor code if needed.\n"); + fprintf (stderr, " Options:\n"); + fprintf (stderr, " -debug Enable debug output\n"); + fprintf (stderr, " --help Display this information\n"); + fprintf (stderr, " -v, --version Display this program's version number\n"); + fprintf (stderr, "Overview: http://gcc.gnu.org/onlinedocs/gccint/Collect2.html\n"); + fprintf (stderr, "Report bugs: %s\n", bug_report_url); + + collect_exit (0); + } + if (debug) { const char *ptr; Index: collect2.h =================================================================== --- collect2.h (revision 156482) +++ collect2.h (working copy) @@ -38,7 +38,7 @@ extern const char *c_file_name; extern struct obstack temporary_obstack; extern char *temporary_firstobj; -extern int vflag, debug; +extern bool vflag, debug; extern void error (const char *, ...) ATTRIBUTE_PRINTF_1; extern void notice (const char *, ...) ATTRIBUTE_PRINTF_1;