setting up for cross-platform building

pull/9/head
prplV 2024-08-23 11:57:41 +03:00
parent 2b44b79bca
commit 28cbb3d733
3 changed files with 41 additions and 5 deletions

6
.cargo/config.toml Normal file
View File

@ -0,0 +1,6 @@
[target.riscv64gc-unknown-linux-gnu]
runner = "riscv64-unknown-elf-gdb -q -x gdb_init"
linker = "riscv64-linux-gnu-gcc"
[build]
target = "x86_64-unknown-linux-gnu"

View File

@ -7,7 +7,7 @@ in-container integrating util to handle processes runtime
## Depends on
- `rustup (>=1.27.1)`
## Local init
## Building
1. Clone this repo `runner-rs`
@ -15,22 +15,43 @@ in-container integrating util to handle processes runtime
git clone https://link-to-project
~~~
2. Enter project's dir
2. Enter project's dir and set up toolchain list to compile code for RISC-V and AMD64
> [!NOTE]
> Cargo is configured to build an app for amd64/linux defaultly. RISC-based compilation is optional.
~~~bash
cd runner-rs/
rustup target add riscv64gc-unknown-linux-gnu
rustup target add x86_64-unknown-linux-gnu
~~~
3. Release build of app
3.1. Release build of app for amd64/linux
~~~bash
cargo build --release
~~~
4. Execution
3.2. Release build of app for riscv64/linux
~~~bash
./target/release/runner-rs
cargo build --release --target riscv64gc-unknown-linux-gnu
~~~
## Execution for amd64/linux
~~~bash
./target/x86_64-unknown-linux-gnu/release/runner-rs
~~~
or
~~~bash
cargo run --release
~~~
## Execution for riscv64/linux
~~~bash
./target/riscv64gc-unknown-linux-gnu/release/runner-rs
~~~
or
~~~bash

9
gdb_init Normal file
View File

@ -0,0 +1,9 @@
set history save on
set confirm off
set remotetimeout 240
target extended-remote :3333
set print asm-demangle on
monitor reset halt
load
continue
# quit