"Jose E. Marchesi" <jose.march...@oracle.com> writes: > This patch contains the changes to files in the GCC top-level > directory to introduce the Algol 68 front-end. > --- > MAINTAINERS | 2 + > Makefile.def | 3 + > Makefile.in | 1341 +++++++++++++++++++++++++++++++++++++++++++++- > Makefile.tpl | 14 + > SECURITY.txt | 1 + > config/acx.m4 | 6 + > configure | 296 +++++++++- > configure.ac | 65 ++- > include/dwarf2.h | 5 +- > 9 files changed, 1706 insertions(+), 27 deletions(-) > > diff --git a/MAINTAINERS b/MAINTAINERS > index 0c571bde8bc..827e53c0cdc 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -171,6 +171,7 @@ objective-c/c++ Mike Stump > <mikest...@comcast.net> > objective-c/c++ Iain Sandoe <i...@sandoe.co.uk> > Rust Arthur Cohen <arthur.co...@embecosm.com> > Rust Philip Herron > <herron.phi...@googlemail.com> > +Algol 68 Jose E. Marchesi <jema...@gnu.org> > > Various Maintainers > > @@ -179,6 +180,7 @@ libcpp Per Bothner > <p...@bothner.com> > libcpp All C and C++ front end maintainers > libcpp David Malcolm <dmalc...@redhat.com> > fp-bit Ian Lance Taylor <i...@airs.com> > +libgac Jose E. Marchesi <jema...@gnu.org> > libgcc Ian Lance Taylor <i...@airs.com> > libgo Ian Lance Taylor <i...@airs.com> > libgomp Jakub Jelinek <ja...@redhat.com> > diff --git a/Makefile.def b/Makefile.def > index 19954e7d731..dcac62a8a98 100644 > --- a/Makefile.def > +++ b/Makefile.def > @@ -205,6 +205,7 @@ target_modules = { module= zlib; bootstrap=true; }; > target_modules = { module= rda; }; > target_modules = { module= libada; }; > target_modules = { module= libgm2; lib_path=.libs; }; > +target_modules = { module= libgac; bootstrap=true; lib_path=.libs; }; > target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; }; > target_modules = { module= libitm; lib_path=.libs; }; > target_modules = { module= libatomic; bootstrap=true; lib_path=.libs; }; > @@ -727,6 +728,8 @@ languages = { language=d; gcc-check-target=check-d; > lib-check-target=check-target-libphobos; }; > languages = { language=jit; gcc-check-target=check-jit; }; > languages = { language=rust; gcc-check-target=check-rust; }; > +languages = { language=algol68; gcc-check-target=check-algol68; > + lib-check-target=check-target-libgac; }; > > // Toplevel bootstrap > bootstrap_stage = { id=1 ; }; > diff --git a/Makefile.tpl b/Makefile.tpl > index da38dca697a..6ab2ef86349 100644 > --- a/Makefile.tpl > +++ b/Makefile.tpl > @@ -279,6 +279,11 @@ POSTSTAGE1_HOST_EXPORTS = \ > CC_FOR_BUILD="$$CC"; export CC_FOR_BUILD; \ > $(POSTSTAGE1_CXX_EXPORT) \ > $(LTO_EXPORTS) \ > + GAC="$$r/$(HOST_SUBDIR)/prev-gcc/gac$(exeext) > -B$$r/$(HOST_SUBDIR)/prev-gcc/ \ > + -B$(build_tooldir)/bin/ $(GACFLAGS_FOR_TARGET) \ > + -B$$r/prev-$(TARGET_SUBDIR)/libgac/.libs"; \ > + export GAC; \ > + GAC_FOR_BUILD="$$GAC"; export GAC_FOR_BUILD; \ > GDC="$$r/$(HOST_SUBDIR)/prev-gcc/gdc$(exeext) > -B$$r/$(HOST_SUBDIR)/prev-gcc/ \ > -B$(build_tooldir)/bin/ $(GDCFLAGS_FOR_TARGET) \ > -B$$r/prev-$(TARGET_SUBDIR)/libphobos/libdruntime/gcc \ > @@ -311,6 +316,7 @@ BASE_TARGET_EXPORTS = \ > CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \ > CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ > GFORTRAN="$(GFORTRAN_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; > export GFORTRAN; \ > + GAC="$(GAC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GAC; \ > GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \ > GDC="$(GDC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GDC; \ > GM2="$(GM2_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GM2; \ > @@ -379,6 +385,7 @@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ > DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@ > DSYMUTIL_FOR_BUILD = @DSYMUTIL_FOR_BUILD@ > GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@ > +GAC_FOR_BUILD = @GAC_FOR_BUILD@ > GOC_FOR_BUILD = @GOC_FOR_BUILD@ > GDC_FOR_BUILD = @GDC_FOR_BUILD@ > GM2_FOR_BUILD = @GM2_FOR_BUILD@ > @@ -441,6 +448,7 @@ STRIP = @STRIP@ > WINDRES = @WINDRES@ > WINDMC = @WINDMC@ > > +GAC = @GAC@ > GDC = @GDC@ > GNATBIND = @GNATBIND@ > GNATMAKE = @GNATMAKE@ > @@ -451,6 +459,7 @@ LIBCFLAGS = $(CFLAGS) > CXXFLAGS = @CXXFLAGS@ > LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates > GOCFLAGS = $(CFLAGS) > +GACFLAGS = @GACFLAGS@ > GDCFLAGS = @GDCFLAGS@ > GM2FLAGS = $(CFLAGS) > > @@ -598,6 +607,7 @@ CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_FOR_TARGET@ > RAW_CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @RAW_CXX_FOR_TARGET@ > GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@ > GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_FOR_TARGET@ > +GAC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GAC_FOR_TARGET@ > GDC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GDC_FOR_TARGET@ > GM2_FOR_TARGET=$(STAGE_CC_WRAPPER) @GM2_FOR_TARGET@ > DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ > @@ -627,6 +637,7 @@ LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) > -fno-implicit-templates > LDFLAGS_FOR_TARGET = @LDFLAGS_FOR_TARGET@ > GM2FLAGS_FOR_TARGET = -O2 -g > GOCFLAGS_FOR_TARGET = -O2 -g > +GACFLAGS_FOR_TARGET = -O2 -g > GDCFLAGS_FOR_TARGET = -O2 -g > > FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@ > @@ -731,6 +742,7 @@ EXTRA_HOST_FLAGS = \ > 'DSYMUTIL=$(DSYMUTIL)' \ > 'GFORTRAN=$(GFORTRAN)' \ > 'GOC=$(GOC)' \ > + 'GAC=$(GAC)' \ > 'GDC=$(GDC)' \ > 'GM2=$(GM2)' \ > 'LD=$(LD)' \ > @@ -759,6 +771,7 @@ STAGE1_FLAGS_TO_PASS = \ > POSTSTAGE1_FLAGS_TO_PASS = \ > CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \ > CXX="$${CXX}" CXX_FOR_BUILD="$${CXX_FOR_BUILD}" \ > + GAC="$${GAC}" GAC_FOR_BUILD="$${GAC_FOR_BUILD}" \ > GDC="$${GDC}" GDC_FOR_BUILD="$${GDC_FOR_BUILD}" \ > GM2="$${GM2}" GM2_FOR_BUILD="$${GM2_FOR_BUILD}" \ > GNATBIND="$${GNATBIND}" \ > @@ -794,6 +807,7 @@ EXTRA_TARGET_FLAGS = \ > 'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' > \ > 'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ > 'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \ > + 'GAC=$$(GAC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ > 'GDC=$$(GDC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ > 'GDCFLAGS=$$(GDCFLAGS_FOR_TARGET)' \ > 'GM2=$$(GM2_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ > diff --git a/SECURITY.txt b/SECURITY.txt > index b38425ea223..2e448f076f0 100644 > --- a/SECURITY.txt > +++ b/SECURITY.txt > @@ -85,6 +85,7 @@ Language runtime libraries > * libcpp > * libdecnumber > * libffi > + * ligac > * libgcc > * libgfortran > * libgm2 > diff --git a/config/acx.m4 b/config/acx.m4 > index c45e55e7f51..343f66919f2 100644 > --- a/config/acx.m4 > +++ b/config/acx.m4 > @@ -434,6 +434,12 @@ else > have_cargo=no > fi]) > > +# Test for Algol 68 > +AC_DEFUN([ACX_PROG_GAC], > +[AC_REQUIRE([AC_CHECK_TOOL_PREFIX]) > +AC_REQUIRE([AC_PROG_CC]) > +AC_CHECK_TOOL(GAC, gac, no)]) > + > # Test for D. > AC_DEFUN([ACX_PROG_GDC], > [AC_REQUIRE([AC_CHECK_TOOL_PREFIX]) > diff --git a/configure.ac b/configure.ac > index 9a72b2311bd..c4aac82f9ab 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -163,6 +163,7 @@ target_libraries="target-libgcc \ > target-libobjc \ > target-libada \ > target-libgm2 \ > + target-libgac \ > target-libgo \ > target-libgrust \ > target-libphobos \ > @@ -511,6 +512,11 @@ if test "${ENABLE_LIBGM2}" != "yes" ; then > noconfigdirs="$noconfigdirs gm2tools" > fi > > +AC_ARG_ENABLE(libgac, > +[AS_HELP_STRING([--enable-libgac], [build libgac directory])], > +ENABLE_LIBGAC=$enableval, > +ENABLE_LIBGAC=yes) > + > AC_ARG_ENABLE(libssp, > [AS_HELP_STRING([--enable-libssp], [build libssp directory])], > ENABLE_LIBSSP=$enableval, > @@ -1362,6 +1368,7 @@ if test "${build}" != "${host}" ; then > CXX_FOR_BUILD=${CXX_FOR_BUILD-g++} > DSYMUTIL_FOR_BUILD=${DSYMUTIL_FOR_BUILD-dsymutil} > GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran} > + GAC_FOR_BUILD=${GAC_FOR_BUILD-gac} > GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo} > GDC_FOR_BUILD=${GDC_FOR_BUILD-gdc} > DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool} > @@ -1377,6 +1384,7 @@ else > CXX_FOR_BUILD="\$(CXX)" > DSYMUTIL_FOR_BUILD="\$(DSYMUTIL)" > GFORTRAN_FOR_BUILD="\$(GFORTRAN)" > + GAC_FOR_BUILD="\$(GAC)" > GOC_FOR_BUILD="\$(GOC)" > GDC_FOR_BUILD="\$(GDC)" > DLLTOOL_FOR_BUILD="\$(DLLTOOL)" > @@ -1430,6 +1438,7 @@ int main() {}])], > fi > > ACX_PROG_GNAT > +ACX_PROG_GAC > ACX_PROG_GDC > ACX_PROG_CARGO > ACX_PROG_CMP_IGNORE_INITIAL > @@ -2336,6 +2345,24 @@ if test -d ${srcdir}/gcc; then > ;; > esac > > + # Disable Algol 68 if no preexisting GAC is available. > + # XXX > + case ${add_this_lang}:${language}:${have_gac} in > + yes:d:no)
'd' isn't right here, should be 'algo68', but do we need a preexisting GAC? (If so, where do I get one?) > + # Specifically requested language; tell them. > + AC_MSG_WARN([GAC is required to build $language]) > + ;; > + all:d:no) > + AC_MSG_WARN([GAC is required to build $language]) > + #XXX add_this_lang=unsupported > + ;; > + *:d:no) > [...]