From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by sourceware.org (Postfix) with ESMTPS id A352F3858D1E for ; Fri, 11 Nov 2022 13:47:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A352F3858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-x634.google.com with SMTP id q9so12829541ejd.0 for ; Fri, 11 Nov 2022 05:47:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=BdehKnH1gf7h5joPwTZ9MaJMggsPWHkJp7MEPTmTxrQ=; b=dsQmKo1fjD/SV4t2ByvkTgMFzxMqPgj3OtFyhDTAJ13KOTntHaNSQ6LD52U0Kmt+9h qckn1MpO6crSQrUWCUb7GrEbiHUNelWMuodd+O/rk0w0zP7Io38o02rsfgW4uwadAU7x 6Ip9uglbWmqdgWyRpBhqQa3OEdW9S6Rfos9wDB6IINZCA90Xrzb96WgL0XetMCyXmszb E55doWe/Q2QXnBcAz7Be9cf6k55rcrqgWm9s8je4M55alhQ9MDNnFyS/MQ0RsN17C5+n jV43Uigh9ErUcOsB1s7dmBdVkqtKYSog0Tj48EVlMEtQg+4t4sGVG7P6RkHXeghTdHxk 4X0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=BdehKnH1gf7h5joPwTZ9MaJMggsPWHkJp7MEPTmTxrQ=; b=mwgHN7WxLnHZXJOviaH3NpM9f3Rnn8vMKWcZdr3mvef/OOcx7o7eRdidCnpx1KrIZy XffqG/VdnmbzE4nRSN2Io31E089Ob+VTyyC3ln2w6oozdwDhB3Bmg5sx+9zdAM6gA5LP FgIAbElIzjqMkiyiJhjC/7o5SVWw/5i897Wp5aWsE+qOp4aEgEmr6n7P97XvQsOTMZ6s uzuRHuMLNG1zLQcHG4KBbjYX4bTEEu6+nqiEEf4zfyaPcCGvwhh5VRc4DF/hSyECfXvs 2bGUEimB410lStT1WNYMHY1VZr0HnUDwLiBcLV1qEn4J7Vd5bxWVTCKIseSQCGfm0G/5 vOiA== X-Gm-Message-State: ANoB5pnRhqTckzEif5Hm6Z33dKAy+COoieqb2tAjOjWuGVVFwNBpWai/ F5rzAxw8Q6G17hhnYI8el447SJWyiZLiLOufYT8= X-Google-Smtp-Source: AA0mqf78qCNISxe4AxqwQcYTqneuDrjbB9WPw4FfM59ynLcBpqqQYp4HGKr94woeUvqEKKD4cO6N2NDP3WnbJbVNsrM= X-Received: by 2002:a17:907:2350:b0:78d:9c2f:bf78 with SMTP id we16-20020a170907235000b0078d9c2fbf78mr1853262ejb.594.1668174460131; Fri, 11 Nov 2022 05:47:40 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Richard Biener Date: Fri, 11 Nov 2022 14:47:28 +0100 Message-ID: Subject: Re: [PATCH] 1/19 modula2 front end: changes outside gcc/m2, libgm2 and gcc/testsuite. To: Gaius Mulley Cc: gcc-patches@gcc.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Mon, Oct 10, 2022 at 5:36 PM Gaius Mulley via Gcc-patches wrote: > > > > This patch set contains the non machine generated changes found in / > for example the language die and documentation changes. It also > contains the changes to the top level build Makefile infastructure > and the install.texi sourcebuild.texi documentation. I couldn't spot any issue besides the docs now being written in Sphinx, so this part is OK (with the docs ported) Thanks, Richard. > > ------8<----------8<----------8<----------8<----------8<----------8<---- > diff -ruw gcc-git-master/configure.ac gcc-git-devel-modula2/configure.ac > --- gcc-git-master/configure.ac 2022-10-07 20:21:09.001978462 +0100 > +++ gcc-git-devel-modula2/configure.ac 2022-10-07 20:21:18.522095368 +0100 > @@ -140,7 +140,7 @@ > # binutils, gas and ld appear in that order because it makes sense to run > # "make check" in that particular order. > # If --enable-gold is used, "gold" may replace "ld". > -host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gdbserver gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools c++tools" > +host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gdbserver gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gm2tools gotools c++tools" > > # these libraries are built for the target environment, and are built after > # the host libraries and the host tools (which may be a cross compiler) > @@ -162,6 +162,7 @@ > target-libffi \ > target-libobjc \ > target-libada \ > + target-libgm2 \ > target-libgo \ > target-libphobos \ > target-zlib" > @@ -459,6 +460,14 @@ > noconfigdirs="$noconfigdirs gnattools" > fi > > +AC_ARG_ENABLE(libgm2, > +[AS_HELP_STRING([--enable-libgm2], [build libgm2 directory])], > +ENABLE_LIBGM2=$enableval, > +ENABLE_LIBGM2=no) > +if test "${ENABLE_LIBGM2}" != "yes" ; then > + noconfigdirs="$noconfigdirs gm2tools" > +fi > + > AC_ARG_ENABLE(libssp, > [AS_HELP_STRING([--enable-libssp], [build libssp directory])], > ENABLE_LIBSSP=$enableval, > @@ -3616,6 +3625,7 @@ > NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran) > NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo) > NCN_STRICT_CHECK_TARGET_TOOLS(GDC_FOR_TARGET, gdc) > +NCN_STRICT_CHECK_TARGET_TOOLS(GM2_FOR_TARGET, gm2) > > ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar) > ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as) > @@ -3654,6 +3664,8 @@ > [gcc/gccgo -B$$r/$(HOST_SUBDIR)/gcc/], go) > GCC_TARGET_TOOL(gdc, GDC_FOR_TARGET, GDC, > [gcc/gdc -B$$r/$(HOST_SUBDIR)/gcc/], d) > +GCC_TARGET_TOOL(gm2, GM2_FOR_TARGET, GM2, > + [gcc/gm2 -B$$r/$(HOST_SUBDIR)/gcc/], m2) > GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new]) > GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO) > GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new]) > @@ -3780,6 +3792,9 @@ > # Specify what files to not compare during bootstrap. > > compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*" > +compare_exclusions="$compare_exclusions | gcc/m2/gm2-compiler-boot/M2Version*" > +compare_exclusions="$compare_exclusions | gcc/m2/gm2-compiler-boot/SYSTEM*" > +compare_exclusions="$compare_exclusions | gcc/m2/gm2version*" > case "$target" in > hppa*64*-*-hpux*) ;; > powerpc*-ibm-aix*) compare_exclusions="$compare_exclusions | *libgomp*\$(objext)" ;; > diff -ruw gcc-git-master/gcc/doc/sourcebuild.texi gcc-git-devel-modula2/gcc/doc/sourcebuild.texi > --- gcc-git-master/gcc/doc/sourcebuild.texi 2022-10-07 20:21:09.761987791 +0100 > +++ gcc-git-devel-modula2/gcc/doc/sourcebuild.texi 2022-10-07 20:21:18.606096399 +0100 > @@ -97,6 +97,9 @@ > @item libgfortran > The Fortran runtime library. > > +@item libgm2 > +The Modula-2 runtime library. > + > @item libgo > The Go runtime library. The bulk of this library is mirrored from the > @uref{https://github.com/@/golang/go, master Go repository}. > @@ -187,13 +190,12 @@ > @item @var{language} > Subdirectories for various languages. Directories containing a file > @file{config-lang.in} are language subdirectories. The contents of > -the subdirectories @file{c} (for C), @file{cp} (for C++), > -@file{objc} (for Objective-C), @file{objcp} (for Objective-C++), > -and @file{lto} (for LTO) are documented in this > -manual (@pxref{Passes, , Passes and Files of the Compiler}); > -those for other languages are not. @xref{Front End, , > -Anatomy of a Language Front End}, for details of the files in these > -directories. > +the subdirectories @file{c} (for C), @file{cp} (for C++), @file{m2} > +(for Modula-2), @file{objc} (for Objective-C), @file{objcp} (for > +Objective-C++), and @file{lto} (for LTO) are documented in this manual > +(@pxref{Passes, , Passes and Files of the Compiler}); those for other > +languages are not. @xref{Front End, , Anatomy of a Language Front > +End}, for details of the files in these directories. > > @item common > Source files shared between the compiler drivers (such as > diff -ruw gcc-git-master/gcc/doc/install.texi gcc-git-devel-modula2/gcc/doc/install.texi > --- gcc-git-master/gcc/doc/install.texi 2022-10-07 20:21:09.749987645 +0100 > +++ gcc-git-devel-modula2/gcc/doc/install.texi 2022-10-07 20:21:18.602096351 +0100 > @@ -1832,18 +1832,19 @@ > @smallexample > grep ^language= */config-lang.in > @end smallexample > -Currently, you can use any of the following: > -@code{all}, @code{default}, @code{ada}, @code{c}, @code{c++}, @code{d}, > -@code{fortran}, @code{go}, @code{jit}, @code{lto}, @code{objc}, @code{obj-c++}. > -Building the Ada compiler has special requirements, see below. > -If you do not pass this flag, or specify the option @code{default}, then the > -default languages available in the @file{gcc} sub-tree will be configured. > -Ada, D, Go, Jit, and Objective-C++ are not default languages. LTO is not a > -default language, but is built by default because @option{--enable-lto} is > -enabled by default. The other languages are default languages. If > -@code{all} is specified, then all available languages are built. An > -exception is @code{jit} language, which requires > -@option{--enable-host-shared} to be included with @code{all}. > +Currently, you can use any of the following: @code{all}, > +@code{default}, @code{ada}, @code{c}, @code{c++}, @code{d}, > +@code{fortran}, @code{go}, @code{jit}, @code{lto}, @code{m2}, > +@code{objc}, @code{obj-c++}. Building the Ada compiler has special > +requirements, see below. If you do not pass this flag, or specify the > +option @code{default}, then the default languages available in the > +@file{gcc} sub-tree will be configured. Ada, D, Go, Jit, > +Objective-C++ and Modula-2 are not default languages. LTO is not a > +default language, but is built by default because > +@option{--enable-lto} is enabled by default. The other languages are > +default languages. If @code{all} is specified, then all available > +languages are built. An exception is @code{jit} language, which > +requires @option{--enable-host-shared} to be included with @code{all}. > > @item --enable-stage1-languages=@var{lang1},@var{lang2},@dots{} > Specify that a particular subset of compilers and their runtime > @@ -1866,6 +1867,10 @@ > previous Ada build procedures, when it was required to explicitly > do a @samp{make -C gcc gnatlib_and_tools}. > > +@item --disable-libgm2 > +Specify that the run-time libraries and tools used by Modula-2 should not > +be built. This can be useful for debugging. > + > @item --disable-libsanitizer > Specify that the run-time libraries for the various sanitizers should > not be built. > @@ -3126,10 +3131,10 @@ > In order to run sets of tests selectively, there are targets > @samp{make check-gcc} and language specific @samp{make check-c}, > @samp{make check-c++}, @samp{make check-d} @samp{make check-fortran}, > -@samp{make check-ada}, @samp{make check-objc}, @samp{make check-obj-c++}, > -@samp{make check-lto} > -in the @file{gcc} subdirectory of the object directory. You can also > -just run @samp{make check} in a subdirectory of the object directory. > +@samp{make check-ada}, @samp{make check-m2}, @samp{make check-objc}, > +@samp{make check-obj-c++}, @samp{make check-lto} in the @file{gcc} > +subdirectory of the object directory. You can also just run > +@samp{make check} in a subdirectory of the object directory. > > > A more selective way to just run all @command{gcc} execute tests in the > diff -ruw gcc-git-master/gcc/dwarf2out.cc gcc-git-devel-modula2/gcc/dwarf2out.cc > --- gcc-git-master/gcc/dwarf2out.cc 2022-10-07 20:21:09.769987890 +0100 > +++ gcc-git-devel-modula2/gcc/dwarf2out.cc 2022-10-07 20:21:18.614096498 +0100 > @@ -25206,6 +25206,8 @@ > } > else if (strcmp (language_string, "GNU F77") == 0) > language = DW_LANG_Fortran77; > + else if (strcmp (language_string, "GNU Modula-2") == 0) > + language = DW_LANG_Modula2; > else if (dwarf_version >= 3 || !dwarf_strict) > { > if (strcmp (language_string, "GNU Ada") == 0) > diff -ruw gcc-git-master/Makefile.def gcc-git-devel-modula2/Makefile.def > --- gcc-git-master/Makefile.def 2022-10-07 20:21:08.985978266 +0100 > +++ gcc-git-devel-modula2/Makefile.def 2022-10-07 20:21:18.510095220 +0100 > @@ -186,6 +186,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= libgomp; bootstrap= true; lib_path=.libs; }; > target_modules = { module= libitm; lib_path=.libs; }; > target_modules = { module= libatomic; bootstrap=true; lib_path=.libs; }; > @@ -308,6 +309,8 @@ > flags_to_pass = { flag= GOCFLAGS_FOR_TARGET ; }; > flags_to_pass = { flag= GDC_FOR_TARGET ; }; > flags_to_pass = { flag= GDCFLAGS_FOR_TARGET ; }; > +flags_to_pass = { flag= GM2_FOR_TARGET ; }; > +flags_to_pass = { flag= GM2FLAGS_FOR_TARGET ; }; > flags_to_pass = { flag= LD_FOR_TARGET ; }; > flags_to_pass = { flag= LIPO_FOR_TARGET ; }; > flags_to_pass = { flag= LDFLAGS_FOR_TARGET ; }; > @@ -619,6 +622,8 @@ > dependencies = { module=all-target-libgo; on=all-target-libbacktrace; }; > dependencies = { module=all-target-libgo; on=all-target-libffi; }; > dependencies = { module=all-target-libgo; on=all-target-libatomic; }; > +dependencies = { module=configure-target-libgm2; on=all-target-libstdc++-v3; }; > +dependencies = { module=all-target-libgm2; on=all-target-libatomic; }; > dependencies = { module=configure-target-libphobos; on=configure-target-libbacktrace; }; > dependencies = { module=configure-target-libphobos; on=configure-target-zlib; }; > dependencies = { module=all-target-libphobos; on=all-target-libbacktrace; }; > @@ -678,6 +683,8 @@ > languages = { language=go; gcc-check-target=check-go; > lib-check-target=check-target-libgo; > lib-check-target=check-gotools; }; > +languages = { language=m2; gcc-check-target=check-m2; > + lib-check-target=check-target-libgm2; }; > languages = { language=d; gcc-check-target=check-d; > lib-check-target=check-target-libphobos; }; > languages = { language=jit; gcc-check-target=check-jit; }; > diff -ruw gcc-git-master/Makefile.tpl gcc-git-devel-modula2/Makefile.tpl > --- gcc-git-master/Makefile.tpl 2022-10-07 20:21:08.989978315 +0100 > +++ gcc-git-devel-modula2/Makefile.tpl 2022-10-07 20:21:18.518095319 +0100 > @@ -166,6 +166,8 @@ > GOCFLAGS="$(GOCFLAGS_FOR_BUILD)"; export GOCFLAGS; \ > GDC="$(GDC_FOR_BUILD)"; export GDC; \ > GDCFLAGS="$(GDCFLAGS_FOR_BUILD)"; export GDCFLAGS; \ > + GM2="$(GM2_FOR_BUILD)"; export GM2; \ > + GM2FLAGS="$(GM2FLAGS_FOR_BUILD)"; export GM2FLAGS; \ > DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \ > DSYMUTIL="$(DSYMUTIL_FOR_BUILD)"; export DSYMUTIL; \ > LD="$(LD_FOR_BUILD)"; export LD; \ > @@ -204,6 +206,7 @@ > GFORTRAN="$(GFORTRAN)"; export GFORTRAN; \ > GOC="$(GOC)"; export GOC; \ > GDC="$(GDC)"; export GDC; \ > + GM2="$(GM2)"; export GM2; \ > AR="$(AR)"; export AR; \ > AS="$(AS)"; export AS; \ > CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ > @@ -307,6 +310,7 @@ > GFORTRAN="$(GFORTRAN_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GFORTRAN; \ > 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; \ > DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ > DSYMUTIL="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL; \ > LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \ > @@ -373,6 +377,7 @@ > GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@ > GOC_FOR_BUILD = @GOC_FOR_BUILD@ > GDC_FOR_BUILD = @GDC_FOR_BUILD@ > +GM2_FOR_BUILD = @GM2_FOR_BUILD@ > LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ > LD_FOR_BUILD = @LD_FOR_BUILD@ > NM_FOR_BUILD = @NM_FOR_BUILD@ > @@ -443,6 +448,7 @@ > LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates > GOCFLAGS = $(CFLAGS) > GDCFLAGS = $(CFLAGS) > +GM2FLAGS = $(CFLAGS) > > # Pass additional PGO and LTO compiler options to the PGO build. > BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS) > @@ -578,6 +584,7 @@ > GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@ > GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_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@ > DSYMUTIL_FOR_TARGET=@DSYMUTIL_FOR_TARGET@ > LD_FOR_TARGET=@LD_FOR_TARGET@ > @@ -603,6 +610,7 @@ > LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) > 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 > GDCFLAGS_FOR_TARGET = -O2 -g > > @@ -709,6 +717,7 @@ > 'GFORTRAN=$(GFORTRAN)' \ > 'GOC=$(GOC)' \ > 'GDC=$(GDC)' \ > + 'GM2=$(GM2)' \ > 'LD=$(LD)' \ > 'LIPO=$(LIPO)' \ > 'NM=$(NM)' \ > @@ -735,6 +744,7 @@ > CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \ > CXX="$${CXX}" CXX_FOR_BUILD="$${CXX_FOR_BUILD}" \ > GDC="$${GDC}" GDC_FOR_BUILD="$${GDC_FOR_BUILD}" \ > + GM2="$${GM2}" GM2_FOR_BUILD="$${GM2_FOR_BUILD}" \ > GNATBIND="$${GNATBIND}" \ > LDFLAGS="$${LDFLAGS}" \ > HOST_LIBS="$${HOST_LIBS}" \ > @@ -770,6 +780,8 @@ > 'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \ > 'GDC=$$(GDC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ > 'GDCFLAGS=$$(GDCFLAGS_FOR_TARGET)' \ > + 'GM2=$$(GM2_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ > + 'GM2FLAGS=$$(GM2FLAGS_FOR_TARGET)' \ > 'LD=$(COMPILER_LD_FOR_TARGET)' \ > 'LDFLAGS=$$(LDFLAGS_FOR_TARGET)' \ > 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \ > @@ -796,6 +808,7 @@ > # cross-building scheme. > EXTRA_GCC_FLAGS = \ > "GCC_FOR_TARGET=$(GCC_FOR_TARGET) $$TFLAGS" \ > + "GM2_FOR_TARGET=$(GM2_FOR_TARGET) $$TFLAGS" \ > "`echo 'STMP_FIXPROTO=$(STMP_FIXPROTO)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ > "`echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" >