diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-04-19 17:57:14 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-04-19 17:57:14 -0400 |
commit | 6a9e290eecf0f54caf6e13374428db318cb6f0cd (patch) | |
tree | 07a3fca2885394ef6fc4cec0f1ea7b794af89581 /gcc | |
parent | f5b0eb4e8855af46a10ce3ac99c9a685fe5010c0 (diff) | |
download | gcc-6a9e290eecf0f54caf6e13374428db318cb6f0cd.zip gcc-6a9e290eecf0f54caf6e13374428db318cb6f0cd.tar.gz gcc-6a9e290eecf0f54caf6e13374428db318cb6f0cd.tar.bz2 |
Add new options -print-file-name= and -print-prog-name=.
From-SVN: r7079
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/gcc.c | 35 |
1 files changed, 27 insertions, 8 deletions
@@ -142,10 +142,14 @@ extern int execv (), execvp (); #define MIN_FATAL_STATUS 1 -/* Flag saying to print the full filename of libgcc.a +/* Flag saying to print the full filename of this file as found through our usual search mechanism. */ -static int print_libgcc_file_name; +static char *print_file_name = NULL; + +/* As print_file_name, but search for executable file. */ + +static char *print_prog_name = NULL; /* Flag indicating whether we should print the command and arguments */ @@ -772,6 +776,8 @@ struct option_map option_map[] = {"--pedantic-errors", "-pedantic-errors", 0}, {"--save-temps", "-save-temps", 0}, {"--print-libgcc-file-name", "-print-libgcc-file-name", 0}, + {"--print-file-name", "-print-file-name=", "aj"}, + {"--print-prog-name", "-print-prog-name=", "aj"}, {"--static", "-static", 0}, {"--shared", "-shared", 0}, {"--symbolic", "-symbolic", 0}, @@ -2326,9 +2332,11 @@ process_command (argc, argv) exit (0); } else if (! strcmp (argv[i], "-print-libgcc-file-name")) - { - print_libgcc_file_name = 1; - } + print_file_name = "libgcc.a"; + else if (! strncmp (argv[i], "-print-file-name=", 17)) + print_file_name = argv[i] + 17; + else if (! strncmp (argv[i], "-print-prog-name=", 17)) + print_prog_name = argv[i] + 17; else if (! strcmp (argv[i], "-Xlinker")) { /* Pass the argument of this option to the linker when we link. */ @@ -2567,6 +2575,10 @@ process_command (argc, argv) ; else if (! strcmp (argv[i], "-print-libgcc-file-name")) ; + else if (! strncmp (argv[i], "-print-file-name=", 17)) + ; + else if (! strncmp (argv[i], "-print-prog-name=", 17)) + ; else if (argv[i][0] == '+' && argv[i][1] == 'e') { /* Compensate for the +e options to the C++ front-end; @@ -3995,13 +4007,20 @@ main (argc, argv) if (! switches[i].valid) error ("unrecognized option `-%s'", switches[i].part1); - if (print_libgcc_file_name) + /* Obey some of the options. */ + + if (print_file_name) { - printf ("%s\n", find_file ("libgcc.a")); + printf ("%s\n", find_file (print_file_name)); exit (0); } - /* Obey some of the options. */ + if (print_prog_name) + { + char *newname = find_a_file (&exec_prefix, print_prog_name, X_OK); + printf ("%s\n", (newname ? newname : print_prog_name)); + exit (0); + } if (verbose_flag) { |