Skip to content

Cross-compilation ESP32S3 - collect2: fatal error: ld terminated with signal 11 #3405

@secureshadow

Description

@secureshadow
F´ Version
Affected Component

Problem Description

When building for the ESP32S3, the linker fails to generate the binary file. I don't know if this problem is caused by the use of a .devcontainer (even tho memory and resources are not restricted) or because the compilation process using ESP-IDF toolchain and SDK works different than the normal boards.

Context / Environment

Error when running fprime-util build

[ 99%] Linking CXX executable ../bin/esp32s3/LedBlinker
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
compilation terminated.
gmake[2]: *** [LedBlinker/CMakeFiles/LedBlinker.dir/build.make:284: bin/esp32s3/LedBlinker] Error 1
gmake[2]: *** Deleting file 'bin/esp32s3/LedBlinker'
gmake[1]: *** [CMakeFiles/Makefile2:6605: LedBlinker/CMakeFiles/LedBlinker.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2
[ERROR] CMake erred with return code 2

A more complete log:

 [94%] Built target Drv_Gpio
/usr/bin/gmake  -f F-Prime/Autocoders/Python/src/fprime_ac/generators/templates/CMakeFiles/fprime_codegen.dir/build.make F-Prime/Autocoders/Python/src/fprime_ac/generators/templates/CMakeFiles/fprime_codegen.dir/depend
gmake[2]: Entering directory '/workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3'
cd /workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3 && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /workspaces/solaris-sw-dev /workspaces/solaris-sw-dev/fprime/Autocoders/Python/src/fprime_ac/generators/templates /workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3 /workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3/F-Prime/Autocoders/Python/src/fprime_ac/generators/templates /workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3/F-Prime/Autocoders/Python/src/fprime_ac/generators/templates/CMakeFiles/fprime_codegen.dir/DependInfo.cmake "--color="
gmake[2]: Leaving directory '/workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3'
/usr/bin/gmake  -f F-Prime/Autocoders/Python/src/fprime_ac/generators/templates/CMakeFiles/fprime_codegen.dir/build.make F-Prime/Autocoders/Python/src/fprime_ac/generators/templates/CMakeFiles/fprime_codegen.dir/build
gmake[2]: Entering directory '/workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3'
gmake[2]: Nothing to be done for 'F-Prime/Autocoders/Python/src/fprime_ac/generators/templates/CMakeFiles/fprime_codegen.dir/build'.
gmake[2]: Leaving directory '/workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3'
[ 97%] Built target fprime_codegen
/usr/bin/gmake  -f LedBlinker/Top/CMakeFiles/LedBlinker_Top.dir/build.make LedBlinker/Top/CMakeFiles/LedBlinker_Top.dir/depend
gmake[2]: Entering directory '/workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3'
cd /workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3 && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /workspaces/solaris-sw-dev /workspaces/solaris-sw-dev/LedBlinker/Top /workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3 /workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3/LedBlinker/Top /workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3/LedBlinker/Top/CMakeFiles/LedBlinker_Top.dir/DependInfo.cmake "--color="
gmake[2]: Leaving directory '/workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3'
/usr/bin/gmake  -f LedBlinker/Top/CMakeFiles/LedBlinker_Top.dir/build.make LedBlinker/Top/CMakeFiles/LedBlinker_Top.dir/build
gmake[2]: Entering directory '/workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3'
gmake[2]: Nothing to be done for 'LedBlinker/Top/CMakeFiles/LedBlinker_Top.dir/build'.
gmake[2]: Leaving directory '/workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3'
[ 98%] Built target LedBlinker_Top
/usr/bin/gmake  -f LedBlinker/CMakeFiles/LedBlinker.dir/build.make LedBlinker/CMakeFiles/LedBlinker.dir/depend
gmake[2]: Entering directory '/workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3'
cd /workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3 && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /workspaces/solaris-sw-dev /workspaces/solaris-sw-dev/LedBlinker /workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3 /workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3/LedBlinker /workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3/LedBlinker/CMakeFiles/LedBlinker.dir/DependInfo.cmake "--color="
gmake[2]: Leaving directory '/workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3'
/usr/bin/gmake  -f LedBlinker/CMakeFiles/LedBlinker.dir/build.make LedBlinker/CMakeFiles/LedBlinker.dir/build
gmake[2]: Entering directory '/workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3'
[ 99%] Linking CXX executable ../bin/esp32s3/LedBlinker
cd /workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3/LedBlinker && /usr/bin/cmake -E cmake_link_script CMakeFiles/LedBlinker.dir/link.txt --verbose=1
/opt/esp-tools/tools/xtensa-esp32s3-elf/esp-12.2.0_20230208/xtensa-esp32s3-elf/bin/xtensa-esp32s3-elf-g++ -mlongcalls -ffunction-sections -fdata-sections -nostdlib -O2 -D__XTENSA__ -D__ESP32S3__ -fno-rtti -fno-exceptions -DESP_PLATFORM -Os -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -nostdlib -Wl,--gc-sections -T /opt/esp-idf/components/soc/esp32s3/ld/esp32s3.peripherals.ld -T /opt/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ld -T /opt/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.api.ld -T /opt/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.libgcc.ld -T /opt/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.newlib.ld -T /opt/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.newlib-nano.ld -T /opt/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.newlib-time.ld -T /opt/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.version.ld CMakeFiles/LedBlinker.dir/Main.cpp.obj CMakeFiles/LedBlinker.dir/__/fprime/Os/Stub/DefaultFile.cpp.obj CMakeFiles/LedBlinker.dir/__/fprime/Os/Stub/DefaultConsole.cpp.obj CMakeFiles/LedBlinker.dir/__/fprime/Os/Stub/DefaultCpu.cpp.obj CMakeFiles/LedBlinker.dir/__/fprime/Os/Stub/DefaultMemory.cpp.obj CMakeFiles/LedBlinker.dir/__/fprime/Os/Stub/DefaultRawTime.cpp.obj CMakeFiles/LedBlinker.dir/__/fprime/Fw/Types/snprintf_format.cpp.obj -o ../bin/esp32s3/LedBlinker  ../lib/esp32s3/libconfig.a ../lib/esp32s3/libFw_Cfg.a ../lib/esp32s3/libFw_Types.a ../lib/esp32s3/libFw_Logger.a ../lib/esp32s3/libFw_Obj.a ../lib/esp32s3/libFw_Port.a ../lib/esp32s3/libFw_Time.a ../lib/esp32s3/libFw_Com.a ../lib/esp32s3/libFw_Tlm.a ../lib/esp32s3/libFw_Log.a ../lib/esp32s3/libFw_Cmd.a ../lib/esp32s3/libFw_Prm.a ../lib/esp32s3/libFw_Buffer.a ../lib/esp32s3/libDrv_Ports.a ../lib/esp32s3/libSvc_Sched.a ../lib/esp32s3/libFw_Comp.a ../lib/esp32s3/libComponents_Led.a ../lib/esp32s3/libSvc_Fatal.a ../lib/esp32s3/libSvc_Ping.a ../lib/esp32s3/libOs.a ../lib/esp32s3/libFw_CompQueued.a ../lib/esp32s3/libSvc_ActiveLogger.a ../lib/esp32s3/libSvc_BufferManager.a ../lib/esp32s3/libSvc_CmdDispatcher.a ../lib/esp32s3/libUtils_Hash.a ../lib/esp32s3/libUtils_Types.a ../lib/esp32s3/libSvc_FramingProtocol.a ../lib/esp32s3/libDrv_ByteStreamDriverModel.a ../lib/esp32s3/libSvc_Deframer.a ../lib/esp32s3/libSvc_FatalHandler.a ../lib/esp32s3/libFw_Ports_SuccessCondition.a ../lib/esp32s3/libSvc_Framer.a ../lib/esp32s3/libSvc_Cycle.a ../lib/esp32s3/libSvc_PassiveRateGroup.a ../lib/esp32s3/libSvc_SystemResources.a ../lib/esp32s3/libSvc_TlmChan.a ../lib/esp32s3/libLedBlinker_Top.a ../lib/esp32s3/libOs_File_Stub.a ../lib/esp32s3/libOs_Queue_freeRTOS.a ../lib/esp32s3/libOs_Console_Stub.a ../lib/esp32s3/libOs_Task_freeRTOS.a ../lib/esp32s3/libOs_Mutex_freeRTOS.a ../lib/esp32s3/libOs_Cpu_Stub.a ../lib/esp32s3/libOs_Memory_Stub.a ../lib/esp32s3/libOs_RawTime_Stub.a ../lib/esp32s3/libsnprintf-format.a ../lib/esp32s3/libComponents_Led.a ../lib/esp32s3/libSvc_ActiveLogger.a ../lib/esp32s3/libSvc_BufferManager.a ../lib/esp32s3/libSvc_CmdDispatcher.a ../lib/esp32s3/libSvc_Deframer.a ../lib/esp32s3/libSvc_FatalHandler.a ../lib/esp32s3/libSvc_Fatal.a ../lib/esp32s3/libSvc_Framer.a ../lib/esp32s3/libSvc_FramingProtocol.a ../lib/esp32s3/libUtils_Types.a ../lib/esp32s3/libDrv_ByteStreamDriverModel.a ../lib/esp32s3/libFw_Ports_SuccessCondition.a ../lib/esp32s3/libSvc_PassiveRateGroup.a ../lib/esp32s3/libSvc_Cycle.a ../lib/esp32s3/libSvc_SystemResources.a ../lib/esp32s3/libSvc_TlmChan.a ../lib/esp32s3/libSvc_Sched.a ../lib/esp32s3/libSvc_Ping.a ../lib/esp32s3/libFw_CompQueued.a ../lib/esp32s3/libOs.a ../lib/esp32s3/libOs_Task_Common.a ../lib/esp32s3/libOs_Mutex_Common.a ../lib/esp32s3/libOs_Queue_Common.a ../lib/esp32s3/libDrv_Gpio.a ../lib/esp32s3/libDrv_Ports.a ../lib/esp32s3/libFw_Comp.a ../lib/esp32s3/libOs_File_Common.a ../lib/esp32s3/libUtils_Hash.a ../lib/esp32s3/libOs_Console_Common.a ../lib/esp32s3/libOs_Cpu_Common.a ../lib/esp32s3/libOs_Memory_Common.a ../lib/esp32s3/libOs_RawTime_Common.a ../lib/esp32s3/libFw_Buffer.a ../lib/esp32s3/libFw_Prm.a ../lib/esp32s3/libFw_Cmd.a ../lib/esp32s3/libFw_Log.a ../lib/esp32s3/libFw_Tlm.a ../lib/esp32s3/libFw_Com.a ../lib/esp32s3/libFw_Time.a ../lib/esp32s3/libFw_Port.a ../lib/esp32s3/libFw_Obj.a ../lib/esp32s3/libFw_Logger.a ../lib/esp32s3/libFw_Types.a ../lib/esp32s3/libFw_Cfg.a ../lib/esp32s3/libconfig.a 
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
compilation terminated.
gmake[2]: *** [LedBlinker/CMakeFiles/LedBlinker.dir/build.make:284: bin/esp32s3/LedBlinker] Error 1
gmake[2]: Leaving directory '/workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3'
gmake[2]: *** Deleting file 'bin/esp32s3/LedBlinker'
gmake[1]: Leaving directory '/workspaces/solaris-sw-dev/build-fprime-automatic-esp32s3'
gmake[1]: *** [CMakeFiles/Makefile2:6605: LedBlinker/CMakeFiles/LedBlinker.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2

[ERROR] CMake erred with return code 2

How to Reproduce

  1. Try and build the .devcontainer in a Linux environment
  2. Install the python dependencies pip3 install -r requirrements.txt in the /fprime dir
  3. Run fprime-util generate and fprime-util build

Expected Behavior

100% compilation with the final binary file.

solaris-sw-dev-version-1.0.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions