diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000000000..9f5edd5efa733 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,54 @@ + + + + + + + + + + +Please make sure to put any logs, terminal output, or code in +[fenced code blocks]. + +# Defect/Bug Report # + + +The title of the issue should start with `Defect:` followed by a +succinct title. + + + +- GCC fork release tag or git hash: +- GCC version used to build this fork: +- Output of `uname -a`: +- Machine architecture and number of physical cores: + +## Observed Behavior ## + +## Expected Behavior ## + +## Steps to Reproduce ## + +# Question # + + +The title of the issue should start with `Question:` followed by a +succinct title. Add the text of your question here. Be specific. Search for +answers on [Google] and [Stack Overflow] +before asking a new question + +# Request for Enhancement (RFE) # + + +The title of the issue should start with `RFE:` followed by a succinct +title. If you are willing to help out, please review the [Contributing to GCC] +page. + +[links]:# +[Google]: https://www.google.com +[Stack Overflow]: https://stackoverflow.com +[fenced codeblocks]: https://help.github.com/articles/creating-and-highlighting-code-blocks/ +[CONTRIBUTING.md]: https://github.com/sourceryinstitute/OpenCoarrays/blob/master/CONTRIBUTING.md +[Helping Out]: https://github.com/sourceryinstitute/OpenCoarrays/blob/master/CONTRIBUTING.md#helping-out +[Contributing to GCC]: https://gcc.gnu.org/contribute.html diff --git a/.gitignore b/.gitignore index b53f60db79205..ae3432d5480f8 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,5 @@ REVISION /mpc* /gmp* /isl* +/mpich* +/opencoarrays* diff --git a/Makefile.def b/Makefile.def index 4b9f757f58652..c00dffaf2c6fe 100644 --- a/Makefile.def +++ b/Makefile.def @@ -80,6 +80,9 @@ host_modules= { module= tcl; host_modules= { module= itcl; }; host_modules= { module= ld; bootstrap=true; }; host_modules= { module= libbacktrace; bootstrap=true; }; +// start daniel +host_modules= { module= libmpi; }; +// end daniel host_modules= { module= libcpp; bootstrap=true; }; host_modules= { module= libdecnumber; bootstrap=true; }; host_modules= { module= libgui; }; @@ -152,6 +155,9 @@ target_modules = { module= newlib; }; target_modules = { module= libgcc; bootstrap=true; no_check=true; }; target_modules = { module= libbacktrace; }; target_modules = { module= libquadmath; }; +// start daniel +target_modules = { module= libmpi; }; +// end daniel target_modules = { module= libgfortran; }; target_modules = { module= libobjc; }; target_modules = { module= libgo; }; @@ -279,6 +285,9 @@ flags_to_pass = { flag= CXXFLAGS_FOR_TARGET ; }; flags_to_pass = { flag= DLLTOOL_FOR_TARGET ; }; flags_to_pass = { flag= FLAGS_FOR_TARGET ; }; flags_to_pass = { flag= GFORTRAN_FOR_TARGET ; }; +// start daniel +flags_to_pass = { flag= MPI_FOR_TARGET ; }; +// end daniel flags_to_pass = { flag= GOC_FOR_TARGET ; }; flags_to_pass = { flag= GOCFLAGS_FOR_TARGET ; }; flags_to_pass = { flag= LD_FOR_TARGET ; }; @@ -560,6 +569,9 @@ dependencies = { module=all-target-liboffloadmic; on=all-target-libgomp; }; dependencies = { module=install-target-libgo; on=install-target-libatomic; }; dependencies = { module=install-target-libgfortran; on=install-target-libquadmath; }; dependencies = { module=install-target-libgfortran; on=install-target-libgcc; }; +// start daniel +// dependencies = { module=install-target-libgfortran; on=install-target-mpi; }; +// end daniel dependencies = { module=install-target-libsanitizer; on=install-target-libstdc++-v3; }; dependencies = { module=install-target-libsanitizer; on=install-target-libgcc; }; dependencies = { module=install-target-libvtv; on=install-target-libstdc++-v3; }; @@ -581,6 +593,9 @@ dependencies = { module=configure-target-newlib; on=all-binutils; }; dependencies = { module=configure-target-newlib; on=all-ld; }; dependencies = { module=configure-target-libgfortran; on=all-target-libquadmath; }; dependencies = { module=configure-target-libgfortran; on=all-target-libbacktrace; }; +// start daniel +// dependencies = { module=configure-target-libgfortran; on=all-target-mpi; }; +// end daniel languages = { language=c; gcc-check-target=check-gcc; }; languages = { language=c++; gcc-check-target=check-c++; @@ -590,6 +605,10 @@ languages = { language=c++; gcc-check-target=check-c++; languages = { language=fortran; gcc-check-target=check-fortran; lib-check-target=check-target-libquadmath; lib-check-target=check-target-libgfortran; }; +// start daniel +languages = { language=mpi; gcc-check-target=check-fortran; + lib-check-target=check-target-libmpi; }; +// end daniel languages = { language=ada; gcc-check-target=check-ada; lib-check-target=check-target-libada; }; languages = { language=objc; gcc-check-target=check-objc; diff --git a/Makefile.in b/Makefile.in index 38774f542a641..6417fa2399ff3 100644 --- a/Makefile.in +++ b/Makefile.in @@ -218,6 +218,10 @@ HOST_EXPORTS = \ HOST_LIBS="$(STAGE1_LIBS)"; export HOST_LIBS; \ GMPLIBS="$(HOST_GMPLIBS)"; export GMPLIBS; \ GMPINC="$(HOST_GMPINC)"; export GMPINC; \ +# + MPILIBS="$(HOST_MPILIBS)"; export MPILIBS; \ + MPIINC="$(HOST_MPIINC)"; export MPIINC; \ +# ISLLIBS="$(HOST_ISLLIBS)"; export ISLLIBS; \ ISLINC="$(HOST_ISLINC)"; export ISLINC; \ LIBELFLIBS="$(HOST_LIBELFLIBS)"; export LIBELFLIBS; \ @@ -309,6 +313,10 @@ NORMAL_TARGET_EXPORTS = \ HOST_GMPLIBS = @gmplibs@ HOST_GMPINC = @gmpinc@ +# Where to find MPI +HOST_MPILIBS = @mpilibs@ +HOST_MPIINC = @mpiinc@ + # Where to find isl HOST_ISLLIBS = @isllibs@ HOST_ISLINC = @islinc@ @@ -781,6 +789,7 @@ BASE_FLAGS_TO_PASS = \ "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \ "FLAGS_FOR_TARGET=$(FLAGS_FOR_TARGET)" \ "GFORTRAN_FOR_TARGET=$(GFORTRAN_FOR_TARGET)" \ + "MPI_FOR_TARGET=$(MPI_FOR_TARGET)" \ "GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \ "GOCFLAGS_FOR_TARGET=$(GOCFLAGS_FOR_TARGET)" \ "LD_FOR_TARGET=$(LD_FOR_TARGET)" \ @@ -965,6 +974,7 @@ configure-host: \ maybe-configure-itcl \ maybe-configure-ld \ maybe-configure-libbacktrace \ + maybe-configure-libmpi \ maybe-configure-libcpp \ maybe-configure-libdecnumber \ maybe-configure-libgui \ @@ -999,6 +1009,7 @@ configure-target: \ maybe-configure-target-libgcc \ maybe-configure-target-libbacktrace \ maybe-configure-target-libquadmath \ + maybe-configure-target-libmpi \ maybe-configure-target-libgfortran \ maybe-configure-target-libobjc \ maybe-configure-target-libgo \ @@ -1105,6 +1116,7 @@ all-host: maybe-all-ld @if libbacktrace-no-bootstrap all-host: maybe-all-libbacktrace @endif libbacktrace-no-bootstrap +all-host: maybe-all-libmpi @if libcpp-no-bootstrap all-host: maybe-all-libcpp @endif libcpp-no-bootstrap @@ -1164,6 +1176,7 @@ all-target: maybe-all-target-libgcc @endif target-libgcc-no-bootstrap all-target: maybe-all-target-libbacktrace all-target: maybe-all-target-libquadmath +all-target: maybe-all-target-libmpi all-target: maybe-all-target-libgfortran all-target: maybe-all-target-libobjc all-target: maybe-all-target-libgo @@ -1221,6 +1234,7 @@ info-host: maybe-info-tcl info-host: maybe-info-itcl info-host: maybe-info-ld info-host: maybe-info-libbacktrace +info-host: maybe-info-libmpi info-host: maybe-info-libcpp info-host: maybe-info-libdecnumber info-host: maybe-info-libgui @@ -1256,6 +1270,7 @@ info-target: maybe-info-target-newlib info-target: maybe-info-target-libgcc info-target: maybe-info-target-libbacktrace info-target: maybe-info-target-libquadmath +info-target: maybe-info-target-libmpi info-target: maybe-info-target-libgfortran info-target: maybe-info-target-libobjc info-target: maybe-info-target-libgo @@ -1306,6 +1321,7 @@ dvi-host: maybe-dvi-tcl dvi-host: maybe-dvi-itcl dvi-host: maybe-dvi-ld dvi-host: maybe-dvi-libbacktrace +dvi-host: maybe-dvi-libmpi dvi-host: maybe-dvi-libcpp dvi-host: maybe-dvi-libdecnumber dvi-host: maybe-dvi-libgui @@ -1341,6 +1357,7 @@ dvi-target: maybe-dvi-target-newlib dvi-target: maybe-dvi-target-libgcc dvi-target: maybe-dvi-target-libbacktrace dvi-target: maybe-dvi-target-libquadmath +dvi-target: maybe-dvi-target-libmpi dvi-target: maybe-dvi-target-libgfortran dvi-target: maybe-dvi-target-libobjc dvi-target: maybe-dvi-target-libgo @@ -1391,6 +1408,7 @@ pdf-host: maybe-pdf-tcl pdf-host: maybe-pdf-itcl pdf-host: maybe-pdf-ld pdf-host: maybe-pdf-libbacktrace +pdf-host: maybe-pdf-libmpi pdf-host: maybe-pdf-libcpp pdf-host: maybe-pdf-libdecnumber pdf-host: maybe-pdf-libgui @@ -1426,6 +1444,7 @@ pdf-target: maybe-pdf-target-newlib pdf-target: maybe-pdf-target-libgcc pdf-target: maybe-pdf-target-libbacktrace pdf-target: maybe-pdf-target-libquadmath +pdf-target: maybe-pdf-target-libmpi pdf-target: maybe-pdf-target-libgfortran pdf-target: maybe-pdf-target-libobjc pdf-target: maybe-pdf-target-libgo @@ -1476,6 +1495,7 @@ html-host: maybe-html-tcl html-host: maybe-html-itcl html-host: maybe-html-ld html-host: maybe-html-libbacktrace +html-host: maybe-html-libmpi html-host: maybe-html-libcpp html-host: maybe-html-libdecnumber html-host: maybe-html-libgui @@ -1511,6 +1531,7 @@ html-target: maybe-html-target-newlib html-target: maybe-html-target-libgcc html-target: maybe-html-target-libbacktrace html-target: maybe-html-target-libquadmath +html-target: maybe-html-target-libmpi html-target: maybe-html-target-libgfortran html-target: maybe-html-target-libobjc html-target: maybe-html-target-libgo @@ -1561,6 +1582,7 @@ TAGS-host: maybe-TAGS-tcl TAGS-host: maybe-TAGS-itcl TAGS-host: maybe-TAGS-ld TAGS-host: maybe-TAGS-libbacktrace +TAGS-host: maybe-TAGS-libmpi TAGS-host: maybe-TAGS-libcpp TAGS-host: maybe-TAGS-libdecnumber TAGS-host: maybe-TAGS-libgui @@ -1596,6 +1618,7 @@ TAGS-target: maybe-TAGS-target-newlib TAGS-target: maybe-TAGS-target-libgcc TAGS-target: maybe-TAGS-target-libbacktrace TAGS-target: maybe-TAGS-target-libquadmath +TAGS-target: maybe-TAGS-target-libmpi TAGS-target: maybe-TAGS-target-libgfortran TAGS-target: maybe-TAGS-target-libobjc TAGS-target: maybe-TAGS-target-libgo @@ -1646,6 +1669,7 @@ install-info-host: maybe-install-info-tcl install-info-host: maybe-install-info-itcl install-info-host: maybe-install-info-ld install-info-host: maybe-install-info-libbacktrace +install-info-host: maybe-install-info-libmpi install-info-host: maybe-install-info-libcpp install-info-host: maybe-install-info-libdecnumber install-info-host: maybe-install-info-libgui @@ -1681,6 +1705,7 @@ install-info-target: maybe-install-info-target-newlib install-info-target: maybe-install-info-target-libgcc install-info-target: maybe-install-info-target-libbacktrace install-info-target: maybe-install-info-target-libquadmath +install-info-target: maybe-install-info-target-libmpi install-info-target: maybe-install-info-target-libgfortran install-info-target: maybe-install-info-target-libobjc install-info-target: maybe-install-info-target-libgo @@ -1731,6 +1756,7 @@ install-pdf-host: maybe-install-pdf-tcl install-pdf-host: maybe-install-pdf-itcl install-pdf-host: maybe-install-pdf-ld install-pdf-host: maybe-install-pdf-libbacktrace +install-pdf-host: maybe-install-pdf-libmpi install-pdf-host: maybe-install-pdf-libcpp install-pdf-host: maybe-install-pdf-libdecnumber install-pdf-host: maybe-install-pdf-libgui @@ -1766,6 +1792,7 @@ install-pdf-target: maybe-install-pdf-target-newlib install-pdf-target: maybe-install-pdf-target-libgcc install-pdf-target: maybe-install-pdf-target-libbacktrace install-pdf-target: maybe-install-pdf-target-libquadmath +install-pdf-target: maybe-install-pdf-target-libmpi install-pdf-target: maybe-install-pdf-target-libgfortran install-pdf-target: maybe-install-pdf-target-libobjc install-pdf-target: maybe-install-pdf-target-libgo @@ -1816,6 +1843,7 @@ install-html-host: maybe-install-html-tcl install-html-host: maybe-install-html-itcl install-html-host: maybe-install-html-ld install-html-host: maybe-install-html-libbacktrace +install-html-host: maybe-install-html-libmpi install-html-host: maybe-install-html-libcpp install-html-host: maybe-install-html-libdecnumber install-html-host: maybe-install-html-libgui @@ -1851,6 +1879,7 @@ install-html-target: maybe-install-html-target-newlib install-html-target: maybe-install-html-target-libgcc install-html-target: maybe-install-html-target-libbacktrace install-html-target: maybe-install-html-target-libquadmath +install-html-target: maybe-install-html-target-libmpi install-html-target: maybe-install-html-target-libgfortran install-html-target: maybe-install-html-target-libobjc install-html-target: maybe-install-html-target-libgo @@ -1901,6 +1930,7 @@ installcheck-host: maybe-installcheck-tcl installcheck-host: maybe-installcheck-itcl installcheck-host: maybe-installcheck-ld installcheck-host: maybe-installcheck-libbacktrace +installcheck-host: maybe-installcheck-libmpi installcheck-host: maybe-installcheck-libcpp installcheck-host: maybe-installcheck-libdecnumber installcheck-host: maybe-installcheck-libgui @@ -1936,6 +1966,7 @@ installcheck-target: maybe-installcheck-target-newlib installcheck-target: maybe-installcheck-target-libgcc installcheck-target: maybe-installcheck-target-libbacktrace installcheck-target: maybe-installcheck-target-libquadmath +installcheck-target: maybe-installcheck-target-libmpi installcheck-target: maybe-installcheck-target-libgfortran installcheck-target: maybe-installcheck-target-libobjc installcheck-target: maybe-installcheck-target-libgo @@ -1986,6 +2017,7 @@ mostlyclean-host: maybe-mostlyclean-tcl mostlyclean-host: maybe-mostlyclean-itcl mostlyclean-host: maybe-mostlyclean-ld mostlyclean-host: maybe-mostlyclean-libbacktrace +mostlyclean-host: maybe-mostlyclean-libmpi mostlyclean-host: maybe-mostlyclean-libcpp mostlyclean-host: maybe-mostlyclean-libdecnumber mostlyclean-host: maybe-mostlyclean-libgui @@ -2021,6 +2053,7 @@ mostlyclean-target: maybe-mostlyclean-target-newlib mostlyclean-target: maybe-mostlyclean-target-libgcc mostlyclean-target: maybe-mostlyclean-target-libbacktrace mostlyclean-target: maybe-mostlyclean-target-libquadmath +mostlyclean-target: maybe-mostlyclean-target-libmpi mostlyclean-target: maybe-mostlyclean-target-libgfortran mostlyclean-target: maybe-mostlyclean-target-libobjc mostlyclean-target: maybe-mostlyclean-target-libgo @@ -2071,6 +2104,7 @@ clean-host: maybe-clean-tcl clean-host: maybe-clean-itcl clean-host: maybe-clean-ld clean-host: maybe-clean-libbacktrace +clean-host: maybe-clean-libmpi clean-host: maybe-clean-libcpp clean-host: maybe-clean-libdecnumber clean-host: maybe-clean-libgui @@ -2106,6 +2140,7 @@ clean-target: maybe-clean-target-newlib clean-target: maybe-clean-target-libgcc clean-target: maybe-clean-target-libbacktrace clean-target: maybe-clean-target-libquadmath +clean-target: maybe-clean-target-libmpi clean-target: maybe-clean-target-libgfortran clean-target: maybe-clean-target-libobjc clean-target: maybe-clean-target-libgo @@ -2156,6 +2191,7 @@ distclean-host: maybe-distclean-tcl distclean-host: maybe-distclean-itcl distclean-host: maybe-distclean-ld distclean-host: maybe-distclean-libbacktrace +distclean-host: maybe-distclean-libmpi distclean-host: maybe-distclean-libcpp distclean-host: maybe-distclean-libdecnumber distclean-host: maybe-distclean-libgui @@ -2191,6 +2227,7 @@ distclean-target: maybe-distclean-target-newlib distclean-target: maybe-distclean-target-libgcc distclean-target: maybe-distclean-target-libbacktrace distclean-target: maybe-distclean-target-libquadmath +distclean-target: maybe-distclean-target-libmpi distclean-target: maybe-distclean-target-libgfortran distclean-target: maybe-distclean-target-libobjc distclean-target: maybe-distclean-target-libgo @@ -2241,6 +2278,7 @@ maintainer-clean-host: maybe-maintainer-clean-tcl maintainer-clean-host: maybe-maintainer-clean-itcl maintainer-clean-host: maybe-maintainer-clean-ld maintainer-clean-host: maybe-maintainer-clean-libbacktrace +maintainer-clean-host: maybe-maintainer-clean-libmpi maintainer-clean-host: maybe-maintainer-clean-libcpp maintainer-clean-host: maybe-maintainer-clean-libdecnumber maintainer-clean-host: maybe-maintainer-clean-libgui @@ -2276,6 +2314,7 @@ maintainer-clean-target: maybe-maintainer-clean-target-newlib maintainer-clean-target: maybe-maintainer-clean-target-libgcc maintainer-clean-target: maybe-maintainer-clean-target-libbacktrace maintainer-clean-target: maybe-maintainer-clean-target-libquadmath +maintainer-clean-target: maybe-maintainer-clean-target-libmpi maintainer-clean-target: maybe-maintainer-clean-target-libgfortran maintainer-clean-target: maybe-maintainer-clean-target-libobjc maintainer-clean-target: maybe-maintainer-clean-target-libgo @@ -2382,6 +2421,7 @@ check-host: \ maybe-check-itcl \ maybe-check-ld \ maybe-check-libbacktrace \ + maybe-check-libmpi \ maybe-check-libcpp \ maybe-check-libdecnumber \ maybe-check-libgui \ @@ -2417,6 +2457,7 @@ check-target: \ maybe-check-target-libgcc \ maybe-check-target-libbacktrace \ maybe-check-target-libquadmath \ + maybe-check-target-libmpi \ maybe-check-target-libgfortran \ maybe-check-target-libobjc \ maybe-check-target-libgo \ @@ -2514,6 +2555,7 @@ install-host-nogcc: \ maybe-install-itcl \ maybe-install-ld \ maybe-install-libbacktrace \ + maybe-install-libmpi \ maybe-install-libcpp \ maybe-install-libdecnumber \ maybe-install-libgui \ @@ -2563,6 +2605,7 @@ install-host: \ maybe-install-itcl \ maybe-install-ld \ maybe-install-libbacktrace \ + maybe-install-libmpi \ maybe-install-libcpp \ maybe-install-libdecnumber \ maybe-install-libgui \ @@ -2598,6 +2641,7 @@ install-target: \ maybe-install-target-libgcc \ maybe-install-target-libbacktrace \ maybe-install-target-libquadmath \ + maybe-install-target-libmpi \ maybe-install-target-libgfortran \ maybe-install-target-libobjc \ maybe-install-target-libgo \ @@ -2668,6 +2712,7 @@ install-strip-host: \ maybe-install-strip-itcl \ maybe-install-strip-ld \ maybe-install-strip-libbacktrace \ + maybe-install-strip-libmpi \ maybe-install-strip-libcpp \ maybe-install-strip-libdecnumber \ maybe-install-strip-libgui \ @@ -2703,6 +2748,7 @@ install-strip-target: \ maybe-install-strip-target-libgcc \ maybe-install-strip-target-libbacktrace \ maybe-install-strip-target-libquadmath \ + maybe-install-strip-target-libmpi \ maybe-install-strip-target-libgfortran \ maybe-install-strip-target-libobjc \ maybe-install-strip-target-libgo \ @@ -23674,6 +23720,447 @@ maintainer-clean-libbacktrace: +.PHONY: configure-libmpi maybe-configure-libmpi +maybe-configure-libmpi: +@if gcc-bootstrap +configure-libmpi: stage_current +@endif gcc-bootstrap +@if libmpi +maybe-configure-libmpi: configure-libmpi +configure-libmpi: + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + test ! -f $(HOST_SUBDIR)/libmpi/Makefile || exit 0; \ + $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libmpi; \ + $(HOST_EXPORTS) \ + echo Configuring in $(HOST_SUBDIR)/libmpi; \ + cd "$(HOST_SUBDIR)/libmpi" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \ + *) topdir=`echo $(HOST_SUBDIR)/libmpi/ | \ + sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \ + esac; \ + module_srcdir=libmpi; \ + $(SHELL) \ + $$s/$$module_srcdir/configure \ + --srcdir=$${topdir}/$$module_srcdir \ + $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \ + --target=${target_alias} \ + || exit 1 +@endif libmpi + + + + + +.PHONY: all-libmpi maybe-all-libmpi +maybe-all-libmpi: +@if gcc-bootstrap +all-libmpi: stage_current +@endif gcc-bootstrap +@if libmpi +TARGET-libmpi=all +maybe-all-libmpi: all-libmpi +all-libmpi: configure-libmpi + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS) \ + $(TARGET-libmpi)) +@endif libmpi + + + + +.PHONY: check-libmpi maybe-check-libmpi +maybe-check-libmpi: +@if libmpi +maybe-check-libmpi: check-libmpi + +check-libmpi: + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(FLAGS_TO_PASS) check) + +@endif libmpi + +.PHONY: install-libmpi maybe-install-libmpi +maybe-install-libmpi: +@if libmpi +maybe-install-libmpi: install-libmpi + +install-libmpi: installdirs + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(FLAGS_TO_PASS) install) + +@endif libmpi + +.PHONY: install-strip-libmpi maybe-install-strip-libmpi +maybe-install-strip-libmpi: +@if libmpi +maybe-install-strip-libmpi: install-strip-libmpi + +install-strip-libmpi: installdirs + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(FLAGS_TO_PASS) install-strip) + +@endif libmpi + +# Other targets (info, dvi, pdf, etc.) + +.PHONY: maybe-info-libmpi info-libmpi +maybe-info-libmpi: +@if libmpi +maybe-info-libmpi: info-libmpi + +info-libmpi: \ + configure-libmpi + @: $(MAKE); $(unstage) + @[ -f ./libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + for flag in $(EXTRA_HOST_FLAGS) ; do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing info in libmpi"; \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + info) \ + || exit 1 + +@endif libmpi + +.PHONY: maybe-dvi-libmpi dvi-libmpi +maybe-dvi-libmpi: +@if libmpi +maybe-dvi-libmpi: dvi-libmpi + +dvi-libmpi: \ + configure-libmpi + @: $(MAKE); $(unstage) + @[ -f ./libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + for flag in $(EXTRA_HOST_FLAGS) ; do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing dvi in libmpi"; \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + dvi) \ + || exit 1 + +@endif libmpi + +.PHONY: maybe-pdf-libmpi pdf-libmpi +maybe-pdf-libmpi: +@if libmpi +maybe-pdf-libmpi: pdf-libmpi + +pdf-libmpi: \ + configure-libmpi + @: $(MAKE); $(unstage) + @[ -f ./libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + for flag in $(EXTRA_HOST_FLAGS) ; do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing pdf in libmpi"; \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + pdf) \ + || exit 1 + +@endif libmpi + +.PHONY: maybe-html-libmpi html-libmpi +maybe-html-libmpi: +@if libmpi +maybe-html-libmpi: html-libmpi + +html-libmpi: \ + configure-libmpi + @: $(MAKE); $(unstage) + @[ -f ./libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + for flag in $(EXTRA_HOST_FLAGS) ; do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing html in libmpi"; \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + html) \ + || exit 1 + +@endif libmpi + +.PHONY: maybe-TAGS-libmpi TAGS-libmpi +maybe-TAGS-libmpi: +@if libmpi +maybe-TAGS-libmpi: TAGS-libmpi + +TAGS-libmpi: \ + configure-libmpi + @: $(MAKE); $(unstage) + @[ -f ./libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + for flag in $(EXTRA_HOST_FLAGS) ; do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing TAGS in libmpi"; \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + TAGS) \ + || exit 1 + +@endif libmpi + +.PHONY: maybe-install-info-libmpi install-info-libmpi +maybe-install-info-libmpi: +@if libmpi +maybe-install-info-libmpi: install-info-libmpi + +install-info-libmpi: \ + configure-libmpi \ + info-libmpi + @: $(MAKE); $(unstage) + @[ -f ./libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + for flag in $(EXTRA_HOST_FLAGS) ; do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-info in libmpi"; \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + install-info) \ + || exit 1 + +@endif libmpi + +.PHONY: maybe-install-pdf-libmpi install-pdf-libmpi +maybe-install-pdf-libmpi: +@if libmpi +maybe-install-pdf-libmpi: install-pdf-libmpi + +install-pdf-libmpi: \ + configure-libmpi \ + pdf-libmpi + @: $(MAKE); $(unstage) + @[ -f ./libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + for flag in $(EXTRA_HOST_FLAGS) ; do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-pdf in libmpi"; \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + install-pdf) \ + || exit 1 + +@endif libmpi + +.PHONY: maybe-install-html-libmpi install-html-libmpi +maybe-install-html-libmpi: +@if libmpi +maybe-install-html-libmpi: install-html-libmpi + +install-html-libmpi: \ + configure-libmpi \ + html-libmpi + @: $(MAKE); $(unstage) + @[ -f ./libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + for flag in $(EXTRA_HOST_FLAGS) ; do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing install-html in libmpi"; \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + install-html) \ + || exit 1 + +@endif libmpi + +.PHONY: maybe-installcheck-libmpi installcheck-libmpi +maybe-installcheck-libmpi: +@if libmpi +maybe-installcheck-libmpi: installcheck-libmpi + +installcheck-libmpi: \ + configure-libmpi + @: $(MAKE); $(unstage) + @[ -f ./libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + for flag in $(EXTRA_HOST_FLAGS) ; do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing installcheck in libmpi"; \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + installcheck) \ + || exit 1 + +@endif libmpi + +.PHONY: maybe-mostlyclean-libmpi mostlyclean-libmpi +maybe-mostlyclean-libmpi: +@if libmpi +maybe-mostlyclean-libmpi: mostlyclean-libmpi + +mostlyclean-libmpi: + @: $(MAKE); $(unstage) + @[ -f ./libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + for flag in $(EXTRA_HOST_FLAGS) ; do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing mostlyclean in libmpi"; \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + mostlyclean) \ + || exit 1 + +@endif libmpi + +.PHONY: maybe-clean-libmpi clean-libmpi +maybe-clean-libmpi: +@if libmpi +maybe-clean-libmpi: clean-libmpi + +clean-libmpi: + @: $(MAKE); $(unstage) + @[ -f ./libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + for flag in $(EXTRA_HOST_FLAGS) ; do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing clean in libmpi"; \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + clean) \ + || exit 1 + +@endif libmpi + +.PHONY: maybe-distclean-libmpi distclean-libmpi +maybe-distclean-libmpi: +@if libmpi +maybe-distclean-libmpi: distclean-libmpi + +distclean-libmpi: + @: $(MAKE); $(unstage) + @[ -f ./libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + for flag in $(EXTRA_HOST_FLAGS) ; do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing distclean in libmpi"; \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + distclean) \ + || exit 1 + +@endif libmpi + +.PHONY: maybe-maintainer-clean-libmpi maintainer-clean-libmpi +maybe-maintainer-clean-libmpi: +@if libmpi +maybe-maintainer-clean-libmpi: maintainer-clean-libmpi + +maintainer-clean-libmpi: + @: $(MAKE); $(unstage) + @[ -f ./libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + for flag in $(EXTRA_HOST_FLAGS) ; do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing maintainer-clean in libmpi"; \ + (cd $(HOST_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + maintainer-clean) \ + || exit 1 + +@endif libmpi + + + .PHONY: configure-libcpp maybe-configure-libcpp maybe-configure-libcpp: @if gcc-bootstrap @@ -46369,6 +46856,464 @@ maintainer-clean-target-libquadmath: +.PHONY: configure-target-libmpi maybe-configure-target-libmpi +maybe-configure-target-libmpi: +@if gcc-bootstrap +configure-target-libmpi: stage_current +@endif gcc-bootstrap +@if target-libmpi +maybe-configure-target-libmpi: configure-target-libmpi +configure-target-libmpi: + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + echo "Checking multilib configuration for libmpi..."; \ + $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libmpi; \ + $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libmpi/multilib.tmp 2> /dev/null; \ + if test -r $(TARGET_SUBDIR)/libmpi/multilib.out; then \ + if cmp -s $(TARGET_SUBDIR)/libmpi/multilib.tmp $(TARGET_SUBDIR)/libmpi/multilib.out; then \ + rm -f $(TARGET_SUBDIR)/libmpi/multilib.tmp; \ + else \ + rm -f $(TARGET_SUBDIR)/libmpi/Makefile; \ + mv $(TARGET_SUBDIR)/libmpi/multilib.tmp $(TARGET_SUBDIR)/libmpi/multilib.out; \ + fi; \ + else \ + mv $(TARGET_SUBDIR)/libmpi/multilib.tmp $(TARGET_SUBDIR)/libmpi/multilib.out; \ + fi; \ + test ! -f $(TARGET_SUBDIR)/libmpi/Makefile || exit 0; \ + $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libmpi; \ + $(NORMAL_TARGET_EXPORTS) \ + echo Configuring in $(TARGET_SUBDIR)/libmpi; \ + cd "$(TARGET_SUBDIR)/libmpi" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \ + *) topdir=`echo $(TARGET_SUBDIR)/libmpi/ | \ + sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \ + esac; \ + module_srcdir=libmpi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) \ + $$s/$$module_srcdir/configure \ + --srcdir=$${topdir}/$$module_srcdir \ + $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \ + --target=${target_alias} \ + || exit 1 +@endif target-libmpi + + + + + +.PHONY: all-target-libmpi maybe-all-target-libmpi +maybe-all-target-libmpi: +@if gcc-bootstrap +all-target-libmpi: stage_current +@endif gcc-bootstrap +@if target-libmpi +TARGET-target-libmpi=all +maybe-all-target-libmpi: all-target-libmpi +all-target-libmpi: configure-target-libmpi + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \ + $(TARGET-target-libmpi)) +@endif target-libmpi + + + + + +.PHONY: check-target-libmpi maybe-check-target-libmpi +maybe-check-target-libmpi: +@if target-libmpi +maybe-check-target-libmpi: check-target-libmpi + +check-target-libmpi: + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) + +@endif target-libmpi + +.PHONY: install-target-libmpi maybe-install-target-libmpi +maybe-install-target-libmpi: +@if target-libmpi +maybe-install-target-libmpi: install-target-libmpi + +install-target-libmpi: installdirs + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + +@endif target-libmpi + +.PHONY: install-strip-target-libmpi maybe-install-strip-target-libmpi +maybe-install-strip-target-libmpi: +@if target-libmpi +maybe-install-strip-target-libmpi: install-strip-target-libmpi + +install-strip-target-libmpi: installdirs + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install-strip) + +@endif target-libmpi + +# Other targets (info, dvi, pdf, etc.) + +.PHONY: maybe-info-target-libmpi info-target-libmpi +maybe-info-target-libmpi: +@if target-libmpi +maybe-info-target-libmpi: info-target-libmpi + +info-target-libmpi: \ + configure-target-libmpi + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing info in $(TARGET_SUBDIR)/libmpi"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + info) \ + || exit 1 + +@endif target-libmpi + +.PHONY: maybe-dvi-target-libmpi dvi-target-libmpi +maybe-dvi-target-libmpi: +@if target-libmpi +maybe-dvi-target-libmpi: dvi-target-libmpi + +dvi-target-libmpi: \ + configure-target-libmpi + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing dvi in $(TARGET_SUBDIR)/libmpi"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + dvi) \ + || exit 1 + +@endif target-libmpi + +.PHONY: maybe-pdf-target-libmpi pdf-target-libmpi +maybe-pdf-target-libmpi: +@if target-libmpi +maybe-pdf-target-libmpi: pdf-target-libmpi + +pdf-target-libmpi: \ + configure-target-libmpi + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing pdf in $(TARGET_SUBDIR)/libmpi"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + pdf) \ + || exit 1 + +@endif target-libmpi + +.PHONY: maybe-html-target-libmpi html-target-libmpi +maybe-html-target-libmpi: +@if target-libmpi +maybe-html-target-libmpi: html-target-libmpi + +html-target-libmpi: \ + configure-target-libmpi + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing html in $(TARGET_SUBDIR)/libmpi"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + html) \ + || exit 1 + +@endif target-libmpi + +.PHONY: maybe-TAGS-target-libmpi TAGS-target-libmpi +maybe-TAGS-target-libmpi: +@if target-libmpi +maybe-TAGS-target-libmpi: TAGS-target-libmpi + +TAGS-target-libmpi: \ + configure-target-libmpi + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/libmpi"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + TAGS) \ + || exit 1 + +@endif target-libmpi + +.PHONY: maybe-install-info-target-libmpi install-info-target-libmpi +maybe-install-info-target-libmpi: +@if target-libmpi +maybe-install-info-target-libmpi: install-info-target-libmpi + +install-info-target-libmpi: \ + configure-target-libmpi \ + info-target-libmpi + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing install-info in $(TARGET_SUBDIR)/libmpi"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + install-info) \ + || exit 1 + +@endif target-libmpi + +.PHONY: maybe-install-pdf-target-libmpi install-pdf-target-libmpi +maybe-install-pdf-target-libmpi: +@if target-libmpi +maybe-install-pdf-target-libmpi: install-pdf-target-libmpi + +install-pdf-target-libmpi: \ + configure-target-libmpi \ + pdf-target-libmpi + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing install-pdf in $(TARGET_SUBDIR)/libmpi"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + install-pdf) \ + || exit 1 + +@endif target-libmpi + +.PHONY: maybe-install-html-target-libmpi install-html-target-libmpi +maybe-install-html-target-libmpi: +@if target-libmpi +maybe-install-html-target-libmpi: install-html-target-libmpi + +install-html-target-libmpi: \ + configure-target-libmpi \ + html-target-libmpi + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing install-html in $(TARGET_SUBDIR)/libmpi"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + install-html) \ + || exit 1 + +@endif target-libmpi + +.PHONY: maybe-installcheck-target-libmpi installcheck-target-libmpi +maybe-installcheck-target-libmpi: +@if target-libmpi +maybe-installcheck-target-libmpi: installcheck-target-libmpi + +installcheck-target-libmpi: \ + configure-target-libmpi + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/libmpi"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + installcheck) \ + || exit 1 + +@endif target-libmpi + +.PHONY: maybe-mostlyclean-target-libmpi mostlyclean-target-libmpi +maybe-mostlyclean-target-libmpi: +@if target-libmpi +maybe-mostlyclean-target-libmpi: mostlyclean-target-libmpi + +mostlyclean-target-libmpi: + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/libmpi"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + mostlyclean) \ + || exit 1 + +@endif target-libmpi + +.PHONY: maybe-clean-target-libmpi clean-target-libmpi +maybe-clean-target-libmpi: +@if target-libmpi +maybe-clean-target-libmpi: clean-target-libmpi + +clean-target-libmpi: + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing clean in $(TARGET_SUBDIR)/libmpi"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + clean) \ + || exit 1 + +@endif target-libmpi + +.PHONY: maybe-distclean-target-libmpi distclean-target-libmpi +maybe-distclean-target-libmpi: +@if target-libmpi +maybe-distclean-target-libmpi: distclean-target-libmpi + +distclean-target-libmpi: + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing distclean in $(TARGET_SUBDIR)/libmpi"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + distclean) \ + || exit 1 + +@endif target-libmpi + +.PHONY: maybe-maintainer-clean-target-libmpi maintainer-clean-target-libmpi +maybe-maintainer-clean-target-libmpi: +@if target-libmpi +maybe-maintainer-clean-target-libmpi: maintainer-clean-target-libmpi + +maintainer-clean-target-libmpi: + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libmpi/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libmpi"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libmpi && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + maintainer-clean) \ + || exit 1 + +@endif target-libmpi + + + + + .PHONY: configure-target-libgfortran maybe-configure-target-libgfortran maybe-configure-target-libgfortran: @if gcc-bootstrap @@ -53542,6 +54487,14 @@ check-gcc-fortran: (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-fortran); check-fortran: check-gcc-fortran check-target-libquadmath check-target-libgfortran +.PHONY: check-gcc-mpi check-mpi +check-gcc-mpi: + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-fortran); +check-mpi: check-gcc-mpi check-target-libmpi + .PHONY: check-gcc-ada check-ada check-gcc-ada: r=`${PWD_COMMAND}`; export r; \ @@ -56779,6 +57732,7 @@ configure-stageautoprofile-target-libgcc: maybe-all-stageautoprofile-gcc configure-stageautofeedback-target-libgcc: maybe-all-stageautofeedback-gcc configure-target-libbacktrace: stage_last configure-target-libquadmath: stage_last +configure-target-libmpi: stage_last configure-target-libgfortran: stage_last configure-target-libobjc: stage_last configure-target-libgo: stage_last @@ -56814,6 +57768,7 @@ configure-target-newlib: maybe-all-gcc configure-target-libgcc: maybe-all-gcc configure-target-libbacktrace: maybe-all-gcc configure-target-libquadmath: maybe-all-gcc +configure-target-libmpi: maybe-all-gcc configure-target-libgfortran: maybe-all-gcc configure-target-libobjc: maybe-all-gcc configure-target-libgo: maybe-all-gcc @@ -58063,6 +59018,7 @@ configure-target-libssp: maybe-all-target-libgcc configure-target-newlib: maybe-all-target-libgcc configure-target-libbacktrace: maybe-all-target-libgcc configure-target-libquadmath: maybe-all-target-libgcc +configure-target-libmpi: maybe-all-target-libgcc configure-target-libgfortran: maybe-all-target-libgcc configure-target-libobjc: maybe-all-target-libgcc configure-target-libgo: maybe-all-target-libgcc @@ -58099,6 +59055,8 @@ configure-target-libbacktrace: maybe-all-target-newlib maybe-all-target-libgloss configure-target-libquadmath: maybe-all-target-newlib maybe-all-target-libgloss +configure-target-libmpi: maybe-all-target-newlib maybe-all-target-libgloss + configure-target-libgfortran: maybe-all-target-newlib maybe-all-target-libgloss configure-target-libobjc: maybe-all-target-newlib maybe-all-target-libgloss diff --git a/Makefile.tpl b/Makefile.tpl index 1f23b79b4b2ab..452c5c49ea539 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -221,6 +221,10 @@ HOST_EXPORTS = \ HOST_LIBS="$(STAGE1_LIBS)"; export HOST_LIBS; \ GMPLIBS="$(HOST_GMPLIBS)"; export GMPLIBS; \ GMPINC="$(HOST_GMPINC)"; export GMPINC; \ +# + MPILIBS="$(HOST_MPILIBS)"; export MPILIBS; \ + MPIINC="$(HOST_MPIINC)"; export MPIINC; \ +# ISLLIBS="$(HOST_ISLLIBS)"; export ISLLIBS; \ ISLINC="$(HOST_ISLINC)"; export ISLINC; \ LIBELFLIBS="$(HOST_LIBELFLIBS)"; export LIBELFLIBS; \ @@ -312,6 +316,10 @@ NORMAL_TARGET_EXPORTS = \ HOST_GMPLIBS = @gmplibs@ HOST_GMPINC = @gmpinc@ +# Where to find MPI +HOST_MPILIBS = @mpilibs@ +HOST_MPIINC = @mpiinc@ + # Where to find isl HOST_ISLLIBS = @isllibs@ HOST_ISLINC = @islinc@ diff --git a/README.md b/README.md new file mode 100644 index 0000000000000..69857f4067791 --- /dev/null +++ b/README.md @@ -0,0 +1,88 @@ +Overview +======== +This repository exists as a staging ground for developing candidate +contributions to the GNU Compiler Collection ([GCC]). + +Candidate features currently on this site are listed below. The checked items indicate features +that are deemed sufficiently functional submitted to the relevant GCC developer mailing list for review. +We welcome user feedback from testing these features. Unchecked itmes are insufficiently mature to +submit to GCC. We welcome code via [pull request] for any listed features or other unsupported +features of the draft Fortran 2018 standard: + +- [X] The [teams branch] with experimental support for Fortran 2018 teams (committed to the GCC trunk and will appear in GCC 8). +- [X] The [download-opencoarrays-mpich branch] adds [OpenCoarrays] & [MPICH] download to GCC's download_prerequisites script. +- [ ] The [issue-#6-iso-fortran-binding-h branch] providing the Fortran 2018 `ISO_Fortran_binding.h` file. + +Installation +============ +This fork's [releases] are produced from the [teams branch], which expect will be of +most interest to users. We recommend building releses usin the [OpenCoarrays] +installation script as follows: +```bash +git clone https://github.com/sourceryinstitute/opencoarrays +cd oppencoarrays +./install.sh --package gcc \ + --from-url https://github.com/sourceryinstitute/gcc/archive/.tar.gz \ + --install-version teams-20170921 +``` +where and must be replaced with the appropriate strings such as +1.9.2 and teams-20170921, respectively. The final command above peforms the safest but slowest +build, which could take several hours to complete. For a speedier build, add the `--disable-bootstrap`, +which might fail if the GCC you are using to build is too old. Also, for an interactive build, +add `--yes-to-all` to instruct the installer to assume affirmative answers to any queries. If successful, +the above steps will install GCC in the prerequisites/installations subdirectory. To see additional +installation options, including choosing another installation path, execute `./install.sh --help`. + +For access to any Fortran 2018 parallel features, including teams and failed images, build the [MPICH] +and the [opencoarrays-teams branch]: +of OpenCoarrays: +```bash +git checkout opencoarrays-teams +export LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH +./install.sh --package mpich \ + --with-fortran /bin/gfortarn \ + --with-c /bin/gcc \ + --with-cpp /bin/g++ +./install.sh \ + --with-mpi +``` +with appropriate substitutions for the values between angular brackdets (<...>). Please report +any problems with the above steps on our [issues page]. + + +[GCC mirror] README +=================== + +This directory contains the GNU Compiler Collection (GCC). + +The GNU Compiler Collection is free software. See the files whose +names start with COPYING for copying permission. The manuals, and +some of the runtime libraries, are under different terms; see the +individual source files for details. + +The directory INSTALL contains copies of the installation information +as HTML and plain text. The source of this information is +gcc/doc/install.texi. The installation information includes details +of what is included in the GCC sources and what files GCC installs. + +See the file gcc/doc/gcc.texi (together with other files that it +includes) for usage and porting information. An online readable +version of the manual is in the files gcc/doc/gcc.info*. + +See http://gcc.gnu.org/bugs/ for how to report bugs usefully. + +Copyright years on GCC source files may be listed using range +notation, e.g., 1987-2012, indicating that every year in the range, +inclusive, is a copyrightable year that could otherwise be listed +individually. + +[GCC mirror]: https://github.com/gcc-mirror/gcc +[GCC]: https://gcc.gnu.org/gcc +[OpenCoarrays]: https://www.opendcoarrays.org +[MPICH]: https://www.mpich.org +[teams branch]: https://github.com/sourceryinstitute/gcc/tree/teams +[issue-#6-iso-fortran-binding-h branch]: https://github.com/sourceryinstitute/gcc/tree/issue-#6-iso-fortran-binding-h +[download-opencoarrays-mpich branch]: https://github.com/sourceryinstitute/gcc/tree/download-opencoarrays-mpich +[releases] https://github.com/sourceryinstitute/gcc/releases/ +[issues page] https://github.com/sourceryinstitute/gcc/issues/ +[opencoarrays-teams branch]: https://github.com/sourceryinstitute/opencoarrays/tree/opencoarrays-teams diff --git a/build.sh b/build.sh new file mode 100755 index 0000000000000..103e66337c8fa --- /dev/null +++ b/build.sh @@ -0,0 +1,6 @@ +mkdir build && +cd build && +../configure --enable-languages=fortran \ +--disable-multilib \ +--disable-bootstrap && +make -j 4 diff --git a/configure b/configure index 0601395512fdc..c7d691c2c00d6 100755 --- a/configure +++ b/configure @@ -581,6 +581,7 @@ DLLTOOL_FOR_TARGET AS_FOR_TARGET AR_FOR_TARGET GOC_FOR_TARGET +MPI_FOR_TARGET GFORTRAN_FOR_TARGET GCC_FOR_TARGET CXX_FOR_TARGET @@ -613,6 +614,7 @@ NM_FOR_BUILD LD_FOR_BUILD LDFLAGS_FOR_BUILD GOC_FOR_BUILD +MPI_FOR_BUILD GFORTRAN_FOR_BUILD DLLTOOL_FOR_BUILD CXX_FOR_BUILD @@ -644,6 +646,8 @@ get_gcc_base_ver extra_host_zlib_configure_flags extra_host_libiberty_configure_flags stage1_languages +mpiinc +mpilibs host_shared extra_linker_plugin_flags extra_linker_plugin_configure_flags @@ -782,6 +786,9 @@ enable_lto enable_linker_plugin_configure_flags enable_linker_plugin_flags enable_host_shared +with_mpi +with_mpi_include +with_mpi_lib enable_stage1_languages enable_objc_gc with_target_bdw_gc @@ -829,6 +836,7 @@ CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GFORTRAN_FOR_TARGET +MPI_FOR_TARGET GOC_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET @@ -1553,6 +1561,11 @@ Optional Packages: --with-isl-lib=PATH/lib --with-isl-include=PATH Specify directory for installed isl include files --with-isl-lib=PATH Specify the directory for the installed isl library + --with-mpi=PATH specify prefix directory for installed mpi package. + Equivalent to --with-mpi-include=PATH/include plus + --with-mpi-lib=PATH/lib + --with-mpi-include=PATH specify directory for installed mpi include files + --with-mpi-lib=PATH specify directory for the installed mpi library --with-target-bdw-gc=PATHLIST specify prefix directory for installed bdw-gc package. Equivalent to @@ -1611,6 +1624,8 @@ Some influential environment variables: GCC for the target GFORTRAN_FOR_TARGET GFORTRAN for the target + MPI_FOR_TARGET + MPI for the target GOC_FOR_TARGET GOC for the target AR_FOR_TARGET @@ -2733,7 +2748,7 @@ build_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes" # these libraries are used by various programs built for the host environment #f -host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libdecnumber gmp mpfr mpc isl libelf libiconv" +host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libdecnumber gmp mpfr mpc isl libelf libiconv libmpi" # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to @@ -2765,7 +2780,8 @@ target_libraries="target-libgcc \ target-libffi \ target-libobjc \ target-libada \ - target-libgo" + target-libgo \ + target-libmpi" # these tools are built using the target libraries, and are intended to # run only in the target environment @@ -3935,6 +3951,9 @@ if test "${build}" != "${host}" ; then CC_FOR_BUILD=${CC_FOR_BUILD-gcc} CXX_FOR_BUILD=${CXX_FOR_BUILD-g++} GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran} +# start daniel + MPI_FOR_BUILD=${MPI_FOR_BUILD-mpi} +# end daniel GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo} DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool} LD_FOR_BUILD=${LD_FOR_BUILD-ld} @@ -3948,6 +3967,9 @@ else CC_FOR_BUILD="\$(CC)" CXX_FOR_BUILD="\$(CXX)" GFORTRAN_FOR_BUILD="\$(GFORTRAN)" +# start daniel + MPI_FOR_BUILD="\$(MPI)" +# end daniel GOC_FOR_BUILD="\$(GOC)" DLLTOOL_FOR_BUILD="\$(DLLTOOL)" LD_FOR_BUILD="\$(LD)" @@ -6109,6 +6131,72 @@ if test -d ${srcdir}/gcc; then ;; esac + # Check if fortran is enabled. Support for coarrays requires a MPI. + case ,${enable_languages}, in + *,fortran,*) + # Check for MPI. Default is mpi. + mpidist="mpich" + mpilibs="-l$mpidist" +#"-l$mpidist" +#"--libs-only-l mpi" + mpiinc= +#"--libs-only-I mpi" + have_mpi=no + # Specify a location for MPI package + +# Check whether --with-mpi was given. +if test "${with_mpi+set}" = set; then : + withval=$with_mpi; +fi + + +# Check whether --with-mpi-include was given. +if test "${with_mpi_include+set}" = set; then : + withval=$with_mpi_include; +fi + + +# Check whether --with-mpi-lib was given. +if test "${with_mpi_lib+set}" = set; then : + withval=$with_mpi_lib; +fi + + #AC_SEARCH_LIBS(MPI_Init, mpi, [], AC_MSG_ERROR([Unable to find mpi library - make sure LD path to the library is set]), []) + # Test if MPI exists. + if test "x$with_mpi" != x; then + mpilibs="-L$with_mpi/lib $mpilibs" + mpiinc="-I$with_mpi/include $mpiinc" + fi + if test "x$with_mpi_include" != x; then + mpiinc="-I$with_mpi_include $with_mpiinc" + fi + if test "x$with_mpi_lib" != x; then + mpilibs="-L$with_mpi_lib $mpilibs" + fi + if test "x$with_mpi$with_mpi_include$with_mpi_lib" = x && test -d ${srcdir}/$mpidist; then + mpilibs='-L$$r/$(HOST_SUBDIR)/mpc/src/'"$lt_cv_objdir $gmplibs" + mpiinc='-I$$s/mpc/src '"$gmpinc" +# mpilibs='-L$$r/$(HOST_SUBDIR)/'"$mpidist"'/src/'"$lt_cv_objdir $mpilibs" +# mpiinc='-I$$s/'"$mpidist"'/src '"$mpiinc" + have_mpi=yes + fi + # Coarray support in gfortran requires an MPI installation. + if test "x$have_mpi" != xyes; then + as_fn_error "Building gfortran requires an MPI installation to support coarrays. +Try the --with-mpi, or --with-mpi-include and --with-mpi-lib options +to specify its location. Source code for the default GCC MPICH library, mpi, +can be found at its hosting site as well as at +ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also +http://gcc.gnu.org/install/prerequisites.html for additional info. If +you obtained a different MPI from a vendor distribution package, +make sure that you have installed both the libraries and the header +files. They may be located in separate packages." "$LINENO" 5 + fi + + + ;; + esac + # If bootstrapping, C++ must be enabled. case ",$enable_languages,:$enable_bootstrap" in *,c++,*:*) ;; @@ -7339,7 +7427,7 @@ do case $lib in - mpc | mpfr | gmp | isl) + mpc | mpfr | gmp | isl | mpi) # If we're processing --with-$lib, --with-$lib-include or # --with-$lib-lib, for one of the libs above, and target is # different from host, don't pass the current argument to any @@ -7658,6 +7746,9 @@ done +# start daniel + +# end daniel @@ -10557,6 +10648,170 @@ else GFORTRAN_FOR_TARGET="$ac_cv_prog_GFORTRAN_FOR_TARGET" fi +# start daniel + + +if test -n "$MPI_FOR_TARGET"; then + ac_cv_prog_MPI_FOR_TARGET=$MPI_FOR_TARGET +elif test -n "$ac_cv_prog_MPI_FOR_TARGET"; then + MPI_FOR_TARGET=$ac_cv_prog_MPI_FOR_TARGET +fi + +if test -n "$ac_cv_prog_MPI_FOR_TARGET"; then + for ncn_progname in mpi; do + # Extract the first word of "${ncn_progname}", so it can be a program name with args. +set dummy ${ncn_progname}; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_MPI_FOR_TARGET+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MPI_FOR_TARGET"; then + ac_cv_prog_MPI_FOR_TARGET="$MPI_FOR_TARGET" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MPI_FOR_TARGET="${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MPI_FOR_TARGET=$ac_cv_prog_MPI_FOR_TARGET +if test -n "$MPI_FOR_TARGET"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPI_FOR_TARGET" >&5 +$as_echo "$MPI_FOR_TARGET" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + done +fi + +if test -z "$ac_cv_prog_MPI_FOR_TARGET" && test -n "$with_build_time_tools"; then + for ncn_progname in mpi; do + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ncn_progname} in $with_build_time_tools" >&5 +$as_echo_n "checking for ${ncn_progname} in $with_build_time_tools... " >&6; } + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_MPI_FOR_TARGET=$with_build_time_tools/${ncn_progname} + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + break + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + done +fi + +if test -z "$ac_cv_prog_MPI_FOR_TARGET"; then + for ncn_progname in mpi; do + if test -n "$ncn_target_tool_prefix"; then + # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. +set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_MPI_FOR_TARGET+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MPI_FOR_TARGET"; then + ac_cv_prog_MPI_FOR_TARGET="$MPI_FOR_TARGET" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MPI_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MPI_FOR_TARGET=$ac_cv_prog_MPI_FOR_TARGET +if test -n "$MPI_FOR_TARGET"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPI_FOR_TARGET" >&5 +$as_echo "$MPI_FOR_TARGET" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + if test -z "$ac_cv_prog_MPI_FOR_TARGET" && test $build = $target ; then + # Extract the first word of "${ncn_progname}", so it can be a program name with args. +set dummy ${ncn_progname}; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_MPI_FOR_TARGET+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MPI_FOR_TARGET"; then + ac_cv_prog_MPI_FOR_TARGET="$MPI_FOR_TARGET" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MPI_FOR_TARGET="${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MPI_FOR_TARGET=$ac_cv_prog_MPI_FOR_TARGET +if test -n "$MPI_FOR_TARGET"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPI_FOR_TARGET" >&5 +$as_echo "$MPI_FOR_TARGET" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + test -n "$ac_cv_prog_MPI_FOR_TARGET" && break + done +fi + +if test -z "$ac_cv_prog_MPI_FOR_TARGET" ; then + set dummy mpi + if test $build = $target ; then + MPI_FOR_TARGET="$2" + else + MPI_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi +else + MPI_FOR_TARGET="$ac_cv_prog_MPI_FOR_TARGET" +fi + +# end daniel + if test -n "$GOC_FOR_TARGET"; then @@ -14071,6 +14326,53 @@ $as_echo "pre-installed" >&6; } fi fi +# start daniel +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target mpi" >&5 +$as_echo_n "checking where to find the target mpi... " >&6; } +if test "x${build}" != "x${host}" ; then + if expr "x$MPI_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path + ac_dir=`dirname $MPI_FOR_TARGET` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed in $ac_dir" >&5 +$as_echo "pre-installed in $ac_dir" >&6; } + else + # Canadian cross, just use what we found + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed" >&5 +$as_echo "pre-installed" >&6; } + fi +else + ok=yes + case " ${configdirs} " in + *" gcc "*) ;; + *) ok=no ;; + esac + case ,${enable_languages}, in + *,mpi,*) ;; + *) ok=no ;; + esac + if test $ok = yes; then + # An in-tree tool is available and we can use it + MPI_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/mpi -B$$r/$(HOST_SUBDIR)/gcc/' + { $as_echo "$as_me:${as_lineno-$LINENO}: result: just compiled" >&5 +$as_echo "just compiled" >&6; } + elif expr "x$MPI_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path + ac_dir=`dirname $MPI_FOR_TARGET` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed in $ac_dir" >&5 +$as_echo "pre-installed in $ac_dir" >&6; } + elif test "x$target" = "x$host"; then + # We can use an host tool + MPI_FOR_TARGET='$(MPI)' + { $as_echo "$as_me:${as_lineno-$LINENO}: result: host tool" >&5 +$as_echo "host tool" >&6; } + else + # We need a cross tool + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed" >&5 +$as_echo "pre-installed" >&6; } + fi +fi + +# end daniel { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target gccgo" >&5 $as_echo_n "checking where to find the target gccgo... " >&6; } if test "x${build}" != "x${host}" ; then diff --git a/configure.ac b/configure.ac index c3433336523c5..87c7cd2132cb4 100644 --- a/configure.ac +++ b/configure.ac @@ -132,7 +132,7 @@ build_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes" # these libraries are used by various programs built for the host environment #f -host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libdecnumber gmp mpfr mpc isl libelf libiconv" +host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libdecnumber gmp mpfr mpc isl libelf libiconv libmpi" # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to @@ -164,7 +164,8 @@ target_libraries="target-libgcc \ target-libffi \ target-libobjc \ target-libada \ - target-libgo" + target-libgo \ + target-libmpi" # these tools are built using the target libraries, and are intended to # run only in the target environment @@ -1247,6 +1248,9 @@ if test "${build}" != "${host}" ; then CC_FOR_BUILD=${CC_FOR_BUILD-gcc} CXX_FOR_BUILD=${CXX_FOR_BUILD-g++} GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran} +# start daniel + MPI_FOR_BUILD=${MPI_FOR_BUILD-mpi} +# end daniel GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo} DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool} LD_FOR_BUILD=${LD_FOR_BUILD-ld} @@ -1260,6 +1264,9 @@ else CC_FOR_BUILD="\$(CC)" CXX_FOR_BUILD="\$(CXX)" GFORTRAN_FOR_BUILD="\$(GFORTRAN)" +# start daniel + MPI_FOR_BUILD="\$(MPI)" +# end daniel GOC_FOR_BUILD="\$(GOC)" DLLTOOL_FOR_BUILD="\$(DLLTOOL)" LD_FOR_BUILD="\$(LD)" @@ -1785,6 +1792,65 @@ if test -d ${srcdir}/gcc; then ;; esac + # Check if fortran is enabled. Support for coarrays requires a MPI. + case ,${enable_languages}, in + *,fortran,*) + # Check for MPI. Default is mpi. + mpidist="mpich" + mpilibs="-l$mpidist" +#"-l$mpidist" +#"--libs-only-l mpi" + mpiinc= +#"--libs-only-I mpi" + have_mpi=no + # Specify a location for MPI package + AC_ARG_WITH(mpi, + [AS_HELP_STRING([--with-mpi=PATH], + [specify prefix directory for installed mpi package. + Equivalent to --with-mpi-include=PATH/include + plus --with-mpi-lib=PATH/lib])]) + AC_ARG_WITH(mpi-include, + [AS_HELP_STRING([--with-mpi-include=PATH], + [specify directory for installed mpi include files])]) + AC_ARG_WITH(mpi-lib, + [AS_HELP_STRING([--with-mpi-lib=PATH], + [specify directory for the installed mpi library])]) + #AC_SEARCH_LIBS(MPI_Init, mpi, [], AC_MSG_ERROR([Unable to find mpi library - make sure LD path to the library is set]), []) + # Test if MPI exists. + if test "x$with_mpi" != x; then + mpilibs="-L$with_mpi/lib $mpilibs" + mpiinc="-I$with_mpi/include $mpiinc" + fi + if test "x$with_mpi_include" != x; then + mpiinc="-I$with_mpi_include $with_mpiinc" + fi + if test "x$with_mpi_lib" != x; then + mpilibs="-L$with_mpi_lib $mpilibs" + fi + if test "x$with_mpi$with_mpi_include$with_mpi_lib" = x && test -d ${srcdir}/$mpidist; then + mpilibs='-L$$r/$(HOST_SUBDIR)/mpc/src/'"$lt_cv_objdir $gmplibs" + mpiinc='-I$$s/mpc/src '"$gmpinc" +# mpilibs='-L$$r/$(HOST_SUBDIR)/'"$mpidist"'/src/'"$lt_cv_objdir $mpilibs" +# mpiinc='-I$$s/'"$mpidist"'/src '"$mpiinc" + have_mpi=yes + fi + # Coarray support in gfortran requires an MPI installation. + if test "x$have_mpi" != xyes; then + AC_MSG_ERROR([Building gfortran requires an MPI installation to support coarrays. +Try the --with-mpi, or --with-mpi-include and --with-mpi-lib options +to specify its location. Source code for the default GCC MPICH library, mpi, +can be found at its hosting site as well as at +ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also +http://gcc.gnu.org/install/prerequisites.html for additional info. If +you obtained a different MPI from a vendor distribution package, +make sure that you have installed both the libraries and the header +files. They may be located in separate packages.]) + fi + AC_SUBST(mpilibs) + AC_SUBST(mpiinc) + ;; + esac + # If bootstrapping, C++ must be enabled. case ",$enable_languages,:$enable_bootstrap" in *,c++,*:*) ;; @@ -2925,7 +2991,7 @@ changequote(,) changequote([,]) case $lib in - mpc | mpfr | gmp | isl) + mpc | mpfr | gmp | isl | mpi) # If we're processing --with-$lib, --with-$lib-include or # --with-$lib-lib, for one of the libs above, and target is # different from host, don't pass the current argument to any @@ -3247,6 +3313,9 @@ AC_SUBST(CXXFLAGS_FOR_BUILD) AC_SUBST(CXX_FOR_BUILD) AC_SUBST(DLLTOOL_FOR_BUILD) AC_SUBST(GFORTRAN_FOR_BUILD) +# start daniel +AC_SUBST(MPI_FOR_BUILD) +# end daniel AC_SUBST(GOC_FOR_BUILD) AC_SUBST(LDFLAGS_FOR_BUILD) AC_SUBST(LD_FOR_BUILD) @@ -3356,6 +3425,10 @@ NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc) NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx) NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET}) NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran) +# start daniel +NCN_STRICT_CHECK_TARGET_TOOLS(MPI_FOR_TARGET, mpi) +# end daniel + NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo) ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar) @@ -3388,6 +3461,10 @@ GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool]) GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/]) GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN, [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran) +# start daniel +GCC_TARGET_TOOL(mpi, MPI_FOR_TARGET, MPI, + [gcc/mpi -B$$r/$(HOST_SUBDIR)/gcc/], mpi) +# end daniel GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC, [gcc/gccgo -B$$r/$(HOST_SUBDIR)/gcc/], go) GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new]) diff --git a/contrib/download_prerequisites b/contrib/download_prerequisites index b50f47cda7954..78e40ebe4c873 100755 --- a/contrib/download_prerequisites +++ b/contrib/download_prerequisites @@ -31,6 +31,8 @@ gmp='gmp-6.1.0.tar.bz2' mpfr='mpfr-3.1.4.tar.bz2' mpc='mpc-1.0.3.tar.gz' isl='isl-0.18.tar.bz2' +mpich='mpich-3.2.tar.gz' +opencoarrays='opencoarrays-1.9.0.tar.gz' base_url='ftp://gcc.gnu.org/pub/gcc/infrastructure/' @@ -38,9 +40,12 @@ echo_archives() { echo "${gmp}" echo "${mpfr}" echo "${mpc}" + if [ ${fortran} -gt 0 ]; then echo "${mpich}"; fi + if [ ${fortran} -gt 0 ]; then echo "${opencoarrays}"; fi if [ ${graphite} -gt 0 ]; then echo "${isl}"; fi } +fortran=1 graphite=1 verify=1 force=0 @@ -83,6 +88,7 @@ The following options are available: --md5 use MD5 checksum to verify package integrity --help show this text and exit --version show version information and exit + --no-fortran do not download Fortran prerequisites " versiontext="${program} ${version} @@ -95,6 +101,14 @@ die() { exit 1 } +if type wget > /dev/null ; then + fetch='wget' +elif type curl > /dev/null ; then + fetch='curl -LO -u anonymous:' +else + die "Neither wget nor curl found, cannot download tarballs." +fi + for arg in "$@" do case "${arg}" in @@ -146,6 +160,9 @@ do --no-force) force=0 ;; + --no-fortran) + fortran=0 + ;; --isl|--graphite) graphite=1 ;; diff --git a/contrib/prerequisites.md5 b/contrib/prerequisites.md5 index cc71e0f4de68a..36c94292c5354 100644 --- a/contrib/prerequisites.md5 +++ b/contrib/prerequisites.md5 @@ -2,3 +2,5 @@ b8a2f6b0e68bef46e53da2ac439e1cf4 mpfr-3.1.4.tar.bz2 d6a1d5f8ddea3abd2cc3e98f58352d26 mpc-1.0.3.tar.gz 11436d6b205e516635b666090b94ab32 isl-0.18.tar.bz2 +f414cfa77099cd1fa1a5ae4e22db508a mpich-3.2.tar.gz +1e2b05f71d3b1a9f3cdd2ceb4b46b7a0 opencoarrays-1.9.0.tar.gz diff --git a/contrib/prerequisites.sha512 b/contrib/prerequisites.sha512 index cf6b93b8d6b81..1f496389442bc 100644 --- a/contrib/prerequisites.sha512 +++ b/contrib/prerequisites.sha512 @@ -2,3 +2,5 @@ 51066066ff2c12ed2198605ecf68846b0c96b548adafa5b80e0c786d0df488411a5e8973358fce7192dc977ad4e68414cf14500e3c39746de62465eb145bb819 mpfr-3.1.4.tar.bz2 0028b76df130720c1fad7de937a0d041224806ce5ef76589f19c7b49d956071a683e2f20d154c192a231e69756b19e48208f2889b0c13950ceb7b3cfaf059a43 mpc-1.0.3.tar.gz 85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94 isl-0.18.tar.bz2 +083c51655b4355827bd7fa4fe528046e2bc77b7747d869ff87b79fa324c3cc2a9b5640ccb7271490ccc0dd627e354a33a449bbab448501bbfddcfe5f999ee717 mpich-3.2.tar.gz +ff081d5fbde411075a221920b6d6e2ba5698d99d4536441450cc47ba2c713fdb6d7bcf0040d1b4076059973d32892d674218b281a7fcab991282448bad0b0aad opencoarrays-1.9.0.tar.gz