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 2f1f35f2382d1cf081bde934e163143267d1e06e
Author: Marco Casaroli <[email protected]>
AuthorDate: Wed Oct 28 00:34:46 2026 +0100

    Documentation: List the names that NUTTX_NO_EXTENSIONS hides.
    
    NUTTX_NO_EXTENSIONS now also hides most helper macros of
    nuttx/compiler.h, the clock helpers that <stdio.h> and <pthread.h>
    brought in, O_BINARY, utimens() and lutimens(), the file system types
    *_MAGIC of <sys/statfs.h>, the NuttX macros of <assert.h>, the NuttX
    crypt_r(), the types unchar and s_char, and builtin_function() and
    builtin_original().  NUTTX_NO_EXTENSIONS needs clang, or GCC 4.4 or
    later.
    
    Assisted-by: Claude Code:claude-opus-5-5
    Signed-off-by: Marco Casaroli <[email protected]>
---
 Documentation/os/libs/libc/index.rst | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/Documentation/os/libs/libc/index.rst 
b/Documentation/os/libs/libc/index.rst
index c02a94a2ee1..94cb90641a7 100644
--- a/Documentation/os/libs/libc/index.rst
+++ b/Documentation/os/libs/libc/index.rst
@@ -88,9 +88,26 @@ one of these macros before its first ``#include``:
 ``NUTTX_NO_EXTENSIONS``
   The headers do not define ``ERROR`` and ``OK`` (``sys/types.h``),
   ``set_errno()`` and ``get_errno()`` (``errno.h``), ``zalloc()``
-  (``stdlib.h``), ``O_TEXT`` (``fcntl.h``), ``weak_alias``,
-  ``visibility_hidden``, ``visibility_default`` and ``unused_data``
-  (``nuttx/compiler.h``).
+  (``stdlib.h``), ``O_TEXT`` and ``O_BINARY`` (``fcntl.h``), ``utimens()``
+  and ``lutimens()`` (``sys/stat.h``), the file system types ``*_MAGIC``
+  (``sys/statfs.h``), ``PANIC()``, ``PANIC_WITH_REGS()``,
+  ``ASSERT()``, ``VERIFY()``, ``COMPILE_TIME_ASSERT()`` and
+  ``BUILD_BUG_ON_ZERO()`` (``assert.h``), the NuttX ``crypt_r()``
+  (``unistd.h``; its third argument is the output buffer, not the
+  ``struct crypt_data`` of glibc and libxcrypt), the types ``unchar`` and
+  ``s_char`` (``sys/types.h``), ``builtin_function()`` and
+  ``builtin_original()`` (then ``string.h`` declares ``memcpy()`` and the
+  other functions without their inline versions; the compiler can still
+  use its own built-in functions), and the helper macros of
+  ``nuttx/compiler.h`` that the other headers do not use, for example
+  ``memory_barrier()``, ``UNUSED()``, ``weak_alias``, ``weak_function``,
+  ``predict_true()`` and ``always_inline_function``.  The list is in
+  ``nuttx/compiler.h``.  A definition of one of these names that the program
+  made before its first ``#include`` stays.  ``NUTTX_NO_EXTENSIONS`` needs
+  clang, or GCC 4.4 or later: with another compiler ``nuttx/compiler.h``
+  stops with ``#error``.  ``stdio.h`` and ``pthread.h`` do not bring in the
+  clock helpers of ``nuttx/clock.h`` (``TM_YEAR_BASE``, ``NSEC_PER_SEC`` and
+  others).
 
 Library Database
 ================

Reply via email to