diff --git a/mk/prefix.mk b/mk/prefix.mk index 81fb0284d..6bc1dfbca 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -4,6 +4,7 @@ PREFIX=prefix/$(TARGET) PREFIX_INSTALL=$(PREFIX)/sysroot/ PREFIX_PATH=$(ROOT)/$(PREFIX_INSTALL)/bin +LIBTOOL_PATH=$(ROOT)/$(PREFIX)/libtool-install BINUTILS_TARGET=recipes/dev/binutils-gdb/target/$(HOST_TARGET)/$(TARGET) LIBTOOL_TARGET=recipes/dev/libtool/target/$(HOST_TARGET) GCC_TARGET=recipes/dev/gcc13/target/$(HOST_TARGET)/$(TARGET) @@ -232,7 +233,7 @@ else @echo "\033[1;36;49mBuilding binutils-install\033[0m" rm -rf "$@.partial" "$@" mkdir -p "$@.partial" - export $(PREFIX_CONFIG) PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \ + 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) cook host:binutils-gdb cp -r "$(BINUTILS_TARGET)/stage/usr/". "$@.partial" @@ -247,9 +248,9 @@ else @echo "\033[1;36;49mBuilding gcc-freestanding-install\033[0m" rm -rf "$@.partial" "$@" $(PREFIX)/relibc-freestanding-install $(PREFIX)/sysroot mkdir -p "$@.partial" $(PREFIX)/relibc-freestanding-install/$(GNU_TARGET)/include - export $(PREFIX_CONFIG) PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$(ROOT)/$(PREFIX)/binutils-install/bin:$$PATH" \ - COOKBOOK_LIBTOOL_DIR=$(ROOT)/$(PREFIX)/libtool-install COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) \ - ACLOCAL_PATH=$(ROOT)/$(PREFIX)/libtool-install/share/aclocal:$$ACLOCAL_PATH \ + export $(PREFIX_CONFIG) PATH="$(LIBTOOL_PATH)/bin:$(ROOT)/$(PREFIX)/binutils-install/bin:$$PATH" \ + COOKBOOK_LIBTOOL_DIR=$(LIBTOOL_PATH) COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) \ + ACLOCAL_PATH=$(LIBTOOL_PATH)/share/aclocal:$$ACLOCAL_PATH \ COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_SYSROOT=$(ROOT)/$(PREFIX)/relibc-freestanding-install/$(GNU_TARGET) && \ $(REPO_BIN) cook host:gcc13 cp -r "$(GCC_TARGET)/stage/usr/". "$@.partial" @@ -306,7 +307,7 @@ else rm -f "$@.partial"/$(GNU_TARGET)/lib/libsupc++.la # hosted libstdcxx export PATH="$(ROOT)/$@.partial/bin:$$PATH" \ - ACLOCAL_PATH="$(ROOT)/$(PREFIX)/libtool-install/share/aclocal:$$ACLOCAL_PATH" && \ + ACLOCAL_PATH="$(LIBTOOL_PATH)/share/aclocal:$$ACLOCAL_PATH" && \ export $(PREFIX_CONFIG) "COOKBOOK_HOST_SYSROOT=$(ROOT)/$@.partial" COOKBOOK_CROSS_TARGET=$(HOST_TARGET) && \ rm -rf "$(LIBSTDCXX_TARGET)/stage" && $(REPO_BIN) cook libstdcxx-v3 cp -r "$(LIBSTDCXX_TARGET)/stage/usr/". "$@.partial/$(GNU_TARGET)" @@ -411,14 +412,14 @@ else # TODO: Cache from WASIP1_LIBC_TARGET is currently not cleared. endif -$(PREFIX)/rust-install: | $(PREFIX)/wasip1-libc-install $(PREFIX)/gcc-install $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +$(PREFIX)/rust-install: | $(PREFIX)/wasip1-libc-install $(PREFIX)/gcc-install $(FSTOOLS_TAG) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @echo "\033[1;36;49mBuilding rust-install\033[0m" rm -rf "$@.partial" "$@" - export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$(ROOT)/$(PREFIX)/gcc-install/bin:$$PATH" WASI_SDK_PATH=$(ROOT)/$(PREFIX)/wasip1-libc-install \ - $(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) && \ + export PATH="$(LIBTOOL_PATH)/bin:$(ROOT)/$(PREFIX)/gcc-install/bin:$$PATH" WASI_SDK_PATH=$(ROOT)/$(PREFIX)/wasip1-libc-install \ + $(PREFIX_CONFIG) COOKBOOK_LIBTOOL_DIR=$(LIBTOOL_PATH) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) && \ $(REPO_BIN) cook host:rust cp -r "$(RUST_TARGET)/stage/usr/". "$@.partial" mv "$@.partial" "$@" @@ -430,14 +431,14 @@ endif endif # BUILD CLANG --------------------------------------------------- -$(PREFIX)/clang-install: | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +$(PREFIX)/clang-install: | $(PREFIX)/gcc-install $(FSTOOLS_TAG) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @echo "\033[1;36;49mBuilding clang-install\033[0m" rm -rf "$@.partial" "$@" - export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \ - $(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) && \ + export PATH="$(LIBTOOL_PATH)/bin:$$PATH" $(PREFIX_CONFIG) \ + COOKBOOK_LIBTOOL_DIR=$(LIBTOOL_PATH) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) && \ $(REPO_BIN) cook host:llvm21 host:clang21 host:lld21 cp -r "$(LLVM_TARGET)/stage/usr/". "$@.partial" cp -r "$(LLVM_TARGET)/stage.runtime/usr/". "$@.partial" diff --git a/recipes/dev/gcc13/recipe.toml b/recipes/dev/gcc13/recipe.toml index 5b408a9f1..d6103ed2a 100644 --- a/recipes/dev/gcc13/recipe.toml +++ b/recipes/dev/gcc13/recipe.toml @@ -4,7 +4,12 @@ branch = "redox-13.2.0" shallow_clone = true script = """ DYNAMIC_INIT -COOKBOOK_AUTORECONF=autoreconf2.69 autotools_recursive_regenerate -I"$(realpath ./config)" +export COOKBOOK_AUTORECONF=$( + command -v autoreconf2.69 2>/dev/null || \\ + (autoreconf --version 2>/dev/null | grep -q '2\\.69' && command -v autoreconf) || \\ + (echo "Error: Autoconf 2.69 required" >&2; exit 1) +) +autotools_recursive_regenerate -I"$(realpath ./config)" LIBTOOL_BUILD_AUX="${COOKBOOK_LIBTOOL_DIR:-$COOKBOOK_HOST_SYSROOT}"/share/libtool/build-aux cp -fpv "$LIBTOOL_BUILD_AUX"/{config.sub,config.guess,install-sh} libiberty/ cp -fpv "$LIBTOOL_BUILD_AUX"/{config.sub,config.guess,install-sh} zlib/contrib/minizip/ diff --git a/recipes/dev/rust/recipe.toml b/recipes/dev/rust/recipe.toml index a295feab6..8147b8524 100644 --- a/recipes/dev/rust/recipe.toml +++ b/recipes/dev/rust/recipe.toml @@ -54,7 +54,11 @@ fi # Don't poison the stage1 compiler (host -> host) unset AR AS CC CXX LD LDFLAGS NM OBJCOPY OBJDUMP RANLIB READELF RUSTFLAGS CARGO_ENCODED_RUSTFLAGS STRIP -SSL_CERT_FILE="/etc/ssl/certs/ca-certificates.crt" \ +# Curl fix for some platform +for cert in "/etc/ssl/certs/ca-certificates.crt" \ + "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem" +do if [ -f "$cert" ]; then export SSL_CERT_FILE="$cert"; break; fi; done + python3 "${COOKBOOK_SOURCE}/x.py" install \ --config config.toml \ --jobs ${COOKBOOK_MAKE_JOBS} diff --git a/recipes/tools/gnu-binutils/recipe.toml b/recipes/tools/gnu-binutils/recipe.toml index b0a4f96d6..6366a7235 100644 --- a/recipes/tools/gnu-binutils/recipe.toml +++ b/recipes/tools/gnu-binutils/recipe.toml @@ -4,8 +4,12 @@ blake3 = "f074c81313b70eabc58ce9a9411cd771c5fa2433792d0ad8abcc45f603f58ed6" patches = ["01_build_fix.patch"] script = """ DYNAMIC_INIT - -COOKBOOK_AUTORECONF=autoreconf2.69 autotools_recursive_regenerate -I"$(realpath ./config)" +export COOKBOOK_AUTORECONF=$( + command -v autoreconf2.69 2>/dev/null || \\ + (autoreconf --version 2>/dev/null | grep -q '2\\.69' && command -v autoreconf) || \\ + (echo "Error: Autoconf 2.69 required" >&2; exit 1) +) +autotools_recursive_regenerate -I"$(realpath ./config)" cp -fpv ${COOKBOOK_HOST_SYSROOT}/share/libtool/build-aux/{config.sub,config.guess,install-sh} libiberty/ """ diff --git a/src/cook/script.rs b/src/cook/script.rs index bd753e6f3..43c327079 100644 --- a/src/cook/script.rs +++ b/src/cook/script.rs @@ -47,7 +47,7 @@ COOKBOOK_AUTORECONF="autoreconf" autotools_recursive_regenerate() { for f in $(find . -name configure.ac -o -name configure.in -type f | sort); do echo "* autotools regen in '$(dirname $f)'..." - ( cd "$(dirname "$f")" && "${COOKBOOK_AUTORECONF}" -fvi "$@" -I${COOKBOOK_HOST_SYSROOT}/share/aclocal ) + ( cd "$(dirname "$f")" && "${COOKBOOK_AUTORECONF}" -fvi "$@" -I${COOKBOOK_LIBTOOL_DIR:-$COOKBOOK_HOST_SYSROOT}/share/aclocal ) done }