FX Coudert - toplevel Makefile.tpl hacking (original) (raw)

This is the mail archive of the gcc@gcc.gnu.orgmailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

I've been working on PR libfortran/21547: f951 is linked with libgmp, but when this library is shared and located in a non-standard path, building with ./configure --with-gmp=/foo/bar fails because the correct $(RPATH_ENVVAR) is not set when building the libgfortran. The conclusions I draw after gazing helplessly at the toplevel Makefile.* for hours is: - I should add a GMPLBISDIR variable in the configure.in to store the paths to the libraries as a colon-separated list of absolute paths
- the GMPLIBSDIR should be added to the HOST_LIB_PATH
- then, i don't really know how this should come into HOST_LIB_PATH; perhaps by way of HOST_LIB_PATH_gccI have attached a patch that implements things that way. The questions I now have are: - is that the Right Scheme for doing this?
- with this patch, the libgfortran is built, but the gfortran testsuite doesn't run; why isn't $(RPATH_ENVVAR) including HOST_LIB_PATH for the testsuite?

Thanks, FX

Index: Makefile.tpl

--- Makefile.tpl (revision 106019) +++ Makefile.tpl (working copy) @@ -216,6 +216,7 @@ # Where to find GMP HOST_GMPLIBS = @gmplibs@ +HOST_GMPLIBSDIR = @gmplibsdir@ HOST_GMPINC = @gmpinc@ # ---------------------------------------------- @@ -615,7 +616,7 @@ # Define HOST_LIB_PATH_gcc here, for the sake of TARGET_LIB_PATH, ouch @if gcc -HOST_LIB_PATH_gcc = r/$(HOST_SUBDIR)/gcc:$$r/$(HOST_SUBDIR)/prev-gcc: +HOST_LIB_PATH_gcc = r/$(HOST_SUBDIR)/gcc:$$r/$(HOST_SUBDIR)/prev-gcc:$(HOST_GMPLIBSDIR): @endif gcc [+ FOR host_modules +][+ IF lib_path +] Index: configure.in

--- configure.in (revision 106019) +++ configure.in (working copy) @@ -1058,6 +1058,7 @@ # Check for GMP and MPFR gmplibs= gmpinc= +gmplibsdir= have_gmp=yes # Specify a location for mpfr # check for this first so it ends up on the link line before gmp. @@ -1075,6 +1076,7 @@ if test "x$with_mpfr" != x; then gmplibs="-L$with_mpfr/lib $gmplibs" gmpinc="-I$with_mpfr/include" + gmplibsdir="$with_mpfr/lib" fi # Specify a location for gmp @@ -1097,6 +1099,11 @@ if test "x$with_gmp" != x; then gmplibs="-L$with_gmp/lib $gmplibs" gmpinc="-I$with_gmp/include $gmpinc" + if test "x$gmplibsdir" != x; then + gmplibsdir="$gmplibsdir:$with_gmp/lib" + else + gmplibsdir="$with_gmp/lib" + fi fi saved_CFLAGS="$CFLAGS" @@ -1125,6 +1132,7 @@ # Flags needed for both GMP and/or MPFR AC_SUBST(gmplibs) AC_SUBST(gmpinc) +AC_SUBST(gmplibsdir) # By default, C is the only stage 1 language. stage1_languages=c Index: libgfortran/Makefile.in

--- libgfortran/Makefile.in (revision 106403) +++ libgfortran/Makefile.in (working copy) @@ -278,6 +278,7 @@ FC = @FC@ FCFLAGS = @FCFLAGS@ FPU_HOST_HEADER = @FPU_HOST_HEADER@ +GMPLIBSDIR = @GMPLIBSDIR@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ Index: libgfortran/configure.ac

--- libgfortran/configure.ac (revision 106403) +++ libgfortran/configure.ac (working copy) @@ -141,6 +141,8 @@ AC_PROG_FC(gfortran) FCFLAGS="$FCFLAGS -Wall -fno-repack-arrays -fno-underscoring"

+AC_ARG_VAR(GMPLIBSDIR,[Directories containing the GMP and MPFR libraries]) +

extra LD Flags which are required for targets

case "${host}" in -darwin)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]