[PATCH][RFC] Extend locations where to seach for Fortran pre-include.
Martin Liška
mliska@suse.cz
Fri Nov 23 13:59:00 GMT 2018
On 11/22/18 3:35 PM, Joseph Myers wrote:
> On Thu, 22 Nov 2018, Martin Liška wrote:
>
>>> (Multilib suffixes on include directories for C are more or less an
>>> implementation detail of how fixed headers are arranged in the case where
>>> sysroot headers suffixes are used; they aren't really expected to be a
>>> stable interface such that third-party software might install anything
>>> using them, but I'm not sure if this preinclude is meant to come from
>>> external software or be installed by GCC.
>>
>> It will come from glibc-devel package, and it's expected to be installed in:
>> usr/include/finclude/ for 64-bit header
>> and /usr/include/finclude/32/ for the 32-bit header.
>
> So, to be clear, is that
>
> <sysroot><sysroot-headers-suffix><native-system-header-dir>/finclude/$($CC $CFLAGS $CPPFLAGS -print-multi-directory)
>
> ? (Where glibc would be what uses the $CC $CFLAGS $CPPFLAGS
> -print-multi-directory to determine where to install the file.)
>
> If so, you need to make sure that all of those pieces are properly used.
>
> * The sysroot and headers suffix in the case of a sysrooted toolchain.
> (Sysroot headers suffixes are for e.g. the case of a toolchain with both
> glibc and uClibc multilibs, so needing multiple sets of headers. Most
> toolchains with multiple sysroots using the same libc only need a single
> set of headers and don't use sysroot headers suffixes, only sysroot
> suffixes (non-headers), with appropriate arrangements being made for all
> the per-multilib headers, such as gnu/lib-names-*.h and gnu/stubs-*.h, to
> be copied into the common include directory.)
>
> * The native system header directory (which is /include not /usr/include
> for GNU Hurd, for example; see config.gcc).
>
> * Then finclude with the multilib (non-OS) suffix.
>
> And you need to consider what's right for non-sysrooted toolchains. If
> native, the above is right, but without the sysroot-related components.
> But what about a non-sysrooted cross toolchain? Certainly using the
> native directory would be wrong there.
>
> Also, what's right in the multiarch directory arrangements case - should
> it be
> <sysroot><sysroot-headers-suffix><native-system-header-dir>/<multiarch>/finclude
> instead? Would one of the Debian / Ubuntu GCC maintainers like to
> comment?
>
> Are there corresponding versions with /usr/local/include
> (LOCAL_INCLUDE_DIR, in general), before those with
> NATIVE_SYSTEM_HEADER_DIR? Even in the driver, the list of directories in
> cppdefault.c should at least serve as a guide to which directories you
> want to search and which get sysroots added (of course, the C++-specific
> ones are irrelevant here).
>
Hi.
Looks the problematic is quite complex as I can understand. I prepared a patch
that should hopefully follow advises provided.
Thoughts?
Thanks,
Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Extend-locations-where-to-seach-for-Fortran-pre-incl.patch
Type: text/x-patch
Size: 3704 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20181123/2ea3e7de/attachment.bin>
More information about the Fortran
mailing list