3rd Party Toolchains

A “3rd party toolchain” is an officially supported toolchain provided by an external organization. Several of these are available.

GNU ARM Embedded

  1. Download and install a GNU ARM Embedded build for your operating system and extract it on your file system.

    Warning

    Do not install the toolchain into a path with spaces. On Windows, we’ll assume you install into the directory C:\gnu_arm_embedded.

    Warning

    On macOS Catalina or later you might need to change a security policy for the toolchain to be able to run from the terminal.

  2. Set these environment variables:

    • Set ZEPHYR_TOOLCHAIN_VARIANT to gnuarmemb.

    • Set GNUARMEMB_TOOLCHAIN_PATH to the toolchain installation directory.

  3. To check that you have set these variables correctly in your current environment, follow these example shell sessions (the GNUARMEMB_TOOLCHAIN_PATH values may be different on your system):

    # Linux, macOS:
    $ echo $ZEPHYR_TOOLCHAIN_VARIANT
    gnuarmemb
    $ echo $GNUARMEMB_TOOLCHAIN_PATH
    /home/you/Downloads/gnu_arm_embedded
    
    # Windows
    > echo %ZEPHYR_TOOLCHAIN_VARIANT%
    gnuarmemb
    > echo %GNUARMEMB_TOOLCHAIN_PATH%
    C:\gnu_arm_embedded
    

DesignWare ARC MetaWare Development Toolkit (MWDT)

  1. You need to have ARC MWDT installed on your host.

  2. Set these environment variables:

    • Set ZEPHYR_TOOLCHAIN_VARIANT to arcmwdt.

    • Set ARCMWDT_TOOLCHAIN_PATH to the toolchain installation directory. MWDT installation provides METAWARE_ROOT so simply set ARCMWDT_TOOLCHAIN_PATH to $METAWARE_ROOT/../ (Linux) or %METAWARE_ROOT%\..\ (Windows)

  3. To check that you have set these variables correctly in your current environment, follow these example shell sessions (the ARCMWDT_TOOLCHAIN_PATH values may be different on your system):

    # Linux:
    $ echo $ZEPHYR_TOOLCHAIN_VARIANT
    arcmwdt
    $ echo $ARCMWDT_TOOLCHAIN_PATH
    /home/you/ARC/MWDT_2019.12/
    
    # Windows
    > echo %ZEPHYR_TOOLCHAIN_VARIANT%
    arcmwdt
    > echo %ARCMWDT_TOOLCHAIN_PATH%
    C:\ARC\MWDT_2019.12\
    

Crosstool-NG

You can build toolchains from source code using crosstool-NG.

  1. Follow the steps on the crosstool-NG website to prepare your host.

  2. Follow the Zephyr SDK with Crosstool NG instructions to build your toolchain. Repeat as necessary to build toolchains for multiple target architectures.

    You will need to clone the sdk-ng repo and run the following command:

    ./go.sh <arch>
    

    Note

    Currently, only i586 and Arm toolchain builds are verified.

  3. Set these environment variables:

    • Set ZEPHYR_TOOLCHAIN_VARIANT to xtools.

    • Set XTOOLS_TOOLCHAIN_PATH to the toolchain build directory.

  4. To check that you have set these variables correctly in your current environment, follow these example shell sessions (the XTOOLS_TOOLCHAIN_PATH values may be different on your system):

    # Linux, macOS:
    $ echo $ZEPHYR_TOOLCHAIN_VARIANT
    xtools
    $ echo $XTOOLS_TOOLCHAIN_PATH
    /Volumes/CrossToolNGNew/build/output/