Unable to build px4 firmware v1.11.0

Hi,

I just tried to build 1.11.0 for px4_fmu-v5_default. It looks like the make system is unable to create the config.h from nuttx config:

Scanning dependencies of target nuttx_config_target
[ 3%] Generating nuttx/include/nuttx/config.h, nuttx/include/nuttx/version.h
make[4]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
make[4]: *** [tools/Makefile.unix:341: include/arch/board] Error 1
make[3]: *** [NuttX/CMakeFiles/nuttx_boards_build.dir/build.make:4360: NuttX/nuttx/include/nuttx/config.h] Error 2
make[3]: *** Deleting file β€˜NuttX/nuttx/include/nuttx/config.h’
make[2]: *** [CMakeFiles/Makefile2:17540: NuttX/CMakeFiles/nuttx_boards_build.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs…

What might be causing this? I get easily lost when debugging the cmake system. With the same PC&setup e.g. 1.10.2 bulids fine.

Full build output:

$ make px4_fmu-v5_default
– PX4 version: v1.11.0
– PX4 config file: /home/jlaitine/TII/PX4/Firmware/boards/px4/fmu-v5/default.cmake
– PX4 config: px4_fmu-v5_default
– PX4 platform: nuttx
– cmake build type: MinSizeRel
– The CXX compiler identification is GNU 9.2.1
– The C compiler identification is GNU 9.2.1
– The ASM compiler identification is GNU
– Found assembler: /home/jlaitine/bin/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc
– Check for working CXX compiler: /home/jlaitine/bin/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-g++
– Check for working CXX compiler: /home/jlaitine/bin/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-g++ – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Detecting CXX compile features
– Detecting CXX compile features - done
– Check for working C compiler: /home/jlaitine/bin/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc
– Check for working C compiler: /home/jlaitine/bin/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Detecting C compile features
– Detecting C compile features - done
– Enabling double FP precision hardware instructions
– Found PythonInterp: /usr/bin/python3 (found suitable version β€œ3.8.2”, minimum required is β€œ3”)
– build type is MinSizeRel
– PX4 ECL: Very lightweight Estimation & Control Library v1.9.0-rc1-399-gec93490
– Building and including px4_io-v2_default
– Found PythonInterp: /usr/bin/python3 (found version β€œ3.8.2”)
– Using C++11
– Release build type: MinSizeRel
– ROMFS: px4fmu_common
– ROMFS: Adding rc.board_defaults
– ROMFS: Adding rc.board_sensors
– ROMFS: Adding rc.board_mavlink
– Found SVD:
– Configuring done
– Generating done
– Build files have been written to: /home/jlaitine/TII/PX4/Firmware/build/px4_fmu-v5_default
Scanning dependencies of target git_nuttx_apps
Scanning dependencies of target px4_config_file_target
Scanning dependencies of target git_nuttx
Scanning dependencies of target uorb_headers
[ 0%] git submodule platforms/nuttx/NuttX/apps
[ 0%] Built target px4_config_file_target
[ 0%] git submodule platforms/nuttx/NuttX/nuttx
[ 0%] Generating uORB topic headers
Scanning dependencies of target git_ecl
[ 0%] git submodule src/lib/ecl
[ 0%] Built target git_nuttx_apps
[ 0%] Built target git_nuttx
Scanning dependencies of target mixer_gen
Scanning dependencies of target mixer_gen_6dof
[ 0%] Generating mixer_multirotor.generated.h
[ 1%] Generating mixer_multirotor_6dof.generated.h
[ 1%] Built target git_ecl
[ 1%] Generating mixer_multirotor_normalized.generated.h
[ 1%] Built target mixer_gen_6dof
Scanning dependencies of target ver_gen
Scanning dependencies of target git_gps_devices
[ 1%] Generating git version header
[ 1%] git submodule src/drivers/gps/devices
[ 1%] Built target mixer_gen
Scanning dependencies of target px4_uavcan_dsdlc
[ 1%] PX4 UAVCAN dsdl compiler
[ 1%] Built target git_gps_devices
Scanning dependencies of target git_uavcan
[ 1%] git submodule src/drivers/uavcan/libuavcan
[ 1%] Built target git_uavcan
Scanning dependencies of target libuavcan_dsdlc
[ 1%] Running dsdl compiler
[ 1%] Built target px4_uavcan_dsdlc
Scanning dependencies of target git_mavlink_v2
[ 1%] git submodule mavlink/include/mavlink/v2.0
[ 1%] Built target git_mavlink_v2
Scanning dependencies of target airframes_xml
[ 1%] Creating airframes.xml
[ 1%] Built target libuavcan_dsdlc
Scanning dependencies of target parameters_xml
[ 1%] Generating serial_params.c
[ 1%] Built target airframes_xml
[ 1%] Generating parameters.xml
[ 1%] Built target ver_gen
Scanning dependencies of target px4io_firmware
[ 1%] Creating directories for β€˜px4io_firmware’
[ 1%] No download step for β€˜px4io_firmware’
[ 1%] No patch step for β€˜px4io_firmware’
[ 1%] No update step for β€˜px4io_firmware’
[ 1%] Performing configure step for β€˜px4io_firmware’
– PX4 version: v1.11.0
– PX4 config file: /home/jlaitine/TII/PX4/Firmware/boards/px4/io-v2/default.cmake
– PX4 config: px4_io-v2_default
– PX4 platform: nuttx
Scanning dependencies of target nuttx_copy_and_apps_target
[ 1%] Built target parameters_xml
[ 1%] Built target uorb_headers
[ 1%] Copying NuttX/nuttx to build/px4_fmu-v5_default/NuttX
[ 1%] Built target nuttx_copy_and_apps_target
Scanning dependencies of target nuttx_config_kconfig_target
– cmake build type: MinSizeRel
– The CXX compiler identification is GNU 9.2.1
– The C compiler identification is GNU 9.2.1
– The ASM compiler identification is GNU
– Found assembler: /home/jlaitine/bin/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc
– Check for working CXX compiler: /home/jlaitine/bin/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-g++
– Check for working CXX compiler: /home/jlaitine/bin/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-g++ – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Detecting CXX compile features
– Detecting CXX compile features - done
– Check for working C compiler: /home/jlaitine/bin/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc
– Check for working C compiler: /home/jlaitine/bin/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Detecting C compile features
– Detecting C compile features - done
– Found PythonInterp: /usr/bin/python3 (found suitable version β€œ3.8.2”, minimum required is β€œ3”)
– build type is MinSizeRel
– PX4 ECL: Very lightweight Estimation & Control Library v1.9.0-rc1-399-gec93490
– Configuring done
[ 1%] Generating nuttx_config_kconfig.stamp
[ 2%] Built target nuttx_config_kconfig_target
Scanning dependencies of target nuttx_copy_config_dir_target
[ 2%] Copying NuttX config nsh
[ 2%] Built target nuttx_copy_config_dir_target
Scanning dependencies of target nuttx_config_target
[ 2%] Copying NuttX compressed config nsh and inflating (make olddefconfig)
make[4]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
– Generating done
– Build files have been written to: /home/jlaitine/TII/PX4/Firmware/build/px4_fmu-v5_default/external/Build/px4io_firmware
[ 2%] Performing build step for β€˜px4io_firmware’
Scanning dependencies of target git_nuttx_apps
Scanning dependencies of target git_nuttx
Scanning dependencies of target uorb_headers
[ 0%] git submodule platforms/nuttx/NuttX/nuttx
[ 0%] git submodule platforms/nuttx/NuttX/apps
[ 1%] Generating uORB topic headers
[ 1%] Built target git_nuttx
Scanning dependencies of target nuttx_builtin_list_target
[ 1%] Built target git_nuttx_apps
[ 1%] Built target nuttx_builtin_list_target
Scanning dependencies of target mixer_gen_6dof
Scanning dependencies of target mixer_gen
[ 1%] Generating mixer_multirotor_6dof.generated.h
[ 1%] Generating mixer_multirotor.generated.h
[ 1%] Built target mixer_gen_6dof
[ 1%] Generating mixer_multirotor_normalized.generated.h
Scanning dependencies of target airframes_xml
[ 3%] Creating airframes.xml
[ 3%] Built target airframes_xml
Scanning dependencies of target parameters_xml
[ 3%] Generating serial_params.c
[ 3%] Built target mixer_gen
[ 3%] Generating parameters.xml
[ 2%] Built target nuttx_config_target
[ 3%] Built target parameters_xml
Scanning dependencies of target nuttx_copy_and_apps_target
Scanning dependencies of target nuttx_context
[ 3%] Built target uorb_headers
[ 3%] Copying NuttX/nuttx to build/px4_fmu-v5_default/external/Build/px4io_firmware/NuttX
[ 5%] Built target nuttx_copy_and_apps_target
[ 2%] Copying NuttX/nuttx to build/px4_fmu-v5_default/NuttX
[ 2%] Generating nuttx_config_kconfig.stamp
[ 2%] Copying NuttX config nsh
[ 2%] Copying NuttX compressed config nsh and inflating (make olddefconfig)
make[4]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
Scanning dependencies of target nuttx_config_kconfig_target
[ 2%] Generating nuttx/include/nuttx/config.h, nuttx/include/nuttx/version.h
make[4]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
[ 2%] Built target nuttx_context
[ 5%] Copying NuttX/nuttx to build/px4_fmu-v5_default/external/Build/px4io_firmware/NuttX
[ 6%] Generating nuttx_config_kconfig.stamp
[ 6%] Built target nuttx_config_kconfig_target
Scanning dependencies of target nuttx_boards_build
Scanning dependencies of target builtins_clean_target
Scanning dependencies of target nuttx_xx_build
Scanning dependencies of target nuttx_copy_config_dir_target
[ 2%] Copying NuttX/nuttx to build/px4_fmu-v5_default/NuttX
[ 2%] Copying NuttX/nuttx to build/px4_fmu-v5_default/NuttX
[ 2%] Copying NuttX/nuttx to build/px4_fmu-v5_default/NuttX
[ 2%] Generating nuttx_config_kconfig.stamp
[ 2%] Copying NuttX config nsh
[ 3%] Generating nuttx_config_kconfig.stamp
[ 3%] Copying NuttX compressed config nsh and inflating (make olddefconfig)
[ 3%] Generating nuttx_config_kconfig.stamp
make[4]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
[ 3%] Copying NuttX config nsh
[ 3%] Copying NuttX config nsh
[ 3%] Copying NuttX compressed config nsh and inflating (make olddefconfig)
make[4]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
[ 3%] Copying NuttX compressed config nsh and inflating (make olddefconfig)
make[4]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
[ 6%] Copying NuttX/nuttx to build/px4_fmu-v5_default/external/Build/px4io_firmware/NuttX
[ 6%] Generating nuttx_config_kconfig.stamp
[ 6%] Copying NuttX config nsh
[ 6%] Built target nuttx_copy_config_dir_target
[ 3%] Generating nuttx/include/nuttx/config.h, nuttx/include/nuttx/version.h
make[4]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
[ 3%] Generating nuttx/include/nuttx/config.h, nuttx/include/nuttx/version.h
make[4]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
[ 3%] Generating nuttx/include/nuttx/config.h, nuttx/include/nuttx/version.h
make[4]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
make[4]: *** [tools/Makefile.unix:357: arch/arm/src/board] Error 1
make[3]: *** [NuttX/CMakeFiles/nuttx_boards_build.dir/build.make:4360: NuttX/nuttx/include/nuttx/config.h] Error 2
make[3]: *** Deleting file β€˜NuttX/nuttx/include/nuttx/config.h’
make[2]: *** [CMakeFiles/Makefile2:17540: NuttX/CMakeFiles/nuttx_boards_build.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs…
cmp: include/nuttx/version.h.tmp: No such file or directory
mv: cannot stat β€˜include/nuttx/version.h.tmp’: No such file or directory
make[4]: *** [tools/Makefile.unix:280: include/nuttx/version.h] Error 1
make[3]: *** [NuttX/CMakeFiles/nuttx_xx_build.dir/build.make:87: NuttX/nuttx/include/nuttx/config.h] Error 2
make[3]: *** Deleting file β€˜NuttX/nuttx/include/nuttx/config.h’
make[2]: *** [CMakeFiles/Makefile2:18117: NuttX/CMakeFiles/nuttx_xx_build.dir/all] Error 2
make[4]: *** [tools/Makefile.unix:357: arch/arm/src/board] Error 1
make[3]: *** [NuttX/CMakeFiles/builtins_clean_target.dir/build.make:72: NuttX/nuttx/include/nuttx/config.h] Error 2
make[2]: *** [CMakeFiles/Makefile2:17640: NuttX/CMakeFiles/builtins_clean_target.dir/all] Error 2
Scanning dependencies of target nuttx_config_target
[ 6%] Copying NuttX/nuttx to build/px4_fmu-v5_default/external/Build/px4io_firmware/NuttX
[ 8%] Generating nuttx_config_kconfig.stamp
[ 8%] Copying NuttX config nsh
[ 8%] Copying NuttX compressed config nsh and inflating (make olddefconfig)
make[7]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
[ 8%] Built target nuttx_config_target
Scanning dependencies of target nuttx_context
[ 8%] Copying NuttX/nuttx to build/px4_fmu-v5_default/external/Build/px4io_firmware/NuttX
[ 8%] Generating nuttx_config_kconfig.stamp
[ 10%] Copying NuttX config nsh
[ 10%] Copying NuttX compressed config nsh and inflating (make olddefconfig)
make[7]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
[ 10%] Generating nuttx/include/nuttx/config.h, nuttx/include/nuttx/version.h
make[7]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
[ 10%] Built target nuttx_context
Scanning dependencies of target nuttx_boards_build
Scanning dependencies of target nuttx_drivers_build
Scanning dependencies of target nuttx_apps_build
Scanning dependencies of target nuttx_xx_build
[ 10%] Copying NuttX/nuttx to build/px4_fmu-v5_default/external/Build/px4io_firmware/NuttX
[ 12%] Generating nuttx_config_kconfig.stamp
[ 12%] Copying NuttX/nuttx to build/px4_fmu-v5_default/external/Build/px4io_firmware/NuttX
[ 12%] Copying NuttX/nuttx to build/px4_fmu-v5_default/external/Build/px4io_firmware/NuttX
[ 12%] Copying NuttX/nuttx to build/px4_fmu-v5_default/external/Build/px4io_firmware/NuttX
[ 12%] Copying NuttX config nsh
[ 12%] Copying NuttX compressed config nsh and inflating (make olddefconfig)
make[7]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
[ 13%] Generating nuttx_config_kconfig.stamp
[ 13%] Generating nuttx_config_kconfig.stamp
[ 13%] Generating nuttx_config_kconfig.stamp
[ 13%] Copying NuttX config nsh
[ 15%] Copying NuttX config nsh
[ 15%] Copying NuttX config nsh
[ 15%] Copying NuttX compressed config nsh and inflating (make olddefconfig)
[ 15%] Copying NuttX compressed config nsh and inflating (make olddefconfig)
[ 15%] Copying NuttX compressed config nsh and inflating (make olddefconfig)
make[7]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
make[7]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
make[7]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
[ 15%] Generating nuttx/include/nuttx/config.h, nuttx/include/nuttx/version.h
make[7]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
make[7]: *** [tools/Makefile.unix:357: arch/arm/src/board] Error 1
make[6]: *** [NuttX/CMakeFiles/nuttx_boards_build.dir/build.make:4360: NuttX/nuttx/include/nuttx/config.h] Error 2
make[6]: *** Deleting file β€˜NuttX/nuttx/include/nuttx/config.h’
make[5]: *** [CMakeFiles/Makefile2:5848: NuttX/CMakeFiles/nuttx_boards_build.dir/all] Error 2
make[5]: *** Waiting for unfinished jobs…
[ 15%] Generating nuttx/include/nuttx/config.h, nuttx/include/nuttx/version.h
make[7]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
[ 15%] Generating nuttx/include/nuttx/config.h, nuttx/include/nuttx/version.h
make[7]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
[ 15%] Generating nuttx/include/nuttx/config.h, nuttx/include/nuttx/version.h
make[7]: warning: jobserver unavailable: using -j1. Add β€˜+’ to parent make rule.
make[7]: *** [tools/Makefile.unix:357: arch/arm/src/board] Error 1
make[6]: *** [NuttX/CMakeFiles/nuttx_apps_build.dir/build.make:72: NuttX/nuttx/include/nuttx/config.h] Error 2
make[6]: *** Deleting file β€˜NuttX/nuttx/include/nuttx/config.h’
make[5]: *** [CMakeFiles/Makefile2:5912: NuttX/CMakeFiles/nuttx_apps_build.dir/all] Error 2
make[7]: *** [tools/Makefile.unix:357: arch/arm/src/board] Error 1
make[6]: *** [NuttX/CMakeFiles/nuttx_xx_build.dir/build.make:87: NuttX/nuttx/include/nuttx/config.h] Error 2
make[5]: *** [CMakeFiles/Makefile2:6381: NuttX/CMakeFiles/nuttx_xx_build.dir/all] Error 2
make[7]: *** [tools/Makefile.unix:357: arch/arm/src/board] Error 1
make[6]: *** [NuttX/CMakeFiles/nuttx_drivers_build.dir/build.make:666: NuttX/nuttx/include/nuttx/config.h] Error 2
make[5]: *** [CMakeFiles/Makefile2:6004: NuttX/CMakeFiles/nuttx_drivers_build.dir/all] Error 2
make[4]: *** [Makefile:106: all] Error 2
make[3]: *** [src/drivers/px4io/CMakeFiles/px4io_firmware.dir/build.make:112: external/Stamp/px4io_firmware/px4io_firmware-build] Error 2
make[2]: *** [CMakeFiles/Makefile2:12325: src/drivers/px4io/CMakeFiles/px4io_firmware.dir/all] Error 2
make[1]: *** [Makefile:152: all] Error 2
make: *** [Makefile:219: px4_fmu-v5_default] Error 2

And this is the output from nuttx_context.log:
LN: include/arch/chip to arch/arm/include/stm32
Create .version
LN: arch/arm/src/board to /home/jlaitine/TII/PX4/Firmware/build/px4_fmu-v5_default/NuttX/nuttx///src
Create .version
No directory at /home/jlaitine/TII/PX4/Firmware/build/px4_fmu-v5_default/NuttX/nuttx///src
Create version.h
Create version.h
LN: include/arch/board to /home/jlaitine/TII/PX4/Firmware/build/px4_fmu-v5_default/NuttX/nuttx///include
LN: include/arch/chip to arch/arm/include/stm32
LN: arch/arm/src/board to /home/jlaitine/TII/PX4/Firmware/build/px4_fmu-v5_default/NuttX/nuttx///src
No directory at /home/jlaitine/TII/PX4/Firmware/build/px4_fmu-v5_default/NuttX/nuttx///src

Answering to myself; never found out what was the problem, but β€œrm -rf * && git reset --hard && git submodule update --recursive --init” just fixed it.

1 Like

Make sure you are cleaning your environment when switching from branches a simple make clean helps clear previous builds and dependencies, and always verify your submodules are updated when switching branches.

Yes, in this case β€œmake clean” didn’t help, and β€œgit status” didn’t show any diff. Go wonder, something was left floating around in ignored files probably.

Did you try a clean build? still no luck?