From 6384beb9611221965326fbbbd53469b1a192a1aa Mon Sep 17 00:00:00 2001 From: Wildan M Date: Wed, 21 Oct 2026 14:45:01 +0700 Subject: [PATCH] prefix: Fetch prefix sources early --- mk/prefix.mk | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/mk/prefix.mk b/mk/prefix.mk index 1f3b83b3d..0691100cd 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -209,6 +209,8 @@ $(PREFIX)/%.tar.gz: $(PREFIX)/% --directory="$<" \ . +PREFIX_FETCH_TAG=$(PREFIX)/fetch.tag + # BUILD GCC --------------------------------------------------- $(PREFIX)/libtool-install: | $(FSTOOLS_TAG) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) @@ -228,7 +230,26 @@ else mv "$@.partial" "$@" endif -$(PREFIX)/binutils-install: | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +# libtool may be used during autoconf, so this depends after building libtool +# it is fine to skip this, but this is used to fail early if sources fail due to autoconf +$(PREFIX_FETCH_TAG): | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + @echo "\033[1;36;49mFetching prefix sources\033[0m" + rm -f "$@" + export $(PREFIX_CONFIG) COOKBOOK_LIBTOOL_DIR=$(LIBTOOL_PATH) PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \ + COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) && \ + $(REPO_BIN) fetch host:binutils-gdb host:gcc13 host:llvm21 relibc +ifneq ($(PREFIX_USE_UPSTREAM_RUST_COMPILER),1) + export $(PREFIX_CONFIG) COOKBOOK_LIBTOOL_DIR=$(LIBTOOL_PATH) PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \ + COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) && \ + $(REPO_BIN) fetch host:wasi-libc host:rust +endif + touch "$@" +endif + +$(PREFIX)/binutils-install: | $(PREFIX_FETCH_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @@ -243,7 +264,7 @@ else mv "$@.partial" "$@" endif -$(PREFIX)/gcc-freestanding-install: $(PREFIX)/binutils-install | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +$(PREFIX)/gcc-freestanding-install: $(PREFIX)/binutils-install | $(PREFIX_FETCH_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @@ -263,7 +284,7 @@ else mv "$@.partial" "$@" endif -$(PREFIX)/relibc-freestanding-install: $(PREFIX)/gcc-freestanding-install | $(FSTOOLS_TAG) $(CONTAINER_TAG) +$(PREFIX)/relibc-freestanding-install: $(PREFIX)/gcc-freestanding-install | $(PREFIX_FETCH_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @@ -280,7 +301,7 @@ else mv "$@.partial" "$@" endif -$(PREFIX)/gcc-install: $(PREFIX)/relibc-freestanding-install | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +$(PREFIX)/gcc-install: $(PREFIX)/relibc-freestanding-install | $(PREFIX)/libtool-install $(PREFIX_FETCH_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @@ -399,7 +420,7 @@ endif # BUILD RUST --------------------------------------------------- else -$(PREFIX)/wasip1-libc-install: $(PREFIX)/clang-install | $(FSTOOLS_TAG) $(CONTAINER_TAG) +$(PREFIX)/wasip1-libc-install: $(PREFIX)/clang-install | $(PREFIX_FETCH_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @@ -416,7 +437,7 @@ else # TODO: Cache from WASIP1_LIBC_TARGET is currently not cleared. endif -$(PREFIX)/rust-install: | $(PREFIX)/wasip1-libc-install $(PREFIX)/gcc-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +$(PREFIX)/rust-install: | $(PREFIX)/wasip1-libc-install $(PREFIX)/gcc-install $(PREFIX_FETCH_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @@ -435,7 +456,7 @@ endif endif # BUILD CLANG --------------------------------------------------- -$(PREFIX)/clang-install: | $(PREFIX)/gcc-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +$(PREFIX)/clang-install: | $(PREFIX)/gcc-install $(PREFIX_FETCH_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else