aboutsummaryrefslogtreecommitdiff
path: root/sim/avr
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2023-01-15 20:48:28 -0500
committerMike Frysinger <vapier@gentoo.org>2023-01-15 20:55:48 -0500
commit109a0a7e902f23e7167f89abbc0d8fa0ccca6594 (patch)
tree69140c62ef540d70211485d814b435ab235e3132 /sim/avr
parent8cf531c3dbf593dd3159950dc3fa1bba2c00ac5e (diff)
downloadbinutils-109a0a7e902f23e7167f89abbc0d8fa0ccca6594.zip
binutils-109a0a7e902f23e7167f89abbc0d8fa0ccca6594.tar.gz
binutils-109a0a7e902f23e7167f89abbc0d8fa0ccca6594.tar.bz2
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.
Diffstat (limited to 'sim/avr')
-rw-r--r--sim/avr/local.mk3
1 files changed, 3 insertions, 0 deletions
diff --git a/sim/avr/local.mk b/sim/avr/local.mk
index 07752e5..306cf88 100644
--- a/sim/avr/local.mk
+++ b/sim/avr/local.mk
@@ -28,6 +28,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