From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) by sourceware.org (Postfix) with ESMTP id 08FC53858C3A for ; Thu, 4 Nov 2021 03:52:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 08FC53858C3A Received: by smtp.gentoo.org (Postfix, from userid 559) id 9CF55342E05; Thu, 4 Nov 2021 03:52:42 +0000 (UTC) From: Mike Frysinger To: gdb-patches@sourceware.org Subject: [PATCH] sim: mips: fix missing prototype in multi-run generation Date: Wed, 3 Nov 2021 23:52:39 -0400 Message-Id: <20211104035239.24868-1-vapier@gentoo.org> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, SPF_PASS, TXREP, UNWANTED_LANGUAGE_BODY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-List-Received-Date: Thu, 04 Nov 2021 03:52:45 -0000 The multi-run logic for mips involves a bit of codegen and rewriting of files to include per-architecture prefixes. That can result in files with missing prototypes which cause compiler errors. In the case of mips-sde-elf targets, we have: $srcdir/m16run.c -> $builddir/m16mips64r2_run.c sim_engine_run -> m16mips64r2_engine_run $srcdir/micromipsrun.c -> micromipsmicromips_run.c sim_engine_run -> micromips64micromips_engine_run micromipsmicromips_run.c:80:1: error: no previous prototype for ‘micromips64micromips_engine_run’ [-Werror=missing-prototypes] 80 | micromips64micromips_engine_run (SIM_DESC sd, int next_cpu_nr, int nr_cpus, We generate headers for those prototypes in the configure script, but only include them in the generated multi-run.c file. Update the rewrite logic to turn the sim-engine.h include into the relevant generated engine include so these files also have their prototypes. $srcdir/m16run.c -> $builddir/m16mips64r2_run.c sim-engine.h -> m16mips64r2_engine.h $srcdir/micromipsrun.c -> micromipsmicromips_run.c sim-engine.h -> micromips64micromips_engine.h --- sim/mips/Makefile.in | 3 +++ sim/mips/m16run.c | 1 + 2 files changed, 4 insertions(+) diff --git a/sim/mips/Makefile.in b/sim/mips/Makefile.in index b34fdf5b461e..589c392edb53 100644 --- a/sim/mips/Makefile.in +++ b/sim/mips/Makefile.in @@ -553,6 +553,7 @@ tmp-run-multi: $(srcdir)/m16run.c $(srcdir)/micromipsrun.c m=`echo $${t} | sed -e 's/^m16//' -e 's/:.*//'`; \ sed < $(srcdir)/m16run.c > tmp-run \ -e "s/^sim_/m16$${m}_/" \ + -e "/include/s/sim-engine/m16$${m}_engine/" \ -e "s/m16_/m16$${m}_/" \ -e "s/m32_/m32$${m}_/" ; \ $(SHELL) $(srcdir)/../../move-if-change tmp-run \ @@ -562,6 +563,7 @@ tmp-run-multi: $(srcdir)/m16run.c $(srcdir)/micromipsrun.c m=`echo $${t} | sed -e 's/^micromips32//' -e 's/:.*//'`; \ sed < $(srcdir)/micromipsrun.c > tmp-run \ -e "s/^sim_/micromips32$${m}_/" \ + -e "/include/s/sim-engine/micromips32$${m}_engine/" \ -e "s/micromips16_/micromips16$${m}_/" \ -e "s/micromips32_/micromips32$${m}_/" \ -e "s/m32_/m32$${m}_/" ; \ @@ -572,6 +574,7 @@ tmp-run-multi: $(srcdir)/m16run.c $(srcdir)/micromipsrun.c m=`echo $${t} | sed -e 's/^micromips64//' -e 's/:.*//'`; \ sed < $(srcdir)/micromipsrun.c > tmp-run \ -e "s/^sim_/micromips64$${m}_/" \ + -e "/include/s/sim-engine/micromips64$${m}_engine/" \ -e "s/micromips16_/micromips16$${m}_/" \ -e "s/micromips32_/micromips64$${m}_/" \ -e "s/m32_/m64$${m}_/" ; \ diff --git a/sim/mips/m16run.c b/sim/mips/m16run.c index a04e3eed3bf3..bbe487e4e513 100644 --- a/sim/mips/m16run.c +++ b/sim/mips/m16run.c @@ -24,6 +24,7 @@ #include "m16_idecode.h" #include "m32_idecode.h" #include "bfd.h" +#include "sim-engine.h" #define SD sd -- 2.33.0