Skip to content

[BUG] Missing Standard C++ Headers When Building CxxTest Using CMake #16221

@trns1997

Description

@trns1997

Description / Steps to reproduce the issue

Description

When building NuttX using CMake (as documented in the CMake Quickstart), the build fails during the compilation of cxxtest_main.cxx with the error:

fatal error: cstdio: No such file or directory

This issue does not occur when building using the classic Makefile configuration.

Steps to Reproduce

  1. Configure the Board
    Run the following command in your NuttX source directory:
cmake -B build -DBOARD_CONFIG=xmc4800-relax:nsh -GNinja
  1. Build NuttX with CxxTest
    Build the project with:
cmake --build build
  1. Observed Error
    The build fails with the following output:
[2/8] Building CXX object apps/testing/cxx/cxxtest/CMakeFiles/apps_cxxtest.dir/cxxtest_main.cxx.obj
FAILED: apps/testing/cxx/cxxtest/CMakeFiles/apps_cxxtest.dir/cxxtest_main.cxx.obj 
/home/thomas/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi/bin/arm-none-eabi-g++ -D__NuttX__ -Dmain=cxxtest_main -I/home/thomas/nuttxspace/apps/include -I/home/thomas/nuttxspace/nuttx/build/apps/include -isystem /home/thomas/nuttxspace/nuttx/include -isystem /home/thomas/nuttxspace/nuttx/build/include -mtune=cortex-m4 -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard --param=min-pagesize=0 -fno-common -Wall -Wshadow -Wundef -nostdlib -fomit-frame-pointer -mthumb -Wa,-mthumb -Wa,-mimplicit-it=always -ffunction-sections -fdata-sections -Wno-attributes -Wno-unknown-pragmas -nostdinc++ -Wno-psabi -std=c++17 -fdiagnostics-color=always -DNDEBUG -fmacro-prefix-map=/home/thomas/nuttxspace/nuttx= -fmacro-prefix-map=/home/thomas/nuttxspace/apps= -fmacro-prefix-map=/home/thomas/nuttxspace/nuttx/boards/arm/xmc4/xmc4800-relax= -fmacro-prefix-map=/home/thomas/nuttxspace/nuttx/arch/arm/src/xmc4= @apps/testing/cxx/cxxtest/CMakeFiles/apps_cxxtest.dir/cxxtest_main.cxx.obj.rsp -MD -MT apps/testing/cxx/cxxtest/CMakeFiles/apps_cxxtest.dir/cxxtest_main.cxx.obj -MF apps/testing/cxx/cxxtest/CMakeFiles/apps_cxxtest.dir/cxxtest_main.cxx.obj.d -o apps/testing/cxx/cxxtest/CMakeFiles/apps_cxxtest.dir/cxxtest_main.cxx.obj -c /home/thomas/nuttxspace/apps/testing/cxx/cxxtest/cxxtest_main.cxx
/home/thomas/nuttxspace/apps/testing/cxx/cxxtest/cxxtest_main.cxx:29:10: fatal error: cstdio: No such file or directory
   29 | #include <cstdio>
      |          ^~~~~~~~
compilation terminated.
[3/8] Linking C static library libs/libc/libc.a
ninja: build stopped: subcommand failed.

On which OS does this issue occur?

[OS: Linux]

What is the version of your OS?

24.04

NuttX Version

master

Issue Architecture

[Arch: arm]

Issue Area

[Area: Build System]

Host information

file sysinfo.h not exists
NuttX CFLAGS:
-Wstrict-prototypes
-Wno-attributes
-Wno-unknown-pragmas
-Wno-psabi
-fomit-frame-pointer
--param=min-pagesize=0
-fno-common
-Wall
-Wshadow
-Wundef
-ffunction-sections
-fdata-sections
-mlittle-endian
-march=armv7e-m
-mtune=cortex-m4
-mfpu=fpv4-sp-d16
-mfloat-abi=hard
-mthumb
-Wa-mthumb
-Wa-mimplicit-it=always
-isystem /home/thomas/nuttxspace/nuttx/include
-D__NuttX__
-DNDEBUG
-pipe

NuttX CXXFLAGS:
-Wno-attributes
-Wno-unknown-pragmas
-Wno-psabi
-std=\c++17
-fomit-frame-pointer
--param=min-pagesize=0
-fno-common
-Wall
-Wshadow
-Wundef
-ffunction-sections
-fdata-sections
-mlittle-endian
-march=armv7e-m
-mtune=cortex-m4
-mfpu=fpv4-sp-d16
-mfloat-abi=hard
-mthumb
-Wa-mthumb
-Wa-mimplicit-it=always
-isystem /home/thomas/nuttxspace/nuttx/include/cxx
-isystem /home/thomas/nuttxspace/nuttx/include
-D__NuttX__
-DNDEBUG
-pipe

NuttX LDFLAGS:
--print-memory-usage
--entry=__start
-nostdlib
--gc-sections
--cref
-Map=/home/thomas/nuttxspace/nuttx/nuttx.map

NuttX configuration options:
CONFIG_HOST_LINUX=y
CONFIG_APPS_DIR=../apps
CONFIG_BASE_DEFCONFIG=\xmc4800-relax:nsh
CONFIG_BUILD_FLAT=y
CONFIG_INTELHEX_BINARY=y
CONFIG_RAW_BINARY=y
CONFIG_OUTPUT_STRIP_PATHS=y
CONFIG_ARCH_HAVE_STDARG_H=y
CONFIG_ARCH_HAVE_SETJMP=y
CONFIG_ARCH_NONE_DEBUG_H=y
CONFIG_FORTIFY_SOURCE=0
CONFIG_NDEBUG=y
CONFIG_DEBUG_ALERT=y
CONFIG_ARCH_HAVE_STACKCHECK=y
CONFIG_STACK_USAGE_WARNING=0
CONFIG_ARCH_HAVE_CUSTOMOPT=y
CONFIG_DEBUG_NOOPT=y
CONFIG_LTO_NONE=y
CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
CONFIG_DEBUG_LINK_MAP=y
CONFIG_ARCH_ARM=y
CONFIG_ARCH=\arm
CONFIG_ARM_TOOLCHAIN_GNU_EABI=y
CONFIG_ARCH_CHIP_XMC4=y
CONFIG_ARCH_ARMV7M=y
CONFIG_ARCH_CORTEXM4=y
CONFIG_ARCH_FAMILY=\armv7-m
CONFIG_ARCH_CHIP=\xmc4
CONFIG_ARM_THUMB=y
CONFIG_ARM_HAVE_MPU_UNIFIED=y
CONFIG_ARCH_HAVE_HARDFAULT_DEBUG=y
CONFIG_ARCH_HAVE_MEMFAULT_DEBUG=y
CONFIG_ARCH_HAVE_BUSFAULT_DEBUG=y
CONFIG_ARCH_HAVE_USAGEFAULT_DEBUG=y
CONFIG_ARMV7M_HAVE_STACKCHECK=y
CONFIG_ARCH_CHIP_XMC4800=y
CONFIG_XMC4_USIC=y
CONFIG_XMC4_USCI_UART=y
CONFIG_XMC4_USIC0=y
CONFIG_XMC4_ECAT=y
CONFIG_XMC4_ECAT_P0=y
CONFIG_XMC4_USIC0_CHAN0_ISUART=y
CONFIG_XMC4_USIC0_CHAN0_TX_BUFFER_SIZE=16
CONFIG_XMC4_USIC0_CHAN0_RX_BUFFER_SIZE=16
CONFIG_XMC4_USIC0_CHAN1_NONE=y
CONFIG_ARCH_TOOLCHAIN_GNU=y
CONFIG_ARCH_TOOLCHAIN_GCC=y
CONFIG_ARCH_HAVE_IRQTRIGGER=y
CONFIG_ARCH_HAVE_IRQPRIO=y
CONFIG_ARCH_HAVE_FORK=y
CONFIG_ARCH_HAVE_FPU=y
CONFIG_ARCH_HAVE_MPU=y
CONFIG_ARCH_HAVE_RESET=y
CONFIG_ARCH_HAVE_TESTSET=y
CONFIG_ARCH_HAVE_THREAD_LOCAL=y
CONFIG_ARCH_HAVE_FETCHADD=y
CONFIG_ARCH_HAVE_SYSCALL_HOOKS=y
CONFIG_ARCH_HAVE_BACKTRACE=y
CONFIG_ARCH_HAVE_DEBUG=y
CONFIG_ARCH_HAVE_PERF_EVENTS=y
CONFIG_ARCH_HAVE_CPUINFO=y
CONFIG_ARCH_CPUINFO_FREQ_KHZ=0
CONFIG_ARCH_HAVE_TCBINFO=y
CONFIG_ARCH_FPU=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_ARCH_STACKDUMP_MAX_LENGTH=0
CONFIG_ARCH_HAVE_RAMFUNCS=y
CONFIG_ARCH_HAVE_RAMVECTORS=y
CONFIG_BOARD_LOOPSPERMSEC=8000
CONFIG_ARCH_HAVE_INTERRUPTSTACK=y
CONFIG_ARCH_INTERRUPTSTACK=2048
CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y
CONFIG_BOOT_RUNFROMFLASH=y
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=65536
CONFIG_FLASH_START=0x0
CONFIG_FLASH_SIZE=0
CONFIG_ARCH_BOARD_XMC4800RELAX=y
CONFIG_ARCH_BOARD=\xmc4800-relax
CONFIG_ARCH_HAVE_LEDS=y
CONFIG_ARCH_LEDS=y
CONFIG_ARCH_HAVE_BUTTONS=y
CONFIG_ARCH_BUTTONS=y
CONFIG_ARCH_HAVE_IRQBUTTONS=y
CONFIG_ARCH_IRQBUTTONS=y
CONFIG_ECAT=y
CONFIG_BOARD_CRASHDUMP_NONE=y
CONFIG_BOARDCTL=y
CONFIG_BOARDCTL_MKRD=y
CONFIG_BOARD_MEMORY_RANGE=\
CONFIG_DISABLE_OS_API=y
CONFIG_ARCH_HAVE_TICKLESS=y
CONFIG_USEC_PER_TICK=10000
CONFIG_START_YEAR=2014
CONFIG_START_MONTH=3
CONFIG_START_DAY=10
CONFIG_PREALLOC_TIMERS=4
CONFIG_IRQ_NWORKS=8
CONFIG_IRQ_WORK_SECTION=\
CONFIG_IRQ_WORK_STACKSIZE=2048
CONFIG_INIT_ENTRY=y
CONFIG_INIT_ARGS=\
CONFIG_INIT_STACKSIZE=2048
CONFIG_INIT_PRIORITY=100
CONFIG_INIT_ENTRYPOINT=\nsh_main
CONFIG_INIT_ENTRYNAME=\nsh_main
CONFIG_RR_INTERVAL=200
CONFIG_TASK_NAME_SIZE=31
CONFIG_SCHED_WAITPID=y
CONFIG_PTHREAD_MUTEX_ROBUST=y
CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_NONE=y
CONFIG_SCHED_CPULOAD_NONE=y
CONFIG_SCHED_CPULOAD_TICKSPERSEC=100
CONFIG_SCHED_PROFILE_TICKSPERSEC=1000
CONFIG_SCHED_STACK_RECORD=0
CONFIG_DEV_CONSOLE=y
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=8
CONFIG_FILE_STREAM=y
CONFIG_SIG_PREALLOC_ACTIONS=4
CONFIG_SIG_ALLOC_ACTIONS=1
CONFIG_SIG_PREALLOC_IRQ_ACTIONS=8
CONFIG_PREALLOC_MQ_MSGS=8
CONFIG_PREALLOC_MQ_IRQ_MSGS=8
CONFIG_MQ_MAXMSGSIZE=32
CONFIG_SCHED_WORKQUEUE=y
CONFIG_SCHED_HPWORK=y
CONFIG_SCHED_HPNTHREADS=1
CONFIG_SCHED_HPWORKPRIORITY=224
CONFIG_SCHED_HPWORKSTACKSIZE=2048
CONFIG_DEFAULT_TASK_STACKSIZE=2048
CONFIG_IDLETHREAD_STACKSIZE=1024
CONFIG_PTHREAD_STACK_MIN=256
CONFIG_PTHREAD_STACK_DEFAULT=2048
CONFIG_PID_INITIAL_COUNT=16
CONFIG_ARCH_HAVE_I2CRESET=y
CONFIG_DEV_NULL=y
CONFIG_DEV_ZERO=y
CONFIG_DEV_OPTEE_NONE=y
CONFIG_DRVR_MKRD=y
CONFIG_ARCH_HAVE_RDWR_MEM_CPU_RUN=y
CONFIG_SERIAL=y
CONFIG_SERIAL_CONSOLE=y
CONFIG_MCU_SERIAL=y
CONFIG_STANDARD_SERIAL=y
CONFIG_SERIAL_NPOLLWAITERS=4
CONFIG_UART0_SERIAL_CONSOLE=y
CONFIG_UART0_SERIALDRIVER=y
CONFIG_UART0_RXBUFSIZE=256
CONFIG_UART0_TXBUFSIZE=256
CONFIG_UART0_BAUD=115200
CONFIG_UART0_BITS=8
CONFIG_UART0_PARITY=0
CONFIG_UART0_2STOP=0
CONFIG_SYSLOG=y
CONFIG_SYSLOG_DEFAULT_MASK=0xff
CONFIG_SYSLOG_CRLF=y
CONFIG_SYSLOG_MAX_CHANNELS=1
CONFIG_SYSLOG_DEVPATH=/dev/ttyS1
CONFIG_SYSLOG_DEFAULT=y
CONFIG_FS_NEPOLL_DESCRIPTORS=8
CONFIG_FS_LOCK_BUCKET_SIZE=0
CONFIG_SENDFILE_BUFSIZE=512
CONFIG_FS_REFCOUNT=y
CONFIG_FS_BACKTRACE=0
CONFIG_FS_MQUEUE_VFS_PATH=/var/mqueue
CONFIG_FS_MQUEUE_NPOLLWAITERS=4
CONFIG_FS_ANONMAP=y
CONFIG_NXFONTS_PACKEDMSFIRST=y
CONFIG_MM_DEFAULT_MANAGER=y
CONFIG_MM_DEFAULT_ALIGNMENT=8
CONFIG_MM_REGIONS=1
CONFIG_MM_MAP_COUNT_MAX=1024
CONFIG_MM_BACKTRACE=-1
CONFIG_MM_FREE_DELAYCOUNT_MAX=0
CONFIG_MM_HEAP_BIGGEST_COUNT=30
CONFIG_MM_HEAP_MEMPOOL_THRESHOLD=-1
CONFIG_BINFMT_ELF_RELOCATABLE=y
CONFIG_STDIO_BUFFER_SIZE=64
CONFIG_STDIO_LINEBUFFER=y
CONFIG_NUNGET_CHARS=2
CONFIG_LIBC_FLOATINGPOINT=y
CONFIG_LIBC_LONG_LONG=y
CONFIG_ARCH_LOWPUTC=y
CONFIG_LIBC_RAND_ORDER=1
CONFIG_LIBC_HOMEDIR=/
CONFIG_LIBC_TMPDIR=/tmp
CONFIG_LIBC_MAX_TMPFILE=32
CONFIG_LIBC_MAX_EXITFUNS=0
CONFIG_POSIX_SPAWN_DEFAULT_STACKSIZE=2048
CONFIG_LIBC_HOSTNAME=\
CONFIG_LIBC_OPEN_MAX=256
CONFIG_NAME_MAX=32
CONFIG_PATH_MAX=256
CONFIG_LINE_MAX=64
CONFIG_LIBC_STRERROR_ERRNUM=y
CONFIG_LIBC_STRSIGNAL=y
CONFIG_LIBC_LOCALE=y
CONFIG_TLS_NELEM=0
CONFIG_TLS_TASK_NELEM=0
CONFIG_TLS_NCLEANUP=0
CONFIG_LIBC_GAISTRERROR_ERRNUM=y
CONFIG_LIBC_FTOK_VFS_PATH=/var/ftok
CONFIG_LIBC_MEMFD_ERROR=y
CONFIG_LIBC_TEMPBUFFER=y
CONFIG_LIBC_MAX_TEMPBUFFER=2
CONFIG_LIBC_TEMPBUFFER_MALLOC=y
CONFIG_LIBC_MUTEX_BACKTRACE=0
CONFIG_BUILTIN=y
CONFIG_STREAM_OUT_BUFFER_SIZE=64
CONFIG_STREAM_HEXDUMP_BUFFER_SIZE=128
CONFIG_STREAM_BASE64_BUFFER_SIZE=128
CONFIG_LIBC_INLINE_QUEUE=y
CONFIG_LIBM_TOOLCHAIN=y
CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=y
CONFIG_LIBCXXTOOLCHAIN=y
CONFIG_LIBSUPCXX_TOOLCHAIN=y
CONFIG_CXX_STANDARD=\c++17
CONFIG_CXX_EXCEPTION=y
CONFIG_CXX_RTTI=y
CONFIG_BUILTIN_TOOLCHAIN=y
CONFIG_COVERAGE_NONE=y
CONFIG_COVERAGE_DEFAULT_PREFIX_STRIP=\99
CONFIG_COVERAGE_DEFAULT_PREFIX=/data
CONFIG_PROFILE_NONE=y
CONFIG_NSH_LIBRARY=y
CONFIG_NSH_PROMPT_STRING=\nsh>
CONFIG_NSH_PROMPT_MAX=32
CONFIG_NSH_PROMPT_ENV=\PS1
CONFIG_NSH_PROMPT_SUFFIX=>
CONFIG_NSH_READLINE=y
CONFIG_NSH_QUOTE=y
CONFIG_NSH_MAXARGUMENTS=7
CONFIG_NSH_ARGCAT=y
CONFIG_NSH_NESTDEPTH=3
CONFIG_NSH_ALIAS=y
CONFIG_NSH_ALIAS_MAX_AMOUNT=1
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_DISABLE_DATE=y
CONFIG_NSH_DISABLE_IFCONFIG=y
CONFIG_NSH_DISABLE_IFUPDOWN=y
CONFIG_NSH_DISABLE_LOSMART=y
CONFIG_NSH_DISABLE_LOMTD=y
CONFIG_NSH_DISABLE_MB=y
CONFIG_NSH_DISABLE_MH=y
CONFIG_NSH_DISABLE_MW=y
CONFIG_NSH_DISABLE_PS=y
CONFIG_NSH_DISABLE_TIMEDATECTL=y
CONFIG_NSH_CODECS_BUFSIZE=128
CONFIG_NSH_CMDOPT_HEXDUMP=y
CONFIG_NSH_FILEIOSIZE=512
CONFIG_NSH_SYSINITSCRIPT=\init.d/rc.sysinit
CONFIG_NSH_INITSCRIPT=\init.d/rcS
CONFIG_NSH_SCRIPT_REDIRECT_PATH=\
CONFIG_NSH_CONSOLE=y
CONFIG_NSH_ARCHINIT=y
CONFIG_SYSTEM_NSH=y
CONFIG_SYSTEM_NSH_PRIORITY=100
CONFIG_SYSTEM_NSH_STACKSIZE=2048
CONFIG_SYSTEM_NSH_PROGNAME=\nsh
CONFIG_SYSTEM_READLINE=y
CONFIG_READLINE_HAVE_EXTMATCH=y
CONFIG_READLINE_ECHO=y
CONFIG_TESTING_CXXTEST=y
CONFIG_TESTING_RAMTEST=y
CONFIG_TESTING_RAMTEST_PROGNAME=\ramtest
CONFIG_TESTING_RAMTEST_PRIORITY=90
CONFIG_TESTING_RAMTEST_STACKSIZE=2048

Host system OS:
Ubuntu 24.04.2 LTS Linux dank-engine 6.8.0-56-generic #58-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 14 15:33:28 UTC 2025 x86_64 x86_64

Host system PATH:
/home/thomas/miniconda3/condabin
/home/thomas/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi/bin
/home/thomas/.local/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/snap/bin
/snap/bin

Verification

  • I have verified before submitting the report.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Arch: armIssues related to ARM (32-bit) architectureArea: Build systemOS: LinuxIssues related to Linux (building system, etc)Type: BugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions