diff --git a/.gitignore b/.gitignore index f84a3704ca9005bb7eae4c774a2a0ce369a6f4ef..12fe6090e7c82b39c21702273933e92af7a27717 100644 --- a/.gitignore +++ b/.gitignore @@ -34,7 +34,6 @@ Session.vim !/tests/run-make/thumb-none-qemu/example/.cargo ## Configuration -/config.toml /Makefile config.mk config.stamp diff --git a/config.toml b/config.toml new file mode 100644 index 0000000000000000000000000000000000000000..ece8d957b66d9b18506f89ff8b051ebe5f639a64 --- /dev/null +++ b/config.toml @@ -0,0 +1,5 @@ +[llvm] +download-ci-llvm = false + +[rust] +channel = "dev" diff --git a/extra/bin/bindgen b/extra/bin/bindgen new file mode 100755 index 0000000000000000000000000000000000000000..1056655a931441c5301ab241b8402faf0a406f96 Binary files /dev/null and b/extra/bin/bindgen differ diff --git a/extra/libclang.so b/extra/libclang.so new file mode 100644 index 0000000000000000000000000000000000000000..7968d87f4c7352723e05a803f6bd00ce63d3a224 Binary files /dev/null and b/extra/libclang.so differ diff --git a/extra/libclang.so.20.0.0git b/extra/libclang.so.20.0.0git new file mode 100644 index 0000000000000000000000000000000000000000..7968d87f4c7352723e05a803f6bd00ce63d3a224 Binary files /dev/null and b/extra/libclang.so.20.0.0git differ diff --git a/extra/libclang.so.20.0git b/extra/libclang.so.20.0git new file mode 100644 index 0000000000000000000000000000000000000000..7968d87f4c7352723e05a803f6bd00ce63d3a224 Binary files /dev/null and b/extra/libclang.so.20.0git differ diff --git a/extra/rustlib/lib/libprofiler_builtins-06e8d876529306cf.rlib b/extra/rustlib/lib/libprofiler_builtins-06e8d876529306cf.rlib new file mode 100644 index 0000000000000000000000000000000000000000..514d7ee08a2f3bbe38948006175babb1b34dab76 Binary files /dev/null and b/extra/rustlib/lib/libprofiler_builtins-06e8d876529306cf.rlib differ diff --git a/extra/rustlib/src.zip b/extra/rustlib/src.zip new file mode 100644 index 0000000000000000000000000000000000000000..f941194a1572f1aa08c7f9f2a08be25d000285c5 Binary files /dev/null and b/extra/rustlib/src.zip differ diff --git a/rust_build.sh b/rust_build.sh new file mode 100644 index 0000000000000000000000000000000000000000..bce722d01cdbb4a3bfbb7b7bca78c1a60b495c79 --- /dev/null +++ b/rust_build.sh @@ -0,0 +1,128 @@ +#!/bin/bash +set -e + +CURRENT_DIR=$(pwd) + +pushd CURRENT_DIR > /dev/null + # 获取rust_std包 + mkdir -p build/cache/2025-01-09 + pushd build/cache/2025-01-09 > /dev/null + wget https://repo.huaweicloud.com/harmonyos/compiler/rust/1.84.0/rust-std-1.84.0-x86_64-unknown-linux-gnu.tar.xz + wget https://repo.huaweicloud.com/harmonyos/compiler/rust/1.84.0/cargo-1.84.0-x86_64-unknown-linux-gnu.tar.xz + wget https://repo.huaweicloud.com/harmonyos/compiler/rust/1.84.0/rustc-1.84.0-x86_64-unknown-linux-gnu.tar.xz + popd > /dev/null + git clone https://gitee.com/openharmony/third_party_llvm-project.git -b llvm-19.1.7 src/llvm-project/ + rm -rf src/llvm-project/.git + # 获取rust_src包 + wget https://repo.huaweicloud.com/harmonyos/compiler/rust/1.85.0/rust_src_1.85.0.tar.gz + mkdir tmp_rust && tar -zxvf rust_src_1.85.0.tar.gz -C tmp_rust/ + + if [[ ! -d src/gcc ]]; then + mkdir -p src/gcc + fi + cp -rf tmp_rust/src/gcc/* src/gcc/ + + if [[ ! -d src/tools/enzyme ]]; then + mkdir -p src/tools/enzyme + fi + cp -rf tmp_rust/src/tools/enzyme/* src/tools/enzyme/ + + if [[ ! -d src/tools/rustc-perf ]]; then + mkdir -p src/tools/rustc-perf + fi + cp -rf tmp_rust/src/tools/rustc-perf/* src/tools/rustc-perf/ + + if [[ ! -d src/tools/cargo ]]; then + mkdir -p src/tools/cargo + fi + cp -rf tmp_rust/src/tools/cargo/* src/tools/cargo/ + + if [[ ! -d src/doc/rust-by-example ]]; then + mkdir -p src/doc/rust-by-example + fi + cp -rf tmp_rust/src/doc/rust-by-example/* src/doc/rust-by-example/ + + if [[ ! -d src/doc/embedded-book ]]; then + mkdir -p src/doc/embedded-book + fi + cp -rf tmp_rust/src/doc/embedded-book/* src/doc/embedded-book/ + + if [[ ! -d src/doc/reference ]]; then + mkdir -p src/doc/reference + fi + cp -rf tmp_rust/src/doc/reference/* src/doc/reference/ + + if [[ ! -d src/doc/edition-guide ]]; then + mkdir -p src/doc/edition-guide + fi + cp -rf tmp_rust/src/doc/edition-guide/* src/doc/edition-guide/ + + if [[ ! -d src/doc/nomicon ]]; then + mkdir -p src/doc/nomicon + fi + cp -rf tmp_rust/src/doc/nomicon/* src/doc/nomicon/ + + if [[ ! -d src/doc/book ]]; then + mkdir -p src/doc/book + fi + cp -rf tmp_rust/src/doc/book/* src/doc/book/ + + if [[ ! -d library/stdarch ]]; then + mkdir -p library/stdarch + fi + cp -rf tmp_rust/library/stdarch/* library/stdarch/ + + if [[ ! -d library/backtrace ]]; then + mkdir -p library/backtrace + fi + cp -rf tmp_rust/library/backtrace/* library/backtrace/ + + cat > ~/.cargo/config < build.log + python3 x.py build --stage 2 >> build.log + echo "stage2 build end" >> build.log + + echo "dist rust-dev build start ..." >> build.log + python3 x.py dist rustc cargo rustfmt clippy rust-analyzer miri llvm-tools >> build.log + python3 x.py dist >> build.log + echo "dist rust build end" >> build.log +popd > /dev/null + +EXTRA_PATH = $CURRENT_DIR/extra +pushd $EXTRA_PATH/rustlib > /dev/null + unzip src.zip +popd > /dev/null + +if [[ ! -d $CURRENT_DIR/build/dist ]]; then + echo "rust build fail" + exit 1 +fi + +echo "start add extra files" +pushd $CURRENT_DIR/build/dist > /dev/null + tar -zxvf rust-1.85.0-dev-x86_64-unknown-linux-gnu.tar.gz + package_dir="rust-1.85.0-dev-x86_64-unknown-linux-gnu" + pushd rust-1.85.0-dev-x86_64-unknown-linux-gnu > /dev/null + echo "----------rust build start-------------" + chmod 777 install.sh && mkdir xxxxx && ./install.sh --prefix="xxxxx" + echo "----------rust build finish------------" + popd > /dev/null + cp -rf $EXTRA_PATH/libclang* $package_dir/xxxxx/lib/ + cp -rf $EXTRA_PATH/bin/* $package_dir/xxxxx/bin/ + cp -rf $EXTRA_PATH/rustlib/src $package_dir/xxxxx/lib/rustlib/ + cp -rf $EXTRA_PATH/rustlib/lib/* $package_dir/xxxxx/lib/rustlib/x86_64-unknown-linux-gnu/lib/ + rm -rf $package_dir/xxxxx/lib/rustlib/x86_64-unknown-linux-gnu/bin +popd > /dev/null +echo "extra files add finish" + +pushd $CURRENT_DIR/build/dist > /dev/null + rm -rf rust-1.85.0-dev-x86_64-unknown-linux-gnu.tar.gz + tar -zcvf rust-1.85.0-dev-x86_64-unknown-linux-gnu.tar.gz rust-1.85.0-dev-x86_64-unknown-linux-gnu +popd > /dev/null diff --git a/src/tools/rust-analyzer/lib/lsp-server/LICENSE-APACHE b/src/tools/rust-analyzer/lib/lsp-server/LICENSE-APACHE deleted file mode 100644 index 1cd601d0a3affae83854be02a0afdec3b7a9ec4d..0000000000000000000000000000000000000000 --- a/src/tools/rust-analyzer/lib/lsp-server/LICENSE-APACHE +++ /dev/null @@ -1 +0,0 @@ -../../LICENSE-APACHE \ No newline at end of file diff --git a/src/tools/rust-analyzer/lib/lsp-server/LICENSE-APACHE b/src/tools/rust-analyzer/lib/lsp-server/LICENSE-APACHE new file mode 120000 index 0000000000000000000000000000000000000000..1cd601d0a3affae83854be02a0afdec3b7a9ec4d --- /dev/null +++ b/src/tools/rust-analyzer/lib/lsp-server/LICENSE-APACHE @@ -0,0 +1 @@ +../../LICENSE-APACHE \ No newline at end of file diff --git a/src/tools/rust-analyzer/lib/lsp-server/LICENSE-MIT b/src/tools/rust-analyzer/lib/lsp-server/LICENSE-MIT deleted file mode 100644 index b2cfbdc7b0b4653afd753a7b07a036dd62e94a67..0000000000000000000000000000000000000000 --- a/src/tools/rust-analyzer/lib/lsp-server/LICENSE-MIT +++ /dev/null @@ -1 +0,0 @@ -../../LICENSE-MIT \ No newline at end of file diff --git a/src/tools/rust-analyzer/lib/lsp-server/LICENSE-MIT b/src/tools/rust-analyzer/lib/lsp-server/LICENSE-MIT new file mode 120000 index 0000000000000000000000000000000000000000..b2cfbdc7b0b4653afd753a7b07a036dd62e94a67 --- /dev/null +++ b/src/tools/rust-analyzer/lib/lsp-server/LICENSE-MIT @@ -0,0 +1 @@ +../../LICENSE-MIT \ No newline at end of file