re PR fortran/61418 (HDF5 build failure with -flto: libgfortran.spec: attempt to rename spec 'lib' to already defined spec 'liborig')

2014-06-05  Richard Biener  <rguenther@suse.de>

	PR fortran/61418
	* gfortranspec.c (spec_file): Remove.
	(find_spec_file): Likewise.
	(lang_specific_driver): Do not look for specs file in -L
	or append -specs command line argument.
	(lang_specific_pre_link): Always %:include libgfortran.spec.

From-SVN: r211280
This commit is contained in:
Richard Biener 2014-06-05 14:27:20 +00:00 committed by Richard Biener
parent 1c960e02e7
commit 9803e573d3
2 changed files with 10 additions and 37 deletions

View File

@ -1,3 +1,12 @@
2014-06-05 Richard Biener <rguenther@suse.de>
PR fortran/61418
* gfortranspec.c (spec_file): Remove.
(find_spec_file): Likewise.
(lang_specific_driver): Do not look for specs file in -L
or append -specs command line argument.
(lang_specific_pre_link): Always %:include libgfortran.spec.
2014-06-02 Andrew MacLeod <amacleod@redhat.com>
* fortran/trans.c (trans_runtime_error_vararg): Call

View File

@ -73,34 +73,11 @@ 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. */
static char *spec_file = NULL;
/* This will be NULL if we encounter a situation where we should not
link in the fortran libraries. */
static const char *library = NULL;
/* Return full path name of spec file if it is in DIR, or NULL if
not. */
static char *
find_spec_file (const char *dir)
{
const char dirsep_string[] = { DIR_SEPARATOR, '\0' };
char *spec;
struct stat sb;
spec = XNEWVEC (char, strlen (dir) + sizeof (SPEC_FILE) + 4);
strcpy (spec, dir);
strcat (spec, dirsep_string);
strcat (spec, SPEC_FILE);
if (!stat (spec, &sb))
return spec;
free (spec);
return NULL;
}
/* Return whether strings S1 and S2 are both NULL or both the same
string. */
@ -313,12 +290,6 @@ For more information about these matters, see the file named COPYING\n\n"));
cool facility for handling --help and --verbose --help. */
return;
case OPT_L:
if (!spec_file)
spec_file = find_spec_file (decoded_options[i].arg);
break;
default:
break;
}
@ -449,12 +420,6 @@ 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, 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)
{
fprintf (stderr, _("Driving:"));
@ -473,8 +438,7 @@ For more information about these matters, see the file named COPYING\n\n"));
int
lang_specific_pre_link (void)
{
free (spec_file);
if (spec_file == NULL && library)
if (library)
do_spec ("%:include(libgfortran.spec)");
return 0;