This is an automated email from the ASF dual-hosted git repository. acassis pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 6f75c032eb536c67c190a826f590f6a6ff57a5a0 Author: Marco Casaroli <[email protected]> AuthorDate: Tue Sep 8 22:53:11 2026 +0200 Documentation, tools/ci: Say where the NXFLAT tools actually come from. The download link is dead: bitbucket.org/nuttx/buildroot is gone, and the buildroot that still carries ldnxflat is github.com/patacongo/buildroot. The instructions were also more than is needed. mknxflat came in tree with PR #19600, so only ldnxflat has to be built, and an ordinary arm-none-eabi GCC compiles and links NXFLAT modules: a board does not have to select CONFIG_ARM_TOOLCHAIN_BUILDROOT to use them. What ldnxflat does need is a binutils source and build tree, because it reads its input through libbfd. The CI test list said mknxflat is what the container lacks. It is in tree now; ldnxflat is the one that is missing. Assisted-by: Claude Opus 5 (1M context) <[email protected]> Signed-off-by: Marco Casaroli <[email protected]> --- Documentation/components/nxflat.rst | 28 ++++++++++++++++------------ tools/ci/testlist/arm-06.dat | 2 +- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/Documentation/components/nxflat.rst b/Documentation/components/nxflat.rst index 63c95a29796..ec8e476a4eb 100644 --- a/Documentation/components/nxflat.rst +++ b/Documentation/components/nxflat.rst @@ -147,18 +147,22 @@ which links the module into the NXFLAT binary format. ``tools/mknxflat`` whenever ``CONFIG_NXFLAT`` is selected, so there is nothing to install. -``ldnxflat`` is not part of NuttX and has to be built from the buildroot -package, which can be downloaded from -`Bitbucket.org <https://bitbucket.org/nuttx/buildroot/downloads>`__. You -will need version 0.1.7 or later: - -- Unpack the package and ``cd`` into the resulting directory. -- Copy a configuration file into the top buildroot directory: - ``cp boards/abc-defconfig-x.y.z .config``. -- Run ``make menuconfig`` and select the NXFLAT toolchain. Building GCC - can be omitted if you already have a toolchain of your own. -- Run ``make``. The tool binaries are left under - ``build_abc/staging_dir/bin``; put that directory on your ``PATH``. +``ldnxflat`` is not part of NuttX and cannot be: it is GPL and derives from +elf2flt. It lives in the NuttX buildroot toolchain, at +`patacongo/buildroot <https://github.com/patacongo/buildroot>`__, under +``toolchain/nxflat``. + +Only that one tool is needed. The rest of the buildroot toolchain is not: +an ordinary ``arm-none-eabi`` GCC compiles and links NXFLAT modules, so a +board does not have to select ``CONFIG_ARM_TOOLCHAIN_BUILDROOT`` to use +them. + +``ldnxflat`` reads its input through libbfd, so it is built against a +binutils source tree and a binutils build of the same version. +``toolchain/nxflat/Makefile`` takes those as ``BINUTILS_DIR`` and +``BINUTILS_DIR1``, and expects an ``arch`` symbolic link naming the target, +``thumb2`` or ``arm``. Where the binutils build leaves ``libbfd.a`` varies, +so the library path may need adjusting. Put the result on your ``PATH``. On ARM, ``arch/arm/src/common/Toolchain.defs`` provides both ``MKNXFLAT`` (with the ``-a`` option following ``CONFIG_ARM_THUMB``) and ``LDNXFLAT``, so diff --git a/tools/ci/testlist/arm-06.dat b/tools/ci/testlist/arm-06.dat index 3d1bf786775..885a2cb9685 100644 --- a/tools/ci/testlist/arm-06.dat +++ b/tools/ci/testlist/arm-06.dat @@ -1,5 +1,5 @@ /arm/r*,CONFIG_ARM_TOOLCHAIN_GNU_EABI -# NXFLAT tools (mknxflat) are not available in the CI container +# ldnxflat is not available in the CI container. mknxflat is in tree. -pimoroni-pico-2-plus:xipfs-nxflat # Boards build by CMake
