aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-04-19 17:57:14 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-04-19 17:57:14 -0400
commit6a9e290eecf0f54caf6e13374428db318cb6f0cd (patch)
tree07a3fca2885394ef6fc4cec0f1ea7b794af89581
parentf5b0eb4e8855af46a10ce3ac99c9a685fe5010c0 (diff)
downloadgcc-6a9e290eecf0f54caf6e13374428db318cb6f0cd.zip
gcc-6a9e290eecf0f54caf6e13374428db318cb6f0cd.tar.gz
gcc-6a9e290eecf0f54caf6e13374428db318cb6f0cd.tar.bz2
Add new options -print-file-name= and -print-prog-name=.
From-SVN: r7079
-rw-r--r--gcc/gcc.c35
1 files changed, 27 insertions, 8 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 508875e..284532f 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -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)
{