This is an automated email from the ASF dual-hosted git repository. acassis pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit cc46e7303d7f43740bfe6cfbfeb553abe18098fd Author: raul_chen <[email protected]> AuthorDate: Fri Jul 17 10:25:55 2026 +0800 arch/arm/ameba: pack fwlib/wifi archives from an explicit object list The make PREBUILD packed the fwlib/wifi static archives with `ar crs <a> <objdir>/*.o`. The glob also picks up stale objects left in the obj dir from a previous configuration (e.g. a renamed/removed SDK source), which can pull a duplicate/old translation unit into the image (seen on RTL8720F as a spurious ROM-overlay symbol from an old log.o). Accumulate the exact object list the loop compiled and `ar` that instead, removing the archive first so it is rebuilt from precisely the current sources. Assisted-by: Claude Code:claude-opus-4-8 Signed-off-by: raul_chen <[email protected]> --- arch/arm/src/rtl8720f/ameba_board.mk | 12 ++++++++---- arch/arm/src/rtl8721dx/ameba_board.mk | 12 ++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/arch/arm/src/rtl8720f/ameba_board.mk b/arch/arm/src/rtl8720f/ameba_board.mk index 2d0413ac9a1..28f9283943c 100644 --- a/arch/arm/src/rtl8720f/ameba_board.mk +++ b/arch/arm/src/rtl8720f/ameba_board.mk @@ -268,7 +268,7 @@ define PREBUILD $(Q) $(AMEBA_NP_PREBUILD) $(Q) echo "GEN: libameba_fwlib.a (fwlib from SDK source)" $(Q) mkdir -p $(AMEBA_PREBUILT_LIBS)$(DELIM)fwlib_obj - $(Q) rebuild_fwlib=0; \ + $(Q) rebuild_fwlib=0; fwlib_objs=""; \ for src in $(AMEBA_FWLIB_SRCS); do \ obj=$(AMEBA_PREBUILT_LIBS)/fwlib_obj/`basename $$src .c`.o; \ if [ "$$src" -nt "$$obj" ] 2>/dev/null || [ ! -f "$$obj" ]; then \ @@ -276,14 +276,16 @@ define PREBUILD $(AMEBA_FWLIB_INC) -c $$src -o $$obj || exit 1; \ rebuild_fwlib=1; \ fi; \ + fwlib_objs="$$fwlib_objs $$obj"; \ done; \ if [ "$$rebuild_fwlib" = "1" ] || [ ! -f "$(AMEBA_FWLIB_A)" ]; then \ - $(CROSSDEV)ar crs $(AMEBA_FWLIB_A) $(AMEBA_PREBUILT_LIBS)/fwlib_obj/*.o; \ + rm -f $(AMEBA_FWLIB_A); \ + $(CROSSDEV)ar crs $(AMEBA_FWLIB_A) $$fwlib_objs; \ fi $(Q) if [ "$(CONFIG_RTL8720F_WIFI)" = "y" ]; then \ echo "GEN: libameba_wifi.a (WHC host glue from SDK source + NuttX shim)"; \ mkdir -p $(AMEBA_PREBUILT_LIBS)$(DELIM)wifi_obj; \ - rebuild_wifi=0; \ + rebuild_wifi=0; wifi_objs=""; \ for src in $(AMEBA_WIFI_SRCS); do \ obj=$(AMEBA_PREBUILT_LIBS)/wifi_obj/`basename $$src .c`.o; \ if [ "$$src" -nt "$$obj" ] 2>/dev/null || [ ! -f "$$obj" ]; then \ @@ -291,9 +293,11 @@ define PREBUILD $(AMEBA_WIFI_INC) -c $$src -o $$obj || exit 1; \ rebuild_wifi=1; \ fi; \ + wifi_objs="$$wifi_objs $$obj"; \ done; \ if [ "$$rebuild_wifi" = "1" ] || [ ! -f "$(AMEBA_WIFI_A)" ]; then \ - $(CROSSDEV)ar crs $(AMEBA_WIFI_A) $(AMEBA_PREBUILT_LIBS)/wifi_obj/*.o; \ + rm -f $(AMEBA_WIFI_A); \ + $(CROSSDEV)ar crs $(AMEBA_WIFI_A) $$wifi_objs; \ fi; \ fi $(Q) echo "GEN: ld.script.gen (Ameba KM4 image2)" diff --git a/arch/arm/src/rtl8721dx/ameba_board.mk b/arch/arm/src/rtl8721dx/ameba_board.mk index d3648dea965..c326add632e 100644 --- a/arch/arm/src/rtl8721dx/ameba_board.mk +++ b/arch/arm/src/rtl8721dx/ameba_board.mk @@ -268,7 +268,7 @@ define PREBUILD $(Q) $(AMEBA_NP_PREBUILD) $(Q) echo "GEN: libameba_fwlib.a (fwlib from SDK source)" $(Q) mkdir -p $(AMEBA_PREBUILT_LIBS)$(DELIM)fwlib_obj - $(Q) rebuild_fwlib=0; \ + $(Q) rebuild_fwlib=0; fwlib_objs=""; \ for src in $(AMEBA_FWLIB_SRCS); do \ obj=$(AMEBA_PREBUILT_LIBS)/fwlib_obj/`basename $$src .c`.o; \ if [ "$$src" -nt "$$obj" ] 2>/dev/null || [ ! -f "$$obj" ]; then \ @@ -276,14 +276,16 @@ define PREBUILD $(AMEBA_FWLIB_INC) -c $$src -o $$obj || exit 1; \ rebuild_fwlib=1; \ fi; \ + fwlib_objs="$$fwlib_objs $$obj"; \ done; \ if [ "$$rebuild_fwlib" = "1" ] || [ ! -f "$(AMEBA_FWLIB_A)" ]; then \ - $(CROSSDEV)ar crs $(AMEBA_FWLIB_A) $(AMEBA_PREBUILT_LIBS)/fwlib_obj/*.o; \ + rm -f $(AMEBA_FWLIB_A); \ + $(CROSSDEV)ar crs $(AMEBA_FWLIB_A) $$fwlib_objs; \ fi $(Q) if [ "$(CONFIG_RTL8721DX_WIFI)" = "y" ]; then \ echo "GEN: libameba_wifi.a (WHC host glue from SDK source + NuttX shim)"; \ mkdir -p $(AMEBA_PREBUILT_LIBS)$(DELIM)wifi_obj; \ - rebuild_wifi=0; \ + rebuild_wifi=0; wifi_objs=""; \ for src in $(AMEBA_WIFI_SRCS); do \ obj=$(AMEBA_PREBUILT_LIBS)/wifi_obj/`basename $$src .c`.o; \ if [ "$$src" -nt "$$obj" ] 2>/dev/null || [ ! -f "$$obj" ]; then \ @@ -291,9 +293,11 @@ define PREBUILD $(AMEBA_WIFI_INC) -c $$src -o $$obj || exit 1; \ rebuild_wifi=1; \ fi; \ + wifi_objs="$$wifi_objs $$obj"; \ done; \ if [ "$$rebuild_wifi" = "1" ] || [ ! -f "$(AMEBA_WIFI_A)" ]; then \ - $(CROSSDEV)ar crs $(AMEBA_WIFI_A) $(AMEBA_PREBUILT_LIBS)/wifi_obj/*.o; \ + rm -f $(AMEBA_WIFI_A); \ + $(CROSSDEV)ar crs $(AMEBA_WIFI_A) $$wifi_objs; \ fi; \ fi $(Q) echo "GEN: ld.script.gen (Ameba AP km4 image2)"
