mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-17 23:44:17 +08:00
Workaround support for rust-lld
This commit is contained in:
parent
4ce24cee73
commit
83a7659262
@ -10,6 +10,7 @@ GCC_TARGET=recipes/dev/gcc13/target/$(HOST_TARGET)/$(TARGET)
|
||||
LIBSTDCXX_TARGET=recipes/libs/libstdcxx-v3/target/$(TARGET)/$(HOST_TARGET)
|
||||
RELIBC_FREESTANDING_TARGET=recipes/core/relibc/target/$(TARGET)/$(HOST_TARGET)
|
||||
RELIBC_TARGET=recipes/core/relibc/target/$(TARGET)
|
||||
LLVM_TARGET=recipes/dev/llvm21/target/$(HOST_TARGET)/$(TARGET)
|
||||
RUST_TARGET=recipes/dev/rust/target/$(HOST_TARGET)/$(TARGET)
|
||||
|
||||
# official RISC-V support introduced in newer version
|
||||
@ -332,8 +333,9 @@ else
|
||||
rm -rf "$@.partial" "$@"
|
||||
export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \
|
||||
$(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) && \
|
||||
./target/release/repo cook host:rust
|
||||
./target/release/repo cook host:llvm21 host:rust
|
||||
cp -r "$(RUST_TARGET)/stage/usr/". "$@.partial"
|
||||
cp -r "$(LLVM_TARGET)/stage/usr/". "$@.partial"
|
||||
mv "$@.partial" "$@"
|
||||
endif
|
||||
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
[llvm]
|
||||
download-ci-llvm = false
|
||||
static-libstdcpp = false
|
||||
link-shared = false
|
||||
# shared with lld
|
||||
link-shared = true
|
||||
|
||||
[build]
|
||||
host = ["TARGET"]
|
||||
|
||||
@ -14,6 +14,7 @@ dependencies = [
|
||||
dev-dependencies = [
|
||||
"llvm21.dev",
|
||||
"llvm21.runtime",
|
||||
"lld21",
|
||||
"host:llvm21",
|
||||
"host:llvm21.dev",
|
||||
"host:llvm21.runtime",
|
||||
@ -51,7 +52,7 @@ sed -i "s|COOKBOOK_TOOLCHAIN|${COOKBOOK_TOOLCHAIN}|g" config.toml
|
||||
fi
|
||||
|
||||
# Don't poison the stage1 compiler (host -> host)
|
||||
unset AR AS CC CXX LD LDFLAGS NM OBJCOPY OBJDUMP RANLIB READELF RUSTFLAGS STRIP
|
||||
unset AR AS CC CXX LD LDFLAGS NM OBJCOPY OBJDUMP RANLIB READELF RUSTFLAGS CARGO_ENCODED_RUSTFLAGS STRIP
|
||||
|
||||
python3 "${COOKBOOK_SOURCE}/x.py" install \
|
||||
--config config.toml \
|
||||
@ -60,6 +61,18 @@ python3 "${COOKBOOK_SOURCE}/x.py" install \
|
||||
mkdir -p "${COOKBOOK_STAGE}"/usr
|
||||
rsync -av --delete "${COOKBOOK_BUILD}"/install/* "${COOKBOOK_STAGE}"/usr/
|
||||
rm -rf "${COOKBOOK_STAGE}"/usr/lib/rustlib/*.log
|
||||
|
||||
# workaround for rust.lld, needed by e.g. compiling bootloader
|
||||
# https://github.com/rust-lang/rust/issues/143076#issuecomment-3011710678
|
||||
LLD_DIR="${COOKBOOK_STAGE}/usr/lib/rustlib/$TARGET/bin"
|
||||
mkdir -p $LLD_DIR/gcc-ld
|
||||
cp ${COOKBOOK_SYSROOT}/usr/bin/lld $LLD_DIR/rust-lld
|
||||
ln -s rust-lld $LLD_DIR/wasm-component-ld
|
||||
ln -s ../rust-lld $LLD_DIR/gcc-ld/ld.lld
|
||||
ln -s ../rust-lld $LLD_DIR/gcc-ld/ld64.lld
|
||||
ln -s ../rust-lld $LLD_DIR/gcc-ld/lld-link
|
||||
ln -s ../rust-lld $LLD_DIR/gcc-ld/wasm-ld
|
||||
ln -s ../../../libLLVM.so.21.1 $LLD_DIR/../lib/libLLVM.so.21.1
|
||||
"""
|
||||
|
||||
[[optional-packages]]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user