This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[RFC] Fortran search path for intrinsic includes and modules
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Richard Henderson <rth at redhat dot com>, Diego Novillo <dnovillo at redhat dot com>, fortran at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Fri, 18 Nov 2005 13:25:27 -0500
- Subject: [RFC] Fortran search path for intrinsic includes and modules
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
Hi!
Fortran by default doesn't use any search paths for
INCLUDE and USE lookups. With -fopenmp,
INCLUDE 'omp_lib.h'
as well as
USE OMP_LIB
should work automatically and I think we shouldn't harass users
to provide -I options all the time. I believe there were discussions
about the need for other intrinsic modules.
Would something like this be acceptable?
For GOMP would need some corresponding changes to install the needed
files (omp_lib.f90 omp_lib.h omp_lib.mod omp_lib_kinds.mod)
to /usr/lib/gcc/*/*/finclude/ (though not sure how to do that in
automake).
Or should we have both GFC_INCLUDE_DIR and FORTRAN_SYSTEM_INCLUDE_DIR
(say /usr/finclude or something else)?
2005-11-18 Jakub Jelinek <jakub@redhat.com>
* Make-lang.in (fortran/f95-lang.o): Pass -DGFC_INCLUDE_DIR.
* f95-lang.c (gfc_init): Append GFC_INCLUDE_DIR to search
path.
--- gcc/fortran/Make-lang.in.jj 2005-11-10 18:23:53.000000000 +0100
+++ gcc/fortran/Make-lang.in 2005-11-18 18:29:05.000000000 +0100
@@ -92,6 +92,11 @@ gfortranspec.o: $(srcdir)/fortran/gfortr
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(DRIVER_DEFINES) \
$(INCLUDES) $(srcdir)/fortran/gfortranspec.c)
+fortran/f95-lang.o: $(srcdir)/fortran/f95-lang.c
+ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
+ -DGFC_INCLUDE_DIR=\"$(libsubdir)/finclude\" \
+ $< $(OUTPUT_OPTION)
+
# Create the compiler driver gfortran.
GFORTRAN_D_OBJS = gcc.o gfortranspec.o version.o prefix.o intl.o
gfortran$(exeext): $(GFORTRAN_D_OBJS) $(EXTRA_GCC_OBJS) $(LIBDEPS)
--- gcc/fortran/f95-lang.c.jj 2005-11-07 22:27:15.000000000 +0100
+++ gcc/fortran/f95-lang.c 2005-11-18 18:27:18.000000000 +0100
@@ -316,6 +316,10 @@ gfc_init (void)
linemap_add (&line_table, LC_RENAME, false, "<built-in>", 0);
#endif
+#ifdef GFC_INCLUDE_DIR
+ gfc_add_include_path (GFC_INCLUDE_DIR);
+#endif
+
/* First initialize the backend. */
gfc_init_decl_processing ();
gfc_static_ctors = NULL_TREE;
Jakub