aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/gcc.c')
-rw-r--r--gcc/gcc.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 6a6449d..39df4d5 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -94,6 +94,11 @@ extern int execv (), execvp ();
#define MIN_FATAL_STATUS 1
+/* Flag saying to print the full filename of libgcc.a
+ as found through our usual search mechanism. */
+
+static int print_libgcc_file_name;
+
/* Flag indicating whether we should print the command and arguments */
static int verbose_flag;
@@ -1826,6 +1831,10 @@ process_command (argc, argv)
printf ("%s\n", version_string);
exit (0);
}
+ else if (! strcmp (argv[i], "-print-libgcc-file-name"))
+ {
+ print_libgcc_file_name = 1;
+ }
else if (! strcmp (argv[i], "-Xlinker"))
{
/* Pass the argument of this option to the linker when we link. */
@@ -1939,6 +1948,8 @@ process_command (argc, argv)
{
if (!strcmp (argv[i], "-Xlinker"))
i++;
+ else if (! strcmp (argv[i], "-print-libgcc-file-name"))
+ i++;
else if (argv[i][0] == '-' && argv[i][1] != 0 && argv[i][1] != 'l')
{
register char *p = &argv[i][1];
@@ -3038,6 +3049,12 @@ main (argc, argv)
if (! switches[i].valid)
error ("unrecognized option `-%s'", switches[i].part1);
+ if (print_libgcc_file_name)
+ {
+ printf ("%s\n", find_file ("libgcc.a"));
+ exit (0);
+ }
+
/* Obey some of the options. */
if (verbose_flag)