Commit 6a9e290e by Richard Kenner

Add new options -print-file-name= and -print-prog-name=.

From-SVN: r7079
parent f5b0eb4e
...@@ -142,10 +142,14 @@ extern int execv (), execvp (); ...@@ -142,10 +142,14 @@ extern int execv (), execvp ();
#define MIN_FATAL_STATUS 1 #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. */ 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 */ /* Flag indicating whether we should print the command and arguments */
...@@ -772,6 +776,8 @@ struct option_map option_map[] = ...@@ -772,6 +776,8 @@ struct option_map option_map[] =
{"--pedantic-errors", "-pedantic-errors", 0}, {"--pedantic-errors", "-pedantic-errors", 0},
{"--save-temps", "-save-temps", 0}, {"--save-temps", "-save-temps", 0},
{"--print-libgcc-file-name", "-print-libgcc-file-name", 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}, {"--static", "-static", 0},
{"--shared", "-shared", 0}, {"--shared", "-shared", 0},
{"--symbolic", "-symbolic", 0}, {"--symbolic", "-symbolic", 0},
...@@ -2326,9 +2332,11 @@ process_command (argc, argv) ...@@ -2326,9 +2332,11 @@ process_command (argc, argv)
exit (0); exit (0);
} }
else if (! strcmp (argv[i], "-print-libgcc-file-name")) else if (! strcmp (argv[i], "-print-libgcc-file-name"))
{ print_file_name = "libgcc.a";
print_libgcc_file_name = 1; 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")) else if (! strcmp (argv[i], "-Xlinker"))
{ {
/* Pass the argument of this option to the linker when we link. */ /* Pass the argument of this option to the linker when we link. */
...@@ -2567,6 +2575,10 @@ process_command (argc, argv) ...@@ -2567,6 +2575,10 @@ process_command (argc, argv)
; ;
else if (! strcmp (argv[i], "-print-libgcc-file-name")) 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') else if (argv[i][0] == '+' && argv[i][1] == 'e')
{ {
/* Compensate for the +e options to the C++ front-end; /* Compensate for the +e options to the C++ front-end;
...@@ -3995,13 +4007,20 @@ main (argc, argv) ...@@ -3995,13 +4007,20 @@ main (argc, argv)
if (! switches[i].valid) if (! switches[i].valid)
error ("unrecognized option `-%s'", switches[i].part1); 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); 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) if (verbose_flag)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment