On 7/26/21 3:45 AM, Tobias Burnus wrote:

[snip]

I did say that it mostly works because of:

$ find x86_64-pc-linux-gnu/ -name ISO_Fortran_binding.h
x86_64-pc-linux-gnu/libgfortran/ISO_Fortran_binding.h
x86_64-pc-linux-gnu/32/libgfortran/ISO_Fortran_binding.h

And when looking at the -B lines, I see for the '' alias '-m64' run:
-B.../build/gcc/testsuite/gfortran/../../
-B.../build/x86_64-pc-linux-gnu/./libgfortran/
-B.../build/x86_64-pc-linux-gnu/./libgfortran/.libs
-B.../build/x86_64-pc-linux-gnu/./libquadmath/.libs

which is fine (second line ensures the ISO*.h file is found.)

But for -m32, I see:

-B.../build/gcc/testsuite/gfortran/../../
-B.../build/x86_64-pc-linux-gnu/./libgfortran/
-B.../build/x86_64-pc-linux-gnu/32/libgfortran/.libs
-B.../build/x86_64-pc-linux-gnu/32/libquadmath/.libs

That also works, but it uses again the same directory for ISO*.h,
such that the -m64 header file is used instead of the -m32 one.

I did some more experiments and I see that too. :-S It's finding a .h file, but not the right one. :-(

PS: Still, it would be nice if the proper multi-lib ISO*.h could be found;
while it usually does not matter, it could do so in some cases.

I think I ought to fix this now instead of just sweeping it under the rug. The suggestion you made previously to add

# Flags for finding libgfortran ISO*.h files.
if [info exists TOOL_OPTIONS] {
   set specpath [get_multilibs ${TOOL_OPTIONS}]
} else {
   set specpath [get_multilibs]
}
set options "-I $specpath/libgfortran/"

to the .exp files looks consistent with what I see elsewhere for adding things to the include path, so I will give it a try and see how it works.

-Sandra

Reply via email to