From patchwork Tue Jan 3 07:55:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Frysinger X-Patchwork-Id: 62641 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0AF013889E11 for ; Tue, 3 Jan 2023 08:09:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0AF013889E11 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1672733369; bh=xQu3n3oq4NWqnWVSBqRPN3GLd2cJCncPeOBV++E5hEY=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=w855404ofyPte78Le/u6135T+EagTOpYHP4GCXz3Yp41u1384nstJNYoXl0esW+k+ aQ2l6uDi9sLCB89eY1wWZ7cyDRk7IUA69cPy2L13EA4P+1aLRQyo+c2wa9Ykau3kZ1 YL3VO6tI0IDDshtr19vEy85dN9JmLppBEmXBjaro= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) by sourceware.org (Postfix) with ESMTP id 181FE382FCAB for ; Tue, 3 Jan 2023 07:58:47 +0000 (GMT) Received: by smtp.gentoo.org (Postfix, from userid 559) id BCD39340CD7; Tue, 3 Jan 2023 07:58:46 +0000 (UTC) To: gdb-patches@sourceware.org Subject: [PATCH 74/83] sim: build: delete Make-common.in logic Date: Tue, 3 Jan 2023 02:55:56 -0500 Message-Id: <20230103075605.13606-75-vapier@gentoo.org> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230103075605.13606-1-vapier@gentoo.org> References: <20230103075605.13606-1-vapier@gentoo.org> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, 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 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Mike Frysinger via Gdb-patches From: Mike Frysinger Reply-To: Mike Frysinger Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" Now that all (other than ppc) build in the top-level, this logic is unused, so punt it all. --- sim/Makefile.in | 4 - sim/README-HACKING | 45 +------- sim/common/Make-common.in | 210 -------------------------------------- sim/common/local.mk | 1 - sim/configure | 16 +-- sim/configure.ac | 13 --- 6 files changed, 3 insertions(+), 286 deletions(-) delete mode 100644 sim/common/Make-common.in diff --git a/sim/README-HACKING b/sim/README-HACKING index fd6461e5ae90..55caa7b15b20 100644 --- a/sim/README-HACKING +++ b/sim/README-HACKING @@ -17,54 +17,11 @@ The common directory contains: - common documentation files (e.g. run.1, and maybe in time .texi files) - common source files (e.g. run.c) -- common Makefile fragment and configury (e.g. Make-common.in, aclocal.m4). +- common Makefile fragment and configury (e.g. common/local.mk) In addition "common" contains portions of the system call support (e.g. callback.c, target-newlib-*.c). -Common Makefile Support -======================= - -A common configuration framework is available for simulators that want -to use it. The common framework exists to remove a lot of duplication -in configure.ac and Makefile.in, and it also provides a foundation for -enhancing the simulators uniformly (e.g. the more they share in common -the easier a feature added to one is added to all). - -The Makefile.in of a simulator using the common framework should look like: - ---- snip --- -# Makefile for blah ... -# Copyright blah ... - -## COMMON_PRE_CONFIG_FRAG - -# These variables are given default values in COMMON_PRE_CONFIG_FRAG. -# We override the ones we need to here. -# Not all of these need to be mentioned, only the necessary ones. -# In fact it is better to *not* mention ones if the value is the default. - -# List of flags to always pass to $(CC). -SIM_EXTRA_CFLAGS = -# Dependency of `clean' to clean any extra files. -SIM_EXTRA_CLEAN = - -## COMMON_POST_CONFIG_FRAG - -... target specific rules ... ---- snip --- - -COMMON_{PRE,POST}_CONFIG_FRAG are markers for configure to tell it -where to insert the two pieces of common/Make-common.in. -The resulting Makefile is created by doing autoconf substitions on -both the target's Makefile.in and Make-common.in, and inserting -the two pieces of Make-common.in into the target's Makefile.in at -COMMON_{PRE,POST}_CONFIG_FRAG. - -Note that SIM_EXTRA_{INSTALL,CLEAN} could be removed and "::" targets -could be used instead. However, it's not clear yet whether "::" targets -are portable enough. - TAGS support ============ diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in deleted file mode 100644 index a081525c91ce..000000000000 --- a/sim/common/Make-common.in +++ /dev/null @@ -1,210 +0,0 @@ -# Makefile fragment for common parts of all simulators. -# Copyright 1997-2023 Free Software Foundation, Inc. -# Contributed by Cygnus Support. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# This Makefile fragment consists of two separate parts. -# They are merged into the final Makefile at points denoted by -# "## COMMON_PRE_CONFIG_FRAG" and "## COMMON_POST_CONFIG_FRAG". -# -# The target Makefile should look like: -# -#># Copyright blah blah -#> -#>## COMMON_PRE_CONFIG_FRAG -#> -#># Any overrides necessary for the SIM_FOO config vars. -#>SIM_FOO = ... -#> -#>## COMMON_POST_CONFIG_FRAG -#> -#># Rules to build target specific .o's. - -## COMMON_PRE_CONFIG_FRAG - -srcdir = @abs_srcdir@ -VPATH = $(srcdir):$(srccom) -srccom = $(srcdir)/../common -srcroot = $(srcdir)/../.. -srcsim = $(srcdir)/.. - -@SIM_COMMON_BUILD_FALSE@config.status = config.status -@SIM_COMMON_BUILD_TRUE@config.status = ../config.status - -# Settings from top-level configure. -include ../arch-subdir.mk - -include $(srcroot)/gdb/silent-rules.mk - -ifeq ($(V),0) -ECHO_STAMP = @echo " GEN " -else -ECHO_STAMP = @: -endif - -# Helper code from gnulib. -GNULIB_PARENT_DIR = ../.. -include $(GNULIB_PARENT_DIR)/gnulib/Makefile.gnulib.inc - -# This can be referenced by the gettext configuration code. -top_builddir = .. - -SHELL = @SHELL@ - -SIM_BITSIZE = @sim_bitsize@ -SIM_FLOAT = @sim_float@ -SIM_WARN_CFLAGS = $(WARN_CFLAGS) -SIM_WERROR_CFLAGS = $(WERROR_CFLAGS) - -# Dependency tracking information. -depcomp = $(SHELL) $(srcroot)/depcomp - -# Note that these are overridden by GNU make-specific code below if -# GNU make is used. The overrides implement dependency tracking. -COMPILE.pre = $(CC) $(C_DIALECT) -COMPILE.post = -c -o $@ -COMPILE = $(ECHO_CC) $(COMPILE.pre) $(ALL_CFLAGS) $(COMPILE.post) -POSTCOMPILE = @true - -# Each simulator's Makefile.in defines one or more of these variables -# to override our settings as necessary. There is no need to define these -# in the simulator's Makefile.in if one is using the default value. In fact -# it's preferable not to. - -# List of flags to always pass to $(CC). -SIM_EXTRA_CFLAGS = -# Dependency of `clean' to clean any extra files. -SIM_EXTRA_CLEAN = - -# Every time a new general purpose source file was added every target's -# Makefile.in needed to be updated to include the file. -# This doesn't scale. -# This variable specifies all the generic stuff common to the newer simulators. -# Things like sim-reason.o can't go here as the cpu may provide its own -# (though hopefully in time that won't be so). Things like sim-bits.o can go -# here. Some files are used by all simulators (e.g. callback.o). - -## End COMMON_PRE_CONFIG_FRAG - -## COMMON_POST_CONFIG_FRAG - -CONFIG_CFLAGS = \ - -DHAVE_CONFIG_H \ - $(SIM_BITSIZE) \ - $(SIM_FLOAT) \ - $(SIM_HW_CFLAGS) \ - $(SIM_INLINE) \ - $(SIM_WARN_CFLAGS) \ - $(SIM_WERROR_CFLAGS) -CSEARCH = -I. -I$(srcdir) -I$(srccom) \ - -I$(srcroot)/include \ - -I../../bfd \ - -I$(srcroot) \ - -I../.. -ALL_CFLAGS = $(CONFIG_CFLAGS) $(CSEARCH) $(INCGNU) $(SIM_EXTRA_CFLAGS) $(CFLAGS) -BUILD_CFLAGS = $(CFLAGS_FOR_BUILD) $(CSEARCH) - -COMMON_DEP_CFLAGS = $(CONFIG_CFLAGS) $(CSEARCH) $(SIM_EXTRA_CFLAGS) - -LIBIBERTY_LIB = ../../libiberty/libiberty.a -BFD_LIB = ../../bfd/libbfd.la -OPCODES_LIB = ../../opcodes/libopcodes.la -LIBDEPS = $(BFD_LIB) $(OPCODES_LIB) $(LIBIBERTY_LIB) -EXTRA_LIBS = $(BFD_LIB) $(OPCODES_LIB) $(LIBIBERTY_LIB) \ - $(COMMON_LIBS) $(LIBGNU) $(LIBGNU_EXTRA_LIBS) - -COMPILE_FOR_BUILD = $(CC_FOR_BUILD) $(BUILD_CFLAGS) -LINK_FOR_BUILD = $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(LDFLAGS_FOR_BUILD) -o $@ - -RUNTESTFLAGS = - -all: - -# -# Dependency tracking. Most of this is conditional on GNU Make being -# found by configure; if GNU Make is not found, we fall back to a -# simpler scheme. -# - -ifeq ($(DEPMODE),depmode=gcc3) -# Note that we put the dependencies into a .Tpo file, then move them -# into place if the compile succeeds. We need this because gcc does -# not atomically write the dependency output file. -override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \ - -MF $(DEPDIR)/$(basename $(@F)).Tpo -override POSTCOMPILE = @mv $(DEPDIR)/$(basename $(@F)).Tpo \ - $(DEPDIR)/$(basename $(@F)).Po -else -override COMPILE.pre = source='$<' object='$@' libtool=no \ - DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC) -# depcomp handles atomicity for us, so we don't need a postcompile -# step. -override POSTCOMPILE = -endif - -# Support targets. - -install: -installdirs: -uninstall: - -check: - -html: -clean-html: -install-html: - -info: -clean-info: -install-info: - -pdf: -clean-pdf: -install-pdf: - -.NOEXPORT: -MAKEOVERRIDES= - -tags etags: TAGS - -# Macros like EXTERN_SIM_CORE confuse tags. -# And the sim-n-foo.h files create functions that can't be found either. -TAGS: force - cd $(srcdir) && \ - etags --regex '/^\([[:lower:]_]+\) (/\1/' --regex '/^\/[*] TAGS: .*/' \ - *.[ch] ../common/*.[ch] - -mostlyclean clean: $(SIM_EXTRA_CLEAN) - rm -f *.[oa] *~ core - -distclean maintainer-clean realclean: clean - rm -f TAGS Makefile - -.c.o: - $(COMPILE) $< - $(POSTCOMPILE) - -# Dummy target to force execution of dependent targets. -force: - -Makefile: Makefile.in $(srccom)/Make-common.in $(config.status) -@SIM_COMMON_BUILD_FALSE@ $(ECHO_GEN) CONFIG_HEADERS= $(SHELL) ./config.status -@SIM_COMMON_BUILD_TRUE@ $(ECHO_GEN) pwd=`pwd` && subdir=`basename "$$pwd"` && cd .. && \ -@SIM_COMMON_BUILD_TRUE@ $(SHELL) ./config.status Make-common.sim $$subdir/Makefile.sim $$subdir/Makefile - -@SIM_COMMON_BUILD_FALSE@config.status: configure -@SIM_COMMON_BUILD_FALSE@ $(ECHO_GEN) $(SHELL) ./config.status --recheck - -## End COMMON_POST_CONFIG_FRAG diff --git a/sim/common/local.mk b/sim/common/local.mk index f79a30113740..0ed18359ae43 100644 --- a/sim/common/local.mk +++ b/sim/common/local.mk @@ -16,7 +16,6 @@ ## along with this program. If not, see . ## Parts of the common/ sim code that have been unified. -## Most still lives in common/Make-common.in. AM_CPPFLAGS += \ -I$(srcdir)/%D% \ diff --git a/sim/configure.ac b/sim/configure.ac index 8198780c1eb1..91447ae4c655 100644 --- a/sim/configure.ac +++ b/sim/configure.ac @@ -52,12 +52,6 @@ dnl List of enabled arch backends. SIM_ENABLED_ARCHES= AC_SUBST(SIM_ENABLED_ARCHES) -dnl Used by common/Make-common.in to see which configure script created it. -SIM_COMMON_BUILD_TRUE= -SIM_COMMON_BUILD_FALSE='#' -AC_SUBST(SIM_COMMON_BUILD_TRUE) -AC_SUBST(SIM_COMMON_BUILD_FALSE) - ENABLE_SIM=no dnl Build a particular arch subdir. dnl arg[1] is the arch subdir name. @@ -176,13 +170,6 @@ if test $sim_cv_decl_getopt_unistd_h = yes; then [Is the prototype for getopt in in the expected format?]) fi -dnl These are unfortunate. They are conditionally called by other sim macros -dnl but always used by common/Make-common.in. So we have to subst here even -dnl when the rest of the code is in the respective macros. Once we merge the -dnl respective SIM_AC_OPTION_xxx call above, we can drop these. -AC_SUBST(sim_bitsize) -AC_SUBST(sim_float) - dnl Some arches have unique configure flags. m4_include([frv/acinclude.m4]) m4_include([mips/acinclude.m4])