.. _other_x_compilers:

Other Cross Compilers
######################

This toolchain variant is borrowed from the Linux kernel build system's
mechanism of using a :envvar:`CROSS_COMPILE` environment variable to set up a
GNU-based cross toolchain.

Examples of such "other cross compilers" are cross toolchains that your Linux
distribution packaged, that you compiled on your own, or that you downloaded
from the net. Unlike toolchains specifically listed in
:ref:`toolchains`, the Zephyr build system may not have been
tested with them, and doesn't officially support them. (Nonetheless, the
toolchain set-up mechanism itself is supported.)

Follow these steps to use one of these toolchains.

#. Install a cross compiler suitable for your host and target systems.

   For example, you might install the ``gcc-arm-none-eabi`` package on
   Debian-based Linux systems, or ``arm-none-eabi-newlib`` on Fedora or Red
   Hat:

   .. code-block:: console

      # On Debian or Ubuntu
      sudo apt-get install gcc-arm-none-eabi
      # On Fedora or Red Hat
      sudo dnf install arm-none-eabi-newlib

#. :ref:`Set these environment variables <env_vars>`:

   - Set :envvar:`ZEPHYR_TOOLCHAIN_VARIANT` to ``cross-compile``.
   - Set :envvar:`CROSS_COMPILE` to the common path prefix which your
     toolchain's binaries have, e.g. the path to the directory containing the
     compiler binaries plus the target triplet and trailing dash.

#. To check that you have set these variables correctly in your current
   environment, follow these example shell sessions (the
   :envvar:`CROSS_COMPILE` value may be different on your system):

   .. code-block:: console

      # Linux, macOS:
      $ echo $ZEPHYR_TOOLCHAIN_VARIANT
      cross-compile
      $ echo $CROSS_COMPILE
      /usr/bin/arm-none-eabi-

   You can also set ``CROSS_COMPILE`` as a CMake variable.

When using this option, all of your toolchain binaries must reside in the same
directory and have a common file name prefix.  The ``CROSS_COMPILE`` variable
is set to the directory concatenated with the file name prefix. In the Debian
example above, the ``gcc-arm-none-eabi`` package installs binaries such as
``arm-none-eabi-gcc`` and ``arm-none-eabi-ld`` in directory ``/usr/bin/``, so
the common prefix is ``/usr/bin/arm-none-eabi-`` (including the trailing dash,
``-``).  If your toolchain is installed in ``/opt/mytoolchain/bin`` with binary
names based on target triplet ``myarch-none-elf``, ``CROSS_COMPILE`` would be
set to ``/opt/mytoolchain/bin/myarch-none-elf-``.
