From 034f1accb9d86ff69c3d1f4f62ebf264efabf953 Mon Sep 17 00:00:00 2001 From: jerry Date: Mon, 11 Nov 2024 02:42:27 +0000 Subject: [PATCH] [#453] Document how to make cross-compilation work with buildroot --- doc/cross-compile/buildroot.md | 47 ++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/doc/cross-compile/buildroot.md b/doc/cross-compile/buildroot.md index 5fa420e73..445803692 100644 --- a/doc/cross-compile/buildroot.md +++ b/doc/cross-compile/buildroot.md @@ -1,39 +1,52 @@ # How to make cross-compilation work with buildroot -1. install the build dependencies on your host PC, like: cmake, g++, clang... -2. install the `rust` toolchain: +1. Install the build dependencies on your host PC, like: cmake, g++, clang... + +2. Install the `rust` toolchain: ```console curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` -3. add the arm64 target for Rust: `rustup target add aarch64-unknown-linux-gnu` -4. modify the arm64 target name to suit your cross-compilation tool, need to - create this file `~/.cargo/config.toml`, add: +3. Add the arm64 target for Rust: + + ```console + rustup target add aarch64-unknown-linux-gnu + ``` + +4. Modify the arm64 target name to suit your cross-compilation tool, need to + create this file `~/.cargo/config.toml`, add the below code, + "aarch64-buildroot-linux-GNU-gcc" which is your real cross-compilation tool + name: ```console [target.aarch64-unknown-linux-gnu] linker = "aarch64-buildroot-linux-gnu-gcc" ``` - "aarch64-buildroot-linux-GNU-gcc" is your real cross-compilation tool name -5. source your cross-compilation buildroot environment: - `source /to/your/environment-setup`, this file should be in your buildroot - folder +5. Source your cross-compilation buildroot environment: + + ```console + source /to/your/environment-setup + ``` + + The `environment-setup` file should be in your buildroot directory. + +6. Add the buildroot sysroot on host PC environment: -6. add the buildroot sysroot on host PC environment: ```console export BINDGEN_EXTRA_CLANG_ARGS="--sysroot=/to/your/sysroot" ``` + 7. Change to the iceoryx2 directory ```console cd iceoryx2 ``` -8. cmake -S . -B build -DBUILD_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=../\_OUTPUT - -DRUST_TARGET_TRIPLET='aarch64-unknown-linux-GNU' - -9. make -j8 - -10. make install +8. Configure, build and install iceoryx2 + ```console + cmake -S . -B build -DBUILD_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=../\_OUTPUT -DRUST_TARGET_TRIPLET='aarch64-unknown-linux-GNU' + cmake --build build + cmake --install build + ``` -Finally, you can get the arm64 libs, include files in the `_OUTPUT` folder. +Finally, you can get the arm64 libs, include files in the `_OUTPUT` directory.