From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com [IPv6:2a00:1450:4864:20::432]) by sourceware.org (Postfix) with ESMTPS id 7AF4C3858D38 for ; Fri, 11 Nov 2022 22:55:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7AF4C3858D38 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-wr1-x432.google.com with SMTP id bs21so8162820wrb.4 for ; Fri, 11 Nov 2022 14:55:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:user-agent:message-id:in-reply-to:date:references :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=bknXNv0j5+LR30dyEoxba8MVbi2f3jkKBzwVojhWydA=; b=oGlQMchDHsEDHw606eLoLgFPqC4xkzeaCx+ZfMeoatCk3eUAjZNFRQ3LQqPe0Ssblk 4AC+110A3unEgG8V8GjLROm0CoksgSmHdUPwP5C96WTIOfuzH30J6f8Qj6WdVhVznc72 sjLie5Nyh2Ge/vapCaYrvOHB4RX0lCw/D/uzckyyvqf4QThodkdZiPhKnxyQvTVVd7zw MCDdHkC80oGbcsj5rrklMXIfmeyNL3SJ2ZartGhX7sc6e6tK7D+oX7jC7dLRxkftxSeS PZg8NUtUJ6LChCpn8yJgoRfPVP0RXWCQhfcziJGnr1AHwSFUpRHA5Y6oLH9gX9CwBk11 yxuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:message-id:in-reply-to:date:references :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=bknXNv0j5+LR30dyEoxba8MVbi2f3jkKBzwVojhWydA=; b=jn/8WjBJDq8mkiOuNZf14k01evT1DXzRnjL1+V3doCzr7bquBYRaUhvN4cf8JkCUTi CAxAE+sPrcYJwz4yYFdpz/EJC0g61wAQGvRf9kKHw5yo402LxY8AUVBRjdt8bnLB1NQQ IsPFQbl07fnjW+1ksIo9OrUnN8nS4NIuylDHODcKVY/0nNJZOlXDdHWpzLBS8Lfhe7CW E6yL+cb243vWNjQRzH60TtvqN6psAGMjqsVv9ZoEg75F0Blh3yXWaz2XGTQN5OLsedqS kQcDAc2HJc0FrLxCrikVq1UmSV+xu0tWHUBz0oMGMnmW7vH+nPo6YdEdI+vKBDfDcNT3 1SkA== X-Gm-Message-State: ANoB5pmPFJGQd4a8+mJxWxdhlOQsz2OyqB3mAFZzowzgwmnAqcSETYcd tnKWRx8ZykGKU68tMgYQKp1oQGRAiwk= X-Google-Smtp-Source: AA0mqf6qSFSdRxH0rocHqG1rM3YnPWQUBgiRdgmV5dTfgxNxkzgOzO5Pd3oNlPFdjqbuFKI13xSlpg== X-Received: by 2002:a05:6000:1b86:b0:22c:c8cb:486f with SMTP id r6-20020a0560001b8600b0022cc8cb486fmr2275436wru.402.1668207356946; Fri, 11 Nov 2022 14:55:56 -0800 (PST) Received: from lancelot ([195.147.220.46]) by smtp.gmail.com with ESMTPSA id l16-20020a1c7910000000b003cfd4e6400csm592194wme.19.2022.11.11.14.55.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Nov 2022 14:55:56 -0800 (PST) Received: from gaius by lancelot with local (Exim 4.94.2) (envelope-from ) id 1otcwF-009NBa-IR; Fri, 11 Nov 2022 22:55:55 +0000 From: Gaius Mulley To: Richard Biener Cc: gcc-patches@gcc.gnu.org Subject: Re: [PATCH] 2/19 modula2 front end: Make-lang.in References: Date: Fri, 11 Nov 2022 22:55:55 +0000 In-Reply-To: (Richard Biener's message of "Fri, 11 Nov 2022 14:56:38 +0100") Message-ID: <87mt8x3xtw.fsf@debian> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT,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: Richard Biener writes: >> +M2_MAINTAINER = no >> + >> +CPP_GM2=-fpermissive -DIN_GCC -g > > Do we really need -fpermissive here? no not needed (and now removed) - thanks for spotting it. >> +GM2_1 = ./gm2 -B./stage1/m2 -g -fm2-g >> + >> +GM2_FOR_TARGET = $(STAGE_CC_WRAPPER) ./gm2 -B./ -B$(build_tooldir)/bin/ -L$(objdir)/../ld $(TFLAGS) >> + >> +TEXISRC = $(objdir)/m2/images/gnu.eps \ >> + $(srcdir)/doc/gm2.texi \ >> + m2/gm2-libs.texi \ >> + m2/gm2-ebnf.texi \ >> + m2/SYSTEM-pim.texi \ >> + m2/SYSTEM-iso.texi \ >> + m2/Builtins.texi >> + > > That will need Sphinx treatment true >> +# Define the names for selecting modula-2 in LANGUAGES. snip >> +m2.info: doc/m2.info >> + >> +m2.man: doc/m2.1 >> + >> +m2.install-man: $(DESTDIR)$(man1dir)/$(GM2_INSTALL_NAME)$(man1ext) >> + >> +$(DESTDIR)$(man1dir)/$(GM2_INSTALL_NAME)$(man1ext): doc/m2.1 installdirs >> + -rm -f $@ >> + -$(INSTALL_DATA) $< $@ >> + -chmod a-x $@ >> + >> +m2.dvi: $(TEXISRC) >> + $(TEXI2DVI) -I $(objdir)/m2 -I $(srcdir)/doc/include $(srcdir)/doc/gm2.texi -o $@ >> + >> +m2.ps: m2.dvi >> + dvips -o $@ $< >> + >> +m2.pdf: m2.ps >> + gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=$@ $< >> + >> +.INTERMEDIATE: gm2.pod >> + >> +m2.pod: doc/gm2.texi $(TEXISRC) >> + -$(TEXI2POD) -I $(objdir)/m2 -D m2 < $< > $@ > > Likewise for the doc parts above and below yes, sure I'll convert them >> +doc/m2.info: $(TEXISRC) >> + if test "x$(BUILD_INFO)" = xinfo; then \ >> + rm -f doc/m2.info*; \ >> + $(MAKEINFO) --no-headers -I$(objdir)/m2 -I$(srcdir)/doc/include \ >> + -o $@ $(srcdir)/doc/gm2.texi ; \ >> + else true; fi >> + >> +$(objdir)/m2/images/gnu.eps: $(srcdir)/m2/images/gnupng >> + test -d m2/images || mkdir -p m2/images >> + if [ -f $(srcdir)/m2/images/gnu.eps ] ; then \ >> + cp $(srcdir)/m2/images/gnu.eps $@ ; \ >> + else \ >> + pngtopnm $< | pnmtops -noturn > $@ ; \ >> + fi >> + >> +m2/gm2-libs.texi: gm2-libs.texi-check; @true >> + >> +gm2-libs.texi-check: m2/SYSTEM-pim.texi m2/SYSTEM-iso.texi m2/Builtins.texi \ >> + $(objdir)/m2/gm2-libs-coroutines/SYSTEM.def m2/gm2-ebnf.texi >> + python3 $(srcdir)/m2/tools-src/def2texi.py -uLibraries -s$(srcdir)/m2 -b$(objdir)/m2 > $(objdir)/m2/gm2-libs.texi >> + $(STAMP) gm2-libs.texi-check >> + >> +m2/gm2-ebnf.texi: gm2-ebnf.texi-check; @true >> + >> +gm2-ebnf.texi-check: $(PGE) $(srcdir)/m2/gm2-compiler/P0SyntaxCheck.bnf >> + $(PGE) -c -p -t -f $(srcdir)/m2/gm2-compiler/P0SyntaxCheck.bnf > m2/gm2-ebnf.texi >> + $(STAMP) gm2-ebnf.texi-check >> + >> +m2/SYSTEM-pim.texi: SYSTEM-pim-texi-check; @true >> + >> +SYSTEM-pim-texi-check: $(objdir)/m2/gm2-libs/SYSTEM.def >> + python3 $(srcdir)/m2/tools-src/def2texi.py -b$(objdir)/m2 -f$(objdir)/m2/gm2-libs/SYSTEM.def > $(objdir)/m2/SYSTEM-pim.texi >> + $(STAMP) SYSTEM-pim-texi-check >> + >> +m2/SYSTEM-iso.texi: SYSTEM-iso.texi-check; @true >> + >> +SYSTEM-iso.texi-check: $(objdir)/m2/gm2-libs-iso/SYSTEM.def >> + python3 $(srcdir)/m2/tools-src/def2texi.py -b$(objdir)/m2 -f$(objdir)/m2/gm2-libs-iso/SYSTEM.def > $(objdir)/m2/SYSTEM-iso.texi >> + $(STAMP) SYSTEM-iso.texi-check >> + >> +m2/Builtins.texi: Builtins.texi-check; @true >> + >> +Builtins.texi-check: m2/gm2-libs/Builtins.def >> + python3 $(srcdir)/m2/tools-src/def2texi.py -b./ -f$(srcdir)/m2/gm2-libs/Builtins.def > $(objdir)/m2/Builtins.texi >> + $(STAMP) Builtins.texi-check snip >> +gm2.paranoid: stage3/m2/cc1gm2$(exeext) gm2.verifyparanoid >> + >> +cc1gm2$(exeext): stage1/m2/cc1gm2$(exeext) $(m2.prev) >> + cp -p $< $@ >> + >> +stage3/m2/cc1gm2$(exeext): stage2/m2/cc1gm2$(exeext) m2/gm2-compiler-paranoid/m2flex.o \ >> + $(P) $(GM2_C_OBJS) $(BACKEND) $(LIBDEPS) $(GM2_LIBS_PARANOID) \ >> + m2/gm2-gcc/rtegraph.o plugin/m2rte$(exeext).so >> + @$(call LINK_PROGRESS,$(INDEX.m2),start) >> + +$(LLINKER) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GM2_C_OBJS) m2/gm2-compiler-paranoid/m2flex.o \ >> + attribs.o \ >> + $(GM2_LIBS_PARANOID) \ >> + $(BACKEND) $(LIBS) m2/gm2-gcc/rtegraph.o \ >> + $(BACKENDLIBS) $(LIBSTDCXX) -lm >> + @$(call LINK_PROGRESS,$(INDEX.m2),end) >> + >> +stage2/m2/cc1gm2$(exeext): stage1/m2/cc1gm2$(exeext) m2/gm2-compiler/m2flex.o $(P) \ >> + $(GM2_C_OBJS) $(BACKEND) $(LIBDEPS) $(GM2_LIBS) \ >> + m2/gm2-gcc/rtegraph.o plugin/m2rte$(exeext).so >> + @$(call LINK_PROGRESS,$(INDEX.m2),start) >> + +$(LLINKER) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GM2_C_OBJS) m2/gm2-compiler/m2flex.o \ >> + attribs.o \ >> + $(GM2_LIBS) \ >> + $(BACKEND) $(LIBS) m2/gm2-gcc/rtegraph.o \ >> + $(BACKENDLIBS) $(LIBSTDCXX) -lm >> + @$(call LINK_PROGRESS,$(INDEX.m2),end) >> + >> +stage1/m2/cc1gm2$(exeext): gm2$(exeext) m2/gm2-compiler-boot/m2flex.o \ >> + $(P) $(GM2_C_OBJS) $(BACKEND) $(LIBDEPS) \ >> + $(GM2_LIBS_BOOT) $(MC_LIBS) \ >> + m2/gm2-gcc/rtegraph.o plugin/m2rte$(exeext).so \ >> + m2/gm2-libs-boot/M2LINK.o \ >> + $(m2.prev) >> + @$(call LINK_PROGRESS,$(INDEX.m2),start) >> + +$(LLINKER) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GM2_C_OBJS) m2/gm2-compiler-boot/m2flex.o \ >> + attribs.o \ >> + $(GM2_LIBS_BOOT) $(MC_LIBS) \ >> + m2/gm2-gcc/rtegraph.o m2/gm2-libs-boot/M2LINK.o \ >> + $(BACKEND) $(LIBS) $(BACKENDLIBS) >> + @$(call LINK_PROGRESS,$(INDEX.m2),end) > > It looks like you are employing your own bootstrapping scheme here? > In theory one could > use --enable-stage1-languages=m2 and the stage1 built compiler could > be used to shorten the above for stage2 and stage3? ah yes this would work and likely reduce the number of rules. > Likewise it might be feasible to provide a --with-system-gm2? sure I will look into this > Anyway, I can't spot any obvious issues in this file (but it's large). I think it might also be shortened by changing the bootstrap tool mc to only use generic rules (and avoid using the --extended-opaque specific rules) > I think exposing this to a wider audience > earlier is most important at this point. > > Thus OK. great news thanks! regards, Gaius