Hi KR,
Another different topic here:
Could you please verify this issue that should affect AVR:
Several open() flags are defined as shifts past bit 15, for example
O_DIRECTORY (1U << 16), O_CLOEXEC (1U << 19) and O_NOFOLLOW (1U <<
17).
- Where int is 16 bits, these shifts are undefined. GCC turns every
one
of them
into 0.
- open() takes int oflags, so it can't carry those bits anyway.
- The compiler warning never appears, because NuttX includes its
headers
with
-isystem, which hides warnings from them.
The effect.
- opendir() never passed O_DIRECTORY, so opening /proc failed with
ENOENT and ps
broke.
- O_CLOEXEC and O_NOFOLLOW silently did nothing.
- AVR also has a 16-bit int, so it has the same latent bug.
If this issue exists on AVR, your system probably cannot mount /proc,
and
the ps command will not work.
BR,
Alan
On Mon, Sep 28, 2026 at 9:45 AM <[email protected]> wrote:
-1 (non-binding) for AVR DA/DB
Fails to compile with:
avr-ld: staging/libsched.a(sem_destroy.o): in function `.L3':
sem_destroy.c:(.text.nxsem_destroy+0x46): undefined reference to
`__atomic_load_4'
I tracked this down to a patch series that includes commit
4ca2256a9beef
(nuttx/atomic: select LIBC_ATOMIC_IRQ for archs without atomic
support)
- this commit did not cover AVR DA/DB.
I prepared a patch and uploaded it to my git repository nuttx.git at
git.kerogit.eu accessible through HTTP/S. (Trying to prevent bot
traffic
by not posting the URL in machine-readable form.) The relevant branch
is
called avrdx_fix_13.1. The patch is also attached to this message - I
don't have a GitHub account so, if possible, I would like to ask
someone
to open a PR and merge it to development branch. It's a simple
one-liner
doing the same thing as what the 4ca2256a9beef does, simply adds
"select
LIBC_ATOMIC_IRQ" to Kconfig. (If the vote for RC0 fails, please merge
it
to RC1 as well.)
With the patch, build process completes - for breadxavr:nsh
configuration:
Register: nsh
Register: sh
LD: nuttx
Memory region Used Size Region Size %age Used
flash: 56125 B 128 KB 42.82%
sram: 780 B 16 KB 4.76%
eeprom: 0 B 512 B 0.00%
rodata: 602 B 4 KB 14.70%
(Compared to previous version 13.0, the binary size increased by 850
bytes. Most of that is caused by changes in fs/inode starting with
patch
e73947e9e so not much can be done to alleviate that - at least not
easily.)
Other than that, there also seems to be a performance regression
observed when running a stress test app which is apparently dropping
bytes from UART (interrupt not serviced in time.) Takes few hours to
manifest though so I'll try to track that one down for 13.2.
On 2026-09-27 07:20, Alin Jerpelea wrote:
> Hello all,
> Apache NuttX 13.1.0 RC0 has been staged under [1] and it's
> time to vote on accepting it for release. Voting will be open for 72hr.
>
> A minimum of 3 binding +1 votes and more binding +1 than binding -1 are
> required to pass.
>
> The Apache requirements for approving a release can be found here [3]
> "Before voting +1 PMC members are required to download the signed
> source code package, compile it as provided, and test the resulting
> executable on their own platform, along with also verifying that the
> package meets the requirements of the ASF policy on releases."
>
> A document to walk through some of this process has been published on
> our project wiki and can be found here [4].
>
> [ ] +1 accept (indicate what you validated - e.g. performed the non-RM
> items in [4])
> [ ] -1 reject (explanation required)
>
> Thank you all,
> Alin Jerpelea
>
> SCM Information:
> Release tag: nuttx-13.1.0-RC0
> Hash for the release nuttx tag:
> 2b5c0de5e933281c209f954a63b99cf10c132346
> Hash for the release nuttx-apps tag:
> 3c772ea35b9245972e18999828f7b533e6fc57cc
>
> [1] https://dist.apache.org/repos/dist/dev/nuttx/13.1.0-RC0/
> [2]
>
https://raw.githubusercontent.com/apache/nuttx/nuttx-13.1.0-RC0/ReleaseNotes
> [3] https://www.apache.org/dev/release.html#approving-a-release
> [4]
>
https://cwiki.apache.org/confluence/display/NUTTX/Validating+a+staged+Release