Adapt changes needed for linux-relibc

This commit is contained in:
Wildan M 2026-05-03 09:39:01 +07:00
parent f8c83ed80d
commit 6862a7b98d
No known key found for this signature in database
GPG Key ID: 01AC53185C679C79
6 changed files with 51 additions and 10 deletions

2
Cargo.lock generated
View File

@ -917,7 +917,7 @@ dependencies = [
[[package]]
name = "redoxer"
version = "0.2.63"
source = "git+https://gitlab.redox-os.org/redox-os/redoxer.git#67af2b7543ff8fb2eaba6699ac9d331dfe2d0f8c"
source = "git+https://gitlab.redox-os.org/redox-os/redoxer.git#e4c40952b1a3c2da74557c62c1e51f5c6ab699f7"
dependencies = [
"anyhow",
"dirs",

View File

@ -392,14 +392,14 @@ endif
# BUILD RUST ---------------------------------------------------
else
$(PREFIX)/rust-install: | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG)
$(PREFIX)/rust-install: | $(PREFIX)/gcc-install $(PREFIX)/libtool-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:$$PATH" \
$(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) && \
export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$(ROOT)/$(PREFIX)/gcc-install/bin:$$PATH" \
$(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) && \
$(REPO_BIN) cook host:llvm21 host:rust
cp -r "$(RUST_TARGET)/stage/usr/". "$@.partial"
cp -r "$(LLVM_TARGET)/stage/usr/". "$@.partial"

View File

@ -0,0 +1,36 @@
[llvm]
download-ci-llvm = false
static-libstdcpp = false
link-shared = true
[build]
host = ["TARGET"]
target = ["TARGET", "COOKBOOK_TARGET"]
cargo-native-static = true
submodules = false
docs = false
tools = ["cargo", "clippy", "rustdoc", "rustfmt", "src"]
extended = true
verbose = 1
[install]
prefix = "install"
sysconfdir = "etc"
[rust]
backtrace = false
codegen-tests = false
[target.COOKBOOK_TARGET]
cc = "COOKBOOK_GNU_TARGET-gcc"
cxx = "COOKBOOK_GNU_TARGET-g++"
ar = "COOKBOOK_GNU_TARGET-ar"
linker = "COOKBOOK_GNU_TARGET-gcc"
crt-static = false
llvm-config = "COOKBOOK_SYSROOT/bin/llvm-config"
[target.aarch64-unknown-linux-gnu]
llvm-config = "COOKBOOK_TOOLCHAIN/bin/llvm-config"
[target.x86_64-unknown-linux-gnu]
llvm-config = "COOKBOOK_TOOLCHAIN/bin/llvm-config"

View File

@ -20,9 +20,12 @@ dev-dependencies = [
script = """
if [ "${COOKBOOK_HOST_SYSROOT}" = "/usr" ]; then
cat ${COOKBOOK_RECIPE}/config-bootstrap.toml > config.toml
sed -i "s|TARGET|${TARGET}|g" config.toml
OS=$(echo "${TARGET}" | cut -d - -f3)
cat ${COOKBOOK_RECIPE}/config-cross-$OS.toml > config.toml
sed -i "s|COOKBOOK_TOOLCHAIN|${COOKBOOK_TOOLCHAIN}|g" config.toml
sed -i "s|COOKBOOK_TARGET|${COOKBOOK_CROSS_TARGET}|g" config.toml
sed -i "s|COOKBOOK_GNU_TARGET|${COOKBOOK_CROSS_GNU_TARGET}|g" config.toml
sed -i "s|TARGET|${TARGET}|g" config.toml
else

View File

@ -11,10 +11,12 @@ COOKBOOK_CONFIGURE_FLAGS+=(
--enable-libstdcxx-threads
)
# TODO: Investigate why mutex is not available in riscv64
if [ "${TARGET}" = "riscv64gc-unknown-redox" ]; then
COOKBOOK_CONFIGURE_FLAGS+=( --without-libstdcxx-zoneinfo )
fi
# TODO: Investigate why mutex is not available in these platforms
case "${TARGET}" in
"riscv64gc-unknown-redox" | *-unknown-linux-relibc)
COOKBOOK_CONFIGURE_FLAGS+=( --without-libstdcxx-zoneinfo )
;;
esac
CPPINCLUDE="${COOKBOOK_HOST_SYSROOT}/$TARGET/include/c++/13.2.0"
export CPPFLAGS+=" -I${CPPINCLUDE} -I${CPPINCLUDE}/$TARGET/bits"