mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-08 14:16:47 +00:00
* la64能够进入到kernel_main * ci: 添加为ubuntu编译qemu-loongarch64的脚本 * feat: la64能输出hello world * la64 安装gcc && 配置github ci * chore: 更新CI工作流和构建脚本中的Docker镜像版本至v1.10 Signed-off-by: longjin <longjin@DragonOS.org>
85 lines
2.6 KiB
Bash
Executable File
85 lines
2.6 KiB
Bash
Executable File
# 当前脚本用于初始化自定义的Rust工具链
|
||
if [ -z "$(which cargo)" ]; then
|
||
echo "尚未安装Rust,请先安装Rust"
|
||
exit 1
|
||
fi
|
||
|
||
WORK_DIR=$(pwd)
|
||
RUST_SRC_VERSION=1.66.0
|
||
# 初始化bare bone工具链
|
||
DRAGONOS_UNKNOWN_ELF_PATH=$(rustc --print sysroot)/lib/rustlib/x86_64-unknown-dragonos
|
||
mkdir -p ${DRAGONOS_UNKNOWN_ELF_PATH}/lib
|
||
# 设置工具链配置文件
|
||
echo \
|
||
"{\
|
||
\"arch\": \"x86_64\",
|
||
\"code-model\": \"kernel\",
|
||
\"cpu\": \"x86-64\",
|
||
\"os\": \"dragonos\",
|
||
\"target-endian\": \"little\",
|
||
\"target-pointer-width\": \"64\",
|
||
\"target-c-int-width\": \"32\",
|
||
\"data-layout\": \"e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128\",
|
||
\"disable-redzone\": true,
|
||
\"features\": \"-mmx,-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-3dnow,-3dnowa,-avx,-avx2,+soft-float\",
|
||
\"linker\": \"rust-lld\",
|
||
\"linker-flavor\": \"ld.lld\",
|
||
\"llvm-target\": \"x86_64-unknown-none\",
|
||
\"max-atomic-width\": 64,
|
||
\"panic-strategy\": \"abort\",
|
||
\"position-independent-executables\": true,
|
||
\"relro-level\": \"full\",
|
||
\"stack-probes\": {
|
||
\"kind\": \"inline-or-call\",
|
||
\"min-llvm-version-for-inline\": [
|
||
16,
|
||
0,
|
||
0
|
||
]
|
||
},
|
||
\"static-position-independent-executables\": true,
|
||
\"supported-sanitizers\": [
|
||
\"kcfi\"
|
||
],
|
||
\"target-pointer-width\": \"64\"
|
||
}" > ${DRAGONOS_UNKNOWN_ELF_PATH}/target.json || exit 1
|
||
|
||
|
||
# echo \
|
||
# "{
|
||
# \"llvm-target\": \"x86_64-unknown-none\",
|
||
# \"data-layout\": \"e-m:e-i64:64-f80:128-n8:16:32:64-S128\",
|
||
# \"arch\": \"x86_64\",
|
||
# \"target-endian\": \"little\",
|
||
# \"target-pointer-width\": \"64\",
|
||
# \"target-c-int-width\": \"32\",
|
||
# \"os\": \"dragonos\",
|
||
# \"linker\": \"rust-lld\",
|
||
# \"linker-flavor\": \"ld.lld\",
|
||
# \"executables\": true,
|
||
# \"features\": \"-mmx,-sse,+soft-float\",
|
||
# \"disable-redzone\": true,
|
||
# \"panic-strategy\": \"abort\"
|
||
# }" > ${DRAGONOS_UNKNOWN_ELF_PATH}/target.json || exit 1
|
||
|
||
|
||
# 编译标准库 (仍存在问题,不能编译)
|
||
# mkdir -p build || exit 1
|
||
# cd build
|
||
# if [ ! -d "rust" ]; then
|
||
# git clone -b $RUST_SRC_VERSION https://github.com/rust-lang/rust.git --depth=1 --recursive || exit 1
|
||
# fi
|
||
|
||
# cd rust
|
||
# git checkout $RUST_SRC_VERSION
|
||
# git submodule update --init --recursive
|
||
|
||
# cargo clean
|
||
# export RUST_COMPILER_RT_ROOT=$(pwd)/src/llvm-project/compiler-rt
|
||
# CARGO_PROFILE_RELEASE_DEBUG=0 \
|
||
# CARGO_PROFILE_RELEASE_DEBUG_ASSERTIONS=true \
|
||
# RUSTC_BOOTSTRAP=1 \
|
||
# RUSTFLAGS="-Cforce-unwind-tables=yes -Cembed-bitcode=yes" \
|
||
# __CARGO_DEFAULT_LIB_METADATA="stablestd" \
|
||
# ./x.py build --target x86_64-unknown-dragonos || exit 1
|