From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from rock.gnat.com (rock.gnat.com [IPv6:2620:20:4000:0:a9e:1ff:fe9b:1d1]) by sourceware.org (Postfix) with ESMTPS id E3DED382FE67 for ; Tue, 28 Jun 2022 12:23:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E3DED382FE67 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id CAD341164FD; Tue, 28 Jun 2022 08:23:09 -0400 (EDT) X-Virus-Scanned: Debian amavisd-new at gnat.com Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id BMJeAqC1FMBP; Tue, 28 Jun 2022 08:23:09 -0400 (EDT) Received: from free.home (tron.gnat.com [IPv6:2620:20:4000:0:46a8:42ff:fe0e:e294]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by rock.gnat.com (Postfix) with ESMTPS id 94C3F1164EE; Tue, 28 Jun 2022 08:23:09 -0400 (EDT) Received: from livre (livre.home [172.31.160.2]) by free.home (8.15.2/8.15.2) with ESMTPS id 25SCMvTC926061 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 28 Jun 2022 09:22:58 -0300 From: Alexandre Oliva To: gcc-patches@gcc.gnu.org Subject: [FYI, PATCH] Add TFLAGS to gcc's GCC_FOR_TARGET Organization: Free thinker, does not speak for AdaCore Errors-To: aoliva@lxoliva.fsfla.org Date: Tue, 28 Jun 2022 09:22:57 -0300 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Scanned-By: MIMEDefang 2.84 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jun 2022 12:23:12 -0000 When the GCC build runs GCC_FOR_TARGET, e.g. for selftests or for dumping specs, it doesn't use TFLAGS in non-bootstrap scenarios. This patch arranges for TFLAGS to be passed from the top level down to gcc in GCC_FOR_TARGET in this case. Another issue related with TFLAGS fixed herein is that there's no easy way to add a TFLAGS to GCC_FOR_TARGET when running "make gnatlib" within the gcc directory. Overriding all of GCC_FOR_TARGET is somewhat cumbersome, so I'm adding TFLAGS support to gcc/Makefile.in, getting it added to GCC_FOR_TARGET, as it would when passed down from the top level. Regstrapped on x86_64-linux-gnu. I'm checking this in. for ChangeLog * Makefile.tpl (HOST_EXPORTS): Add TFLAGS to GCC_FOR_TARGET. (EXTRA_GCC_FLAGS): Likewise. * Makefile.in: Rebuilt. for gcc/ChangeLog * Makefile.in (TFLAGS): New. (GCC_FOR_TARGET): Add TFLAGS. (FLAGS_TO_PASS): Pass TFLAGS down. --- Makefile.in | 4 ++-- Makefile.tpl | 4 ++-- gcc/Makefile.in | 6 +++++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Makefile.in b/Makefile.in index 593495e16503a..13ee95a2602ab 100644 --- a/Makefile.in +++ b/Makefile.in @@ -222,7 +222,7 @@ HOST_EXPORTS = \ AR_FOR_TARGET="$(AR_FOR_TARGET)"; export AR_FOR_TARGET; \ AS_FOR_TARGET="$(AS_FOR_TARGET)"; export AS_FOR_TARGET; \ DSYMUTIL_FOR_TARGET="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL_FOR_TARGET; \ - GCC_FOR_TARGET="$(GCC_FOR_TARGET)"; export GCC_FOR_TARGET; \ + GCC_FOR_TARGET="$(GCC_FOR_TARGET) $$TFLAGS"; export GCC_FOR_TARGET; \ LD_FOR_TARGET="$(LD_FOR_TARGET)"; export LD_FOR_TARGET; \ NM_FOR_TARGET="$(NM_FOR_TARGET)"; export NM_FOR_TARGET; \ OBJDUMP_FOR_TARGET="$(OBJDUMP_FOR_TARGET)"; export OBJDUMP_FOR_TARGET; \ @@ -1047,7 +1047,7 @@ TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) # The BUILD_* variables are a special case, which are used for the gcc # cross-building scheme. EXTRA_GCC_FLAGS = \ - "GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \ + "GCC_FOR_TARGET=$(GCC_FOR_TARGET) $$TFLAGS" \ "`echo 'STMP_FIXPROTO=$(STMP_FIXPROTO)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ "`echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" diff --git a/Makefile.tpl b/Makefile.tpl index ef58fac2b9a8b..ba0727153a9b8 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -225,7 +225,7 @@ HOST_EXPORTS = \ AR_FOR_TARGET="$(AR_FOR_TARGET)"; export AR_FOR_TARGET; \ AS_FOR_TARGET="$(AS_FOR_TARGET)"; export AS_FOR_TARGET; \ DSYMUTIL_FOR_TARGET="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL_FOR_TARGET; \ - GCC_FOR_TARGET="$(GCC_FOR_TARGET)"; export GCC_FOR_TARGET; \ + GCC_FOR_TARGET="$(GCC_FOR_TARGET) $$TFLAGS"; export GCC_FOR_TARGET; \ LD_FOR_TARGET="$(LD_FOR_TARGET)"; export LD_FOR_TARGET; \ NM_FOR_TARGET="$(NM_FOR_TARGET)"; export NM_FOR_TARGET; \ OBJDUMP_FOR_TARGET="$(OBJDUMP_FOR_TARGET)"; export OBJDUMP_FOR_TARGET; \ @@ -801,7 +801,7 @@ TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) # The BUILD_* variables are a special case, which are used for the gcc # cross-building scheme. EXTRA_GCC_FLAGS = \ - "GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \ + "GCC_FOR_TARGET=$(GCC_FOR_TARGET) $$TFLAGS" \ "`echo 'STMP_FIXPROTO=$(STMP_FIXPROTO)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ "`echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 97e5450ecb593..27ac641270f99 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -146,8 +146,11 @@ endif # CFLAGS is for the user to override to, e.g., do a cross build with -O2. # TCFLAGS is used for compilations with the GCC just built. # T_CFLAGS is used for all compilations and is overridden by t-* files. +# TFLAGS is also for the user to override, passed down from the top-level +# Makefile. It is used for all compilations, T_CFLAGS = TCFLAGS = +TFLAGS = CFLAGS = @CFLAGS@ CXXFLAGS = @CXXFLAGS@ LDFLAGS = @LDFLAGS@ @@ -457,7 +460,7 @@ T_STDINT_GCC_H = $(srcdir)/ginclude/stdint-gcc.h # The GCC to use for compiling crt*.o. # Usually the one we just built. # Don't use this as a dependency--use $(GCC_PASSES). -GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) ./xgcc -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include -L$(objdir)/../ld +GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) ./xgcc -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include -L$(objdir)/../ld $(TFLAGS) # Set if the compiler was configured with --with-build-sysroot. SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@ @@ -1193,6 +1196,7 @@ FLAGS_TO_PASS = \ "MAKEINFOFLAGS=$(MAKEINFOFLAGS)" \ "MAKEOVERRIDES=" \ "SHELL=$(SHELL)" \ + "TFLAGS=$(TFLAGS)" \ "exeext=$(exeext)" \ "build_exeext=$(build_exeext)" \ "objext=$(objext)" \ -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about