Skip to content

Documentation, tools/ci: Say where the NXFLAT tools actually come from - #20093

Open
casaroli wants to merge 2 commits into
apache:masterfrom
casaroli:nxflat-toolchain-docs
Open

Documentation, tools/ci: Say where the NXFLAT tools actually come from#20093
casaroli wants to merge 2 commits into
apache:masterfrom
casaroli:nxflat-toolchain-docs

Conversation

@casaroli

@casaroli casaroli commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Two things in the NXFLAT documentation are no longer true.

The download link is dead. bitbucket.org/nuttx/buildroot returns 404; the buildroot that still carries ldnxflat is patacongo/buildroot.

The instructions also ask for more than is needed. mknxflat came in tree with #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. The page still described building the whole buildroot toolchain through make menuconfig.

What ldnxflat does need, and what the page did not say, is a binutils source tree and a binutils build of the same version, because it reads its input through libbfd.

The CI test list carried the same stale claim: tools/ci/testlist/arm-06.dat says the container lacks mknxflat. It lacks ldnxflat; mknxflat is built from tools/nxflat whenever CONFIG_NXFLAT is set.

Impact

Documentation and one comment. No code, no configuration.

Testing

Verified by doing it: ldnxflat built from patacongo/buildroot against binutils 2.43 libbfd, and lm3s6965-ek:qemu-nxflat built with the stock arm-none-eabi GCC 15.3 rather than the buildroot toolchain, with CONFIG_ARM_TOOLCHAIN_GNU_EABI in place of CONFIG_ARM_TOOLCHAIN_BUILDROOT. It runs under qemu-system-arm -M lm3s6965evb: the errno and hello NXFLAT tests pass.

tools/checkpatch.sh -c -u -m -g passes.

The rest of the dead links

The second commit takes the same dead address out of the other 33 files that carried it, mostly as a "Bitbucket download site" for some board's toolchain. There are no downloads to offer, so those now name the repository and the prose around them says so.

Every repository under the old Bitbucket organisation is gone, not just buildroot:

address status
bitbucket.org/nuttx/buildroot 404
bitbucket.org/nuttx/nuttx 404
bitbucket.org/nuttx/tools 404
bitbucket.org/nuttx/uclibc 404
bitbucket.org/nuttx/nxwidgets 404
bitbucket.org/patacongo/obsoleted 200, left alone

Only the buildroot ones are changed here, because patacongo/buildroot is a verified replacement. The others each need a decision about what replaces them, which is not this patch.

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 apache#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) <noreply@anthropic.com>
Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
… exists.

bitbucket.org/nuttx/buildroot returns 404, as does every other repository
under that Bitbucket organisation.  The buildroot that still carries the
NuttX toolchain, ldnxflat included, is github.com/patacongo/buildroot.

Thirty three files carried the dead address, most of them as a "Bitbucket
download site" for a board's toolchain.  There are no downloads to offer, so
those now name the repository, and the surrounding prose says so.

The other dead Bitbucket addresses are left alone: nuttx/nuttx, nuttx/tools,
nuttx/uclibc and nuttx/nxwidgets need a decision each about what replaces
them, which is not this patch.  patacongo/obsoleted is still there.

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
@casaroli casaroli changed the title Documentation, tools/ci: Say where the NXFLAT tools actually come from Documentation: Fix the dead Bitbucket links, and say where the NXFLAT tools come from Sep 8, 2026
@casaroli casaroli changed the title Documentation: Fix the dead Bitbucket links, and say where the NXFLAT tools come from Documentation, tools/ci: Say where the NXFLAT tools actually come from Sep 8, 2026
@casaroli
casaroli force-pushed the nxflat-toolchain-docs branch from 0179fe7 to a87e30c Compare September 8, 2026 21:08
@github-actions github-actions Bot added Area: CI Size: M The size of the change in this PR is medium labels Sep 8, 2026
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

MemBrowse Memory Report

No memory changes detected for:

@xiaoxiang781216

Copy link
Copy Markdown
Contributor

@casaroli if the code base of ldnxflat isn't too large, how about let AI rewrite a new ldnxflat from scratch to fix GPL issue.

@jerpelea

jerpelea commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

@casaroli if the code base of ldnxflat isn't too large, how about let AI rewrite a new ldnxflat from scratch to fix GPL issue.

Please do not do this !

It is called license washing! and it is not the same as a clean room implementation.

@casaroli

casaroli commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

I think I can write another ldnxflat (without AI) from scratch without even looking at the original code.

This is not even a full linker. And there are other more modern alternatives we can use instead of libbfd.

When I'm done with FDPIC, I will explore that possibility.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: CI Size: M The size of the change in this PR is medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants