This is a little complicated.  I will just list some issues:

  1.
Cadenux was a business that I owned (with partners) about 2002
  2.
NXFLAT is at https://github.com/patacongo/buildroot/tree/main/toolchain/nxflat
  3.
XFLAT is GPL (see https://sourceforge.net/projects/xflat/) or at least derives 
from GPL sources.
  4.
Ldelflib is proprietary owned by Cadenux and myself.  I can grant anything that 
derives from it to Apache.  In fact, anything that has my copyright (or, I 
assume the Cadenux copyright) can be given to the ASF (with my permission).
  5.
Complications:  (1) Ldelfib derives from elf2flt which was part of uClinux-dev 
making those BSD licenses suspect.  If the comments are accurate. (2) That was 
24 years ago.  My recollections of licensing details is more that just hazy.
  6.
I used to have a policy of acknowledge every person who influenced the code 
development even though they were not actually copy holds.  This policy 
confused a lot of people.
  7.
The licensing is complicated.  I have no personal issues with granting that 
code to the ASF if it is possible to sanitize the licensing.

I don't think I added anything that you don't already know.

OT: Isn't the PIC base a compiler command line argument?  I don't recall.

________________________________
From: Marco C. <[email protected]>
Sent: Monday, August 3, 2026 1:59 AM
To: [email protected] <[email protected]>
Cc: [email protected] <[email protected]>
Subject: NuttX: importing mknxflat into the Apache tree — licence confirmation?

Hi Greg,

I have a licensing question about the NXFLAT toolchain and I would value
your confirmation, since you are the copyright holder. I have asked it on
the pull request so the answer is on the record:
https://github.com/apache/nuttx/pull/19600#issuecomment-5164283980

The short version: that PR moves the ARM PIC base register from r10 to r9,
which breaks NXFLAT silently, because mknxflat bakes the register into the
import thunks it generates as add ip,ip,sl. While the tool lives outside
the NuttX repository it can drift out of step with the kernel, so the PR
brings it in-tree as tools/nxflat/.

The files taken are mknxflat.c and the two dyncall_skeleton.def templates
from the buildroot NXFLAT toolchain. Each carries a BSD-3-Clause header
naming you and Cadenux LLC, and notes that the code derives from XFLAT's
ldelflib. The containing repository's COPYING is GPL-2.0, so rather than
assume the per-file grant governs, I would rather hear it from you: is
BSD-3 the operative licence for those three files, and are you content for
them to live in an Apache-2.0 repository with their headers intact?

I have deliberately left ldnxflat alone. It carries an explicit
GPL-2.0-or-later notice and descends from elf2flt with roughly ten
copyright holders going back to 1996, so NXFLAT will continue to need it
from buildroot as it does today.

The only substantive change to the imported code is dropping the libbfd
dependency, which was only ever used to open the file and enumerate
symbols; the tool now reads the ELF symbol table directly. The generated
thunk files are byte-identical to what the current tool produces, for both
ARM and Thumb-2.

A reply on the list would be ideal so the answer is archived alongside the
change, but whatever is easiest for you is fine.

Thanks very much,
Marco Casaroli

Reply via email to