gcc: add default spec
authorChanho Park <chanho61.park@samsung.com>
Fri, 18 Jul 2014 08:57:49 +0000 (17:57 +0900)
committerChanho Park <chanho61.park@samsung.com>
Mon, 21 Jul 2014 08:31:18 +0000 (17:31 +0900)
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
gcc/gcc.c

index 5cb485a..40f34e5 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -261,6 +261,7 @@ static const char *replace_outfile_spec_function (int, const char **);
 static const char *remove_outfile_spec_function (int, const char **);
 static const char *version_compare_spec_function (int, const char **);
 static const char *include_spec_function (int, const char **);
+static const char *include_noerr_spec_function (int, const char **);
 static const char *find_file_spec_function (int, const char **);
 static const char *find_plugindir_spec_function (int, const char **);
 static const char *print_asm_header_spec_function (int, const char **);
@@ -1351,6 +1352,7 @@ static const struct spec_function static_spec_functions[] =
   { "remove-outfile",          remove_outfile_spec_function },
   { "version-compare",         version_compare_spec_function },
   { "include",                 include_spec_function },
+  { "include_noerr",            include_noerr_spec_function },
   { "find-file",               find_file_spec_function },
   { "find-plugindir",          find_plugindir_spec_function },
   { "print-asm-header",                print_asm_header_spec_function },
@@ -6486,6 +6488,8 @@ main (int argc, char **argv)
   if (access (specs_file, R_OK) == 0)
     read_specs (specs_file, true, false);
 
+  do_self_spec ("%:include_noerr(defaults.spec)%(default_spec)");
+
   /* Process any configure-time defaults specified for the command line
      options, via OPTION_DEFAULT_SPECS.  */
   for (i = 0; i < ARRAY_SIZE (option_default_specs); i++)
@@ -8439,6 +8443,21 @@ get_random_number (void)
   return ret ^ getpid ();
 }
 
+static const char *
+include_noerr_spec_function (int argc, const char **argv)
+{
+  char *file;
+
+  if (argc != 1)
+    abort ();
+
+  file = find_a_file (&startfile_prefixes, argv[0], R_OK, 0);
+  if (file)
+    read_specs (file, FALSE, TRUE);
+
+  return NULL;
+}
+
 /* %:compare-debug-dump-opt spec function.  Save the last argument,
    expected to be the last -fdump-final-insns option, or generate a
    temporary.  */