From 109a0a7e902f23e7167f89abbc0d8fa0ccca6594 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 15 Jan 2023 20:48:28 -0500 Subject: sim: modules.c: fix generation after recent refactors Add explicit arch-specific modules.c rules to keep the build from generating an incorrect common/modules.c. Otherwise the pattern rules would cascade such that it'd look for $arch/modules.o which turned into common/modules.c which triggered the gen rule. My local testing of this code didn't catch this bug because of how Automake manages .Po (dependency files) in incremental builds -- it was adding extra rules that override the pattern rules which caused the build to generate correct modules.c files. But when building from a cold cache, the pattern rules would force common/modules.c to be used leading to crashes at runtime. --- sim/rx/local.mk | 3 +++ 1 file changed, 3 insertions(+) (limited to 'sim/rx') diff --git a/sim/rx/local.mk b/sim/rx/local.mk index 63993b9..9412965 100644 --- a/sim/rx/local.mk +++ b/sim/rx/local.mk @@ -37,6 +37,9 @@ $(%C%_libsim_a_OBJECTS) $(%C%_libsim_a_LIBADD): %D%/hw-config.h noinst_LIBRARIES += %D%/libsim.a +## Override wildcards that trigger common/modules.c to be (incorrectly) used. +%D%/modules.o: %D%/modules.c + %D%/%.o: common/%.c ; $(SIM_COMPILE) -@am__include@ %D%/$(DEPDIR)/*.Po -- cgit v1.1