Skip to content

Toolchain Submission Guide

To provide you with a shared library fully compatible with your hardware, we need to replicate your specific build environment. We use a standard CMake Toolchain configuration to ensure that our binaries match your toolchain, system headers, and CPU architecture.

Toolchain Configuration Template

Please fill in the fields marked with <REPLACE_ME> with values specific to your environment. See the commented example below for guidance.

CMakeLists.txt
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# --- Mandatory Information ---

# Target Operating System (usually Linux)
set(CMAKE_SYSTEM_NAME <REPLACE_WITH_OS>)

# Target Architecture
set(CMAKE_SYSTEM_PROCESSOR <REPLACE_WITH_CPU_ARCH>)

# The root directory of your cross-compiler
set(TOOLCHAIN_ROOT "<REPLACE_WITH_TOOLCHAIN_ROOT>")

# Full paths to your compiler binaries
set(CMAKE_C_COMPILER "${TOOLCHAIN_ROOT}/bin/<REPLACE_WITH_C_COMPILER>")
set(CMAKE_CXX_COMPILER "${TOOLCHAIN_ROOT}/bin/<REPLACE_WITH_CXX_COMPILER>")

# --- Optional Information ---

# Path to the target filesystem (libraries/headers)
# set(CMAKE_SYSROOT <REPLACE_WITH_SYSROOT_PATH>)

# Specific optimization or architecture flags
# set(CMAKE_C_FLAGS "<REPLACE_WITH_FLAGS>")
# set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")

Example for a generic AArch64 (64-bit ARM) toolchain:

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(TOOLCHAIN_ROOT "/opt/gcc-arm-10.3-aarch64-none-linux-gnu")
set(CMAKE_C_COMPILER "${TOOLCHAIN_ROOT}/bin/aarch64-none-linux-gnu-gcc")
set(CMAKE_CXX_COMPILER "${TOOLCHAIN_ROOT}/bin/aarch64-none-linux-gnu-g++")

set(CMAKE_C_FLAGS "-march=armv8-a")
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")

What To Send Us

The most critical part of this request is a tarball of the content in TOOLCHAIN_ROOT. After the NDA is signed, please provide the following:

  • Toolchain root: The directory containing your compiler binaries.
  • Architecture Details: Please specify your CMAKE_SYSTEM_PROCESSOR.
  • The Sysroot (Optional): If your system headers and libraries are located outside of the TOOLCHAIN_ROOT, please include this directory as well.
  • Specific Flags (Optional): Include any specific CMAKE_COMPILE_FLAGS if you wish us to use particular optimization or hardware-specific settings when compiling the SDK.

Note

If zipping these folders on Linux, please use the tar command with the -h flag to preserve symbolic links: tar -chzf toolchain_export.tar.gz /path/to/your/toolchain

For more technical details, see the Official CMake Toolchain Documentation. If you have any questions or need assistance please reach out to our engineering team.