diff --git a/mk/prefix.mk b/mk/prefix.mk index ebe52f5be..276634b61 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -72,7 +72,7 @@ ifeq ($(PODMAN_BUILD),1) else rm -rf "$@" cp -r "$(PREFIX)/relibc-install/" "$@" - cp -r "$(PREFIX)/libtool-install/". "$@.partial" + cp -r "$(PREFIX)/libtool-install/". "$@" # adapt path for libtoolize $(SED) -i 's|/usr/share|$(ROOT)/$@/share|g' "$@/bin/libtoolize" touch "$@" @@ -124,7 +124,7 @@ ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @echo "\033[1;36;49mBuilding gcc-freestanding-install\033[0m" - rm -rf "$@.partial" "$@" $(PREFIX)/relibc-freestanding-install $(PREFIX)/sysroot + rm -rf "$@.partial" "$@" $(PREFIX)/relibc-freestanding-install $(PREFIX)/sysroot mkdir -p "$@.partial" $(PREFIX)/relibc-freestanding-install/$(TARGET)/include export CI=1 PATH="$(ROOT)/$(PREFIX)/binutils-install/bin:$$PATH" \ COOKBOOK_CLEAN_BUILD=true COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) \ @@ -132,12 +132,13 @@ else ./target/release/repo cook host:gcc13 cp -r "$(GCC_TARGET)/stage/usr/". "$@.partial" cp -r "$(GCC_TARGET)/stage.cxx/usr/". "$@.partial" + cp -r "$(PREFIX)/binutils-install/". "$@.partial" rm -rf $(PREFIX)/relibc-freestanding-install touch "$@.partial" mv "$@.partial" "$@" endif -$(PREFIX)/relibc-freestanding-install: $(PREFIX)/gcc-freestanding-install $(PREFIX)/binutils-install | $(FSTOOLS_TAG) $(CONTAINER_TAG) +$(PREFIX)/relibc-freestanding-install: $(PREFIX)/gcc-freestanding-install | $(FSTOOLS_TAG) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @@ -145,8 +146,8 @@ else rm -rf "$@.partial" "$@" mkdir -p "$@.partial/$(TARGET)" export CARGO="env -u CARGO -u RUSTUP_TOOLCHAIN cargo" && \ - export PATH="$(ROOT)/$(PREFIX)/gcc-freestanding-install/bin:$(ROOT)/$(PREFIX)/binutils-install/bin:$$PATH" && \ - export CC_$(subst -,_,$(TARGET))="$(GNU_TARGET)-gcc -isystem $(ROOT)/$@.partial/$(GNU_TARGET)/include" && \ + export PATH="$(ROOT)/$(PREFIX)/gcc-freestanding-install/bin:$$PATH" && \ + export CC_$(subst -,_,$(TARGET))="$(GNU_TARGET)-gcc -isystem $(ROOT)/$@.partial/$(GNU_TARGET)/include" LINKFLAGS="" && \ export CI=1 COOKBOOK_CLEAN_BUILD=true COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(HOST_TARGET) && \ ./target/release/repo cook relibc cp -r "$(RELIBC_FREESTANDING_TARGET)/stage/usr/". "$@.partial/$(TARGET)" @@ -154,7 +155,7 @@ else mv "$@.partial" "$@" endif -$(PREFIX)/gcc-install: $(PREFIX)/relibc-freestanding-install $(PREFIX)/binutils-install $(PREFIX)/libtool-install | $(FSTOOLS_TAG) $(CONTAINER_TAG) +$(PREFIX)/gcc-install: $(PREFIX)/relibc-freestanding-install $(PREFIX)/libtool-install | $(FSTOOLS_TAG) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @@ -167,8 +168,9 @@ else mkdir -p "$@.partial" "$@-build.partial" cp -r "$(PREFIX)/gcc-freestanding-install/". "$@.partial" cp -r "$(PREFIX)/relibc-freestanding-install/". "$@.partial" - cp -r "$(PREFIX)/binutils-install/". "$@.partial" cp -r "$(PREFIX)/libtool-install/". "$@.partial" + @#TODO: how to make this not conflict with libc? + rm -f "$@.partial/lib/gcc/$(GNU_TARGET)/13.2.0/include/limits.h" # libgcc export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \ $(MAKE) -C "$(ROOT)/$(GCC_TARGET)/build" all-target-libgcc && \ diff --git a/recipes/core/relibc/recipe.toml b/recipes/core/relibc/recipe.toml index 938414b5d..046479417 100644 --- a/recipes/core/relibc/recipe.toml +++ b/recipes/core/relibc/recipe.toml @@ -1,5 +1,5 @@ -# [source] -# git = "https://gitlab.redox-os.org/redox-os/relibc.git" +[source] +git = "https://gitlab.redox-os.org/redox-os/relibc.git" [build] template = "custom" diff --git a/recipes/libs/libstdcxx-v3/recipe.toml b/recipes/libs/libstdcxx-v3/recipe.toml index d9b4a145f..892629216 100644 --- a/recipes/libs/libstdcxx-v3/recipe.toml +++ b/recipes/libs/libstdcxx-v3/recipe.toml @@ -3,26 +3,26 @@ same_as = "../../dev/gcc13" [build] template = "custom" -dependencies = [ - "libgmp", - "libmpfr", - "mpc", - "zlib" -] script = """ DYNAMIC_INIT # this results C++ missing nice stuff like mutex # our prefix workaround this by compiling twice -if [ ! -z "${COOKBOOK_CROSS_GNU_TARGET}" ]; then +if [[ -n "$COOKBOOK_CROSS_GNU_TARGET" ]]; then COOKBOOK_STAGE+="/usr" COOKBOOK_CONFIGURE_FLAGS=( --prefix="" --host="${GNU_TARGET}" --disable-hosted-libstdcxx + --with-cross-host="${COOKBOOK_CROSS_GNU_TARGET}" ) fi +COOKBOOK_CONFIGURE_FLAGS+=( + --enable-threads=posix + --enable-libstdcxx-threads +) + CPPINCLUDE="${COOKBOOK_HOST_SYSROOT}/$TARGET/include/c++/13.2.0" export CPPFLAGS+=" -I${CPPINCLUDE} -I${CPPINCLUDE}/$TARGET/bits" COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/libstdc++-v3/configure"