http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46516
--- Comment #13 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-17
15:32:34 UTC ---
Some debugging: While for libgfortran.spec and libgomp.spec the call to gcc.c's
find_a_file and thus to for_each_path is the same, the global variable
multilib_os_dir is NULL for libgfortran.spec and only later for libgomp.spec
(and thus too late) it is "../lib64"
It is set in set_multilib_dir, which is too late:
main (int argc, char **argv)
{
...
// Get default setting, OK so far:
specs_file = find_a_file (&startfile_prefixes, "specs", R_OK, true);
// This reads the file we want:
/* Process DRIVER_SELF_SPECS, adding any new options to the end
of the command line. */
for (i = 0; i < ARRAY_SIZE (driver_self_specs); i++)
do_self_spec (driver_self_specs[i]);
// but ../lib64 is only set at:
/* Now that we have the switches and the specs, set
the subdirectory based on the options. */
set_multilib_dir ();
Frankly, I have no idea how to solve this interdependence.