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
