This is an automated email from the ASF dual-hosted git repository.

xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git

commit 3d6ea0ccece3a1ccd917940b16bb1ff6a5ae3f5e
Author: Arjav Patel <[email protected]>
AuthorDate: Sun May 31 10:11:06 2026 +0530

    system/microros: Fix toolchain attribute strip breaking libc inlines.
    
    micro_ros_lib/toolchain.cmake.in initialised C and CXX flags with
    -D'__attribute__(x)=' to silence GCC attributes the upstream ament
    build is not aware of. The strip also removed __gnu_inline__ and
    __always_inline__ from NuttX's libc string.h inlines, so each
    micro-ROS translation unit emitted external definitions of strcmp,
    strcpy, strlen and friends. Sim final link then failed with ~50
    multiple-definition errors.
    
    Drop the define from both flag init lines so the attributes survive
    and the inlines collapse as intended.
    
    Signed-off-by: Arjav Patel <[email protected]>
---
 system/microros/micro_ros_lib/toolchain.cmake.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/system/microros/micro_ros_lib/toolchain.cmake.in 
b/system/microros/micro_ros_lib/toolchain.cmake.in
index 8d3aabe3c..ebfa15eea 100644
--- a/system/microros/micro_ros_lib/toolchain.cmake.in
+++ b/system/microros/micro_ros_lib/toolchain.cmake.in
@@ -9,8 +9,8 @@ set(PLATFORM_NAME "nuttx")
 set(CMAKE_C_COMPILER @CMAKE_C_COMPILER@)
 set(CMAKE_CXX_COMPILER @CMAKE_CXX_COMPILER@)
 
-set(CMAKE_C_FLAGS_INIT "-std=c11 @ARCH_C_FLAGS@ -D__NuttX__ 
-D'__attribute__(x)='" CACHE STRING "" FORCE)
-set(CMAKE_CXX_FLAGS_INIT "-std=c++14 @ARCH_CPP_FLAGS@ -fno-rtti -D__NuttX__ 
-D'__attribute__(x)='" CACHE STRING "" FORCE)
+set(CMAKE_C_FLAGS_INIT "-std=c11 @ARCH_C_FLAGS@ -D__NuttX__" CACHE STRING "" 
FORCE)
+set(CMAKE_CXX_FLAGS_INIT "-std=c++14 @ARCH_CPP_FLAGS@ -fno-rtti -D__NuttX__" 
CACHE STRING "" FORCE)
 
 set(NUTTX_TOPDIR @NUTTX_TOPDIR@)
 set(NUTTX_APPDIR @NUTTX_APPDIR@)

Reply via email to