Richard Biener <richard.guent...@gmail.com> writes: > On Thu, Sep 7, 2023 at 11:30 AM Richard Sandiford via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: >> >> When I tried to use config-list.mk, the build for every triple except >> the build machine's failed for m2. This is because, unlike other >> languages, m2 builds target objects during all-gcc. The build will >> therefore fail unless you have access to an appropriate binutils >> (or an equivalent). That's quite a big ask for over 100 targets. :) >> >> This patch therefore makes m2 an optional inclusion. >> >> Doing that wasn't entirely straightforward though. The current >> configure line includes "--enable-languages=all,...", which means >> that the "..." can only force languages to be added that otherwise >> wouldn't have been. (I.e. the only effect of the "..." is to >> override configure autodetection.) >> >> The choice of all,ada and: >> >> # Make sure you have a recent enough gcc (with ada support) in your path so >> # that --enable-werror-always will work. >> >> make it clear that lack of GNAT should be a build failure rather than >> silently ignored. This predates the D frontend, which requires GDC >> in the same way that Ada requires GNAT. I don't know of a reason >> why D should be treated differently. >> >> The patch therefore expands the "all" into a specific list of >> languages. >> >> That in turn meant that Fortran had to be handled specially, >> since bpf and mmix don't support Fortran. >> >> Perhaps there's an argument that m2 shouldn't build target objects >> during all-gcc, > > Yes, I think that's unfortunate - can you open a bugreport for this?
For the record, I filed https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112825 >> but (a) it works for practical usage and (b) the >> patch is an easy workaround. I'd be happy for the patch to be >> reverted if the build system changes. >> >> OK to install? > > OK. Thanks. Now belatedly pushed after using it to retest the attribute namespace patch (thanks for reviewing that too). Richard >> Richard >> >> >> gcc/ >> * contrib/config-list.mk (OPT_IN_LANGUAGES): New variable. >> ($(LIST)): Replace --enable-languages=all with a specifc list. >> Disable fortran on bpf and mmix. Enable the languages in >> OPT_IN_LANGUAGES. >> --- >> contrib/config-list.mk | 17 ++++++++++++++--- >> 1 file changed, 14 insertions(+), 3 deletions(-) >> >> diff --git a/contrib/config-list.mk b/contrib/config-list.mk >> index e570b13c71b..50ecb014bc0 100644 >> --- a/contrib/config-list.mk >> +++ b/contrib/config-list.mk >> @@ -12,6 +12,11 @@ TEST=all-gcc >> # supply an absolute path. >> GCC_SRC_DIR=../../gcc >> >> +# Define this to ,m2 if you want to build Modula-2. Modula-2 builds target >> +# objects during all-gcc, so it can only be included if you've installed >> +# binutils (or an equivalent) for each target. >> +OPT_IN_LANGUAGES= >> + >> # Use -j / -l make arguments and nice to assure a smooth resource-efficient >> # load on the build machine, e.g. for 24 cores: >> # svn co svn://gcc.gnu.org/svn/gcc/branches/foo-branch gcc >> @@ -126,17 +131,23 @@ $(LIST): make-log-dir >> TGT=`echo $@ | awk 'BEGIN { FS = "OPT" }; { print $$1 }'` && >> \ >> TGT=`$(GCC_SRC_DIR)/config.sub $$TGT` && >> \ >> case $$TGT in >> \ >> - *-*-darwin* | *-*-cygwin* | *-*-mingw* | *-*-aix* | >> bpf-*-*) \ >> + bpf-*-*) >> \ >> ADDITIONAL_LANGUAGES=""; >> \ >> ;; >> \ >> - *) >> \ >> + *-*-darwin* | *-*-cygwin* | *-*-mingw* | *-*-aix* | >> bpf-*-*) \ >> + ADDITIONAL_LANGUAGES=",fortran"; >> \ >> + ;; >> \ >> + mmix-*-*) >> \ >> ADDITIONAL_LANGUAGES=",go"; >> \ >> ;; >> \ >> + *) >> \ >> + ADDITIONAL_LANGUAGES=",fortran,go"; >> \ >> + ;; >> \ >> esac && >> \ >> $(GCC_SRC_DIR)/configure >> \ >> --target=$(subst SCRIPTS,`pwd`/../scripts/,$(subst >> OPT,$(empty) -,$@)) \ >> --enable-werror-always ${host_options} >> \ >> - --enable-languages=all,ada$$ADDITIONAL_LANGUAGES; >> \ >> + >> --enable-languages=c,ada,c++,d,lto,objc,obj-c++,rust$$ADDITIONAL_LANGUAGES$(OPT_IN_LANGUAGES); >> \ >> ) > log/$@-config.out 2>&1 >> >> $(LOGFILES) : log/%-make.out : % >> -- >> 2.25.1 >>