mirror of
https://github.com/apache/nuttx.git
synced 2026-08-01 20:28:58 +00:00
tools: fix stale archive members surviving a Kconfig-driven CSRCS change
During the Toybox port to NuttX, Claude noticed that changes in the menuconfig weren't taking affect. This issue exists for a long time on NuttX, in fact BayLibre's presentation from 2017 make jokes about our building system not been reliable: https://www.youtube.com/watch?v=XUJK2htXxKw&t=320s Stale archive members from $(AR)'s additive-only behavior can linger after Kconfig toggles change which files provide a symbol, causing dead weight or "multiple definition" link errors on incremental builds. Fixed by splitting ARCHIVE into two macros: ARCHIVE keeps the original additive behavior for apps/libapps.a, which many independent subdirectories contribute to across a build, while the new ARCHIVE_REBUILD deletes then archives for the far more common case of a single Makefile building its own self-contained $(OBJS) - all 39 such call sites now use it. Assisted-By: Claude Sonnet 5 Signed-off-by: Alan C. Assis <acassis@gmail.com>
This commit is contained in:
parent
69249fc9e6
commit
c027e7c3e4
40 changed files with 106 additions and 56 deletions
|
|
@ -80,7 +80,7 @@ $(COBJS): $(BINDIR)$(DELIMS)%$(OBJEXT): %.c
|
|||
# the user phase of the two-pass kernel build
|
||||
|
||||
$(BIN): $(OBJS)
|
||||
$(call ARCHIVE, $@, $(OBJS))
|
||||
$(call ARCHIVE_REBUILD, $@, $(OBJS))
|
||||
|
||||
# Memory manager for the kernel phase of the two-pass kernel build
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue