OSDN Git Service

2010-11-21 Michael Matz <matz@suse.de>
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 21 Nov 2010 07:56:12 +0000 (07:56 +0000)
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 21 Nov 2010 07:56:12 +0000 (07:56 +0000)
            Tobias Burnus  <burnus@net-b.de>

        PR driver/46516
        * gfortranspec.c (lang_specific_driver,
        lang_specific_pre_link): Load libgfortran.spec in
        lang_specific_pre_link unless found in the -L path.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166998 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/gfortranspec.c

index 69312db..db4380f 100644 (file)
@@ -1,3 +1,11 @@
+2010-11-21  Michael Matz  <matz@suse.de>
+           Tobias Burnus  <burnus@net-b.de>
+
+       PR driver/46516
+       * gfortranspec.c (lang_specific_driver,
+       lang_specific_pre_link): Load libgfortran.spec in
+       lang_specific_pre_link unless found in the -L path.
+
 2010-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
 
        * f95-lang.c (gfc_init_decl_processing): Set size_type_node as
index 24c9093..d8d9fc2 100644 (file)
@@ -75,6 +75,9 @@ static void append_arg (const struct cl_decoded_option *);
 static unsigned int g77_newargc;
 static struct cl_decoded_option *g77_new_decoded_options;
 
+/* The path to the spec file.  */
+char *spec_file = NULL;
+
 
 /* Return full path name of spec file if it is in DIR, or NULL if
    not.  */
@@ -223,9 +226,6 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
   /* Whether we should link a static libgfortran. */
   int static_lib = 0; 
 
-  /* The path to the spec file.  */
-  char *spec_file = NULL;
-
   /* Whether we need to link statically.  */
   int static_linking = 0;
 
@@ -447,9 +447,10 @@ For more information about these matters, see the file named COPYING\n\n"));
 #endif
 
   /* Read the specs file corresponding to libgfortran.
-     If we didn't find the spec file on the -L path, then we hope it
-     is somewhere in the standard install areas.  */
-  append_option (OPT_specs_, spec_file == NULL ? SPEC_FILE : spec_file, 1);
+     If we didn't find the spec file on the -L path, we load it
+     via lang_specific_pre_link.  */
+  if (spec_file)
+    append_option (OPT_specs_, spec_file, 1);
 
   if (verbose && g77_new_decoded_options != g77_x_decoded_options)
     {
@@ -467,8 +468,13 @@ For more information about these matters, see the file named COPYING\n\n"));
 
 /* Called before linking.  Returns 0 on success and -1 on failure.  */
 int
-lang_specific_pre_link (void)  /* Not used for F77.  */
+lang_specific_pre_link (void)
 {
+  if (spec_file)
+    free (spec_file);
+  else
+    do_spec ("%:include(libgfortran.spec)");
+
   return 0;
 }