STM32 (by STMicro) compile error on SrcWrapper.cpp

Folks:
I saw this was a bug that was supposedly fixed. But I'm having problems getting ANY STM32F103C8 project to compile. Using IDE v1.8.20 (also tried v1.8.19) with fresh ".arduino15" created by the IDE then install v2.6.0. Simple blink.ino program yields the following error report. Thinking SrcWrapper.h is missing.

Arduino: 1.8.20 (Linux), Board: "Generic STM32F1 series, BluePill F103C8, STM32CubeProgrammer (SWD), Enabled (generic 'Serial'), None, Low/Full Speed, Smallest (-Os default), None, Newlib Nano (default)"

/opt/arduino-1.8.20/arduino-builder -dump-prefs -logger=machine -hardware /opt/arduino-1.8.20/hardware -hardware /home/T138XO/.arduino15/packages -tools /opt/arduino-1.8.20/tools-builder -tools /opt/arduino-1.8.20/hardware/tools/avr -tools /home/T138XO/.arduino15/packages -built-in-libraries /opt/arduino-1.8.20/libraries -libraries /home/T138XO/Arduino/libraries -fqbn=STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8,upload_method=swdMethod,xserial=generic,usb=none,xusb=FS,opt=osstd,dbg=none,rtlib=nano -ide-version=10820 -build-path /tmp/arduino_build_72100 -warnings=none -build-cache /tmp/arduino_cache_373982 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.xpack-arm-none-eabi-gcc.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/xpack-arm-none-eabi-gcc/12.2.1-1.2 -prefs=runtime.tools.xpack-arm-none-eabi-gcc-12.2.1-1.2.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/xpack-arm-none-eabi-gcc/12.2.1-1.2 -prefs=runtime.tools.STM32Tools.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/STM32Tools/2.2.1 -prefs=runtime.tools.STM32Tools-2.2.1.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/STM32Tools/2.2.1 -prefs=runtime.tools.CMSIS.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/CMSIS/5.7.0 -prefs=runtime.tools.CMSIS-5.7.0.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/CMSIS/5.7.0 -prefs=runtime.tools.xpack-openocd.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/xpack-openocd/0.12.0-1 -prefs=runtime.tools.xpack-openocd-0.12.0-1.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/xpack-openocd/0.12.0-1 -verbose /opt/arduino-1.8.20/examples/01.Basics/Blink/Blink.ino
/opt/arduino-1.8.20/arduino-builder -compile -logger=machine -hardware /opt/arduino-1.8.20/hardware -hardware /home/T138XO/.arduino15/packages -tools /opt/arduino-1.8.20/tools-builder -tools /opt/arduino-1.8.20/hardware/tools/avr -tools /home/T138XO/.arduino15/packages -built-in-libraries /opt/arduino-1.8.20/libraries -libraries /home/T138XO/Arduino/libraries -fqbn=STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8,upload_method=swdMethod,xserial=generic,usb=none,xusb=FS,opt=osstd,dbg=none,rtlib=nano -ide-version=10820 -build-path /tmp/arduino_build_72100 -warnings=none -build-cache /tmp/arduino_cache_373982 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.xpack-arm-none-eabi-gcc.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/xpack-arm-none-eabi-gcc/12.2.1-1.2 -prefs=runtime.tools.xpack-arm-none-eabi-gcc-12.2.1-1.2.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/xpack-arm-none-eabi-gcc/12.2.1-1.2 -prefs=runtime.tools.STM32Tools.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/STM32Tools/2.2.1 -prefs=runtime.tools.STM32Tools-2.2.1.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/STM32Tools/2.2.1 -prefs=runtime.tools.CMSIS.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/CMSIS/5.7.0 -prefs=runtime.tools.CMSIS-5.7.0.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/CMSIS/5.7.0 -prefs=runtime.tools.xpack-openocd.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/xpack-openocd/0.12.0-1 -prefs=runtime.tools.xpack-openocd-0.12.0-1.path=/home/T138XO/.arduino15/packages/STMicroelectronics/tools/xpack-openocd/0.12.0-1 -verbose /opt/arduino-1.8.20/examples/01.Basics/Blink/Blink.ino
Using board 'GenF1' from platform in folder: /media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0
Using core 'arduino' from platform in folder: /media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0
/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/extras/prebuild.sh /tmp/arduino_build_72100 /opt/arduino-1.8.20/examples/01.Basics/Blink /media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0

Detecting libraries used...
/home/T138XO/.arduino15/packages/STMicroelectronics/tools/xpack-arm-none-eabi-gcc/12.2.1-1.2/bin/arm-none-eabi-g++ -mcpu=cortex-m3 -DVECT_TAB_OFFSET=0x0 -DUSE_FULL_LL_DRIVER -mthumb @/tmp/arduino_build_72100/sketch/build.opt -c -Os -DNDEBUG -w -std=gnu++17 -ffunction-sections -fdata-sections -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -fno-use-cxa-atexit -I/opt/arduino-1.8.20/examples/01.Basics/Blink -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/avr -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32 -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/LL -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/usb -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/OpenAMP -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/usb/hid -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/usb/cdc -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Drivers/STM32F1xx_HAL_Driver/Inc -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Drivers/STM32F1xx_HAL_Driver/Src -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/STM32F1xx -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/OpenAMP -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/OpenAMP/open-amp/lib/include -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/OpenAMP/libmetal/lib/include -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/OpenAMP/virtual_driver -w -x c++ -E -CC -DSTM32F1xx -DARDUINO=10820 -DARDUINO_BLUEPILL_F103C8 -DARDUINO_ARCH_STM32 "-DBOARD_NAME=\"BLUEPILL_F103C8\"" "-DVARIANT_H=\"variant_PILL_F103Cx.h\"" -DSTM32F103xB -DHAL_UART_MODULE_ENABLED -I/home/T138XO/.arduino15/packages/STMicroelectronics/tools/CMSIS/5.7.0/CMSIS/Core/Include/ -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Drivers/CMSIS/Device/ST/STM32F1xx/Include/ -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc/ -I/home/T138XO/.arduino15/packages/STMicroelectronics/tools/CMSIS/5.7.0/CMSIS/DSP/Include -I/home/T138XO/.arduino15/packages/STMicroelectronics/tools/CMSIS/5.7.0/CMSIS/DSP/PrivateInclude -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/variants/STM32F1xx/F103C8T_F103CB(T-U) /tmp/arduino_build_72100/sketch/Blink.ino.cpp -o /dev/null
Error while detecting libraries included by /tmp/arduino_build_72100/sketch/Blink.ino.cpp

/home/T138XO/.arduino15/packages/STMicroelectronics/tools/xpack-arm-none-eabi-gcc/12.2.1-1.2/bin/arm-none-eabi-g++ -mcpu=cortex-m3 -DVECT_TAB_OFFSET=0x0 -DUSE_FULL_LL_DRIVER -mthumb @/tmp/arduino_build_72100/sketch/build.opt -c -Os -DNDEBUG -w -std=gnu++17 -ffunction-sections -fdata-sections -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -fno-use-cxa-atexit -I/opt/arduino-1.8.20/examples/01.Basics/Blink -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/avr -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32 -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/LL -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/usb -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/OpenAMP -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/usb/hid -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/usb/cdc -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Drivers/STM32F1xx_HAL_Driver/Inc -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Drivers/STM32F1xx_HAL_Driver/Src -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/STM32F1xx -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/OpenAMP -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/OpenAMP/open-amp/lib/include -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/OpenAMP/libmetal/lib/include -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/OpenAMP/virtual_driver -w -x c++ -E -CC -DSTM32F1xx -DARDUINO=10820 -DARDUINO_BLUEPILL_F103C8 -DARDUINO_ARCH_STM32 "-DBOARD_NAME=\"BLUEPILL_F103C8\"" "-DVARIANT_H=\"variant_PILL_F103Cx.h\"" -DSTM32F103xB -DHAL_UART_MODULE_ENABLED -I/home/T138XO/.arduino15/packages/STMicroelectronics/tools/CMSIS/5.7.0/CMSIS/Core/Include/ -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Drivers/CMSIS/Device/ST/STM32F1xx/Include/ -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc/ -I/home/T138XO/.arduino15/packages/STMicroelectronics/tools/CMSIS/5.7.0/CMSIS/DSP/Include -I/home/T138XO/.arduino15/packages/STMicroelectronics/tools/CMSIS/5.7.0/CMSIS/DSP/PrivateInclude -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/variants/STM32F1xx/F103C8T_F103CB(T-U) /tmp/arduino_build_72100/sketch/SrcWrapper.cpp -o /dev/null
Error while detecting libraries included by /tmp/arduino_build_72100/sketch/SrcWrapper.cpp

Generating function prototypes...
/home/T138XO/.arduino15/packages/STMicroelectronics/tools/xpack-arm-none-eabi-gcc/12.2.1-1.2/bin/arm-none-eabi-g++ -mcpu=cortex-m3 -DVECT_TAB_OFFSET=0x0 -DUSE_FULL_LL_DRIVER -mthumb @/tmp/arduino_build_72100/sketch/build.opt -c -Os -DNDEBUG -w -std=gnu++17 -ffunction-sections -fdata-sections -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -fno-use-cxa-atexit -I/opt/arduino-1.8.20/examples/01.Basics/Blink -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/avr -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32 -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/LL -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/usb -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/OpenAMP -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/usb/hid -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino/stm32/usb/cdc -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Drivers/STM32F1xx_HAL_Driver/Inc -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Drivers/STM32F1xx_HAL_Driver/Src -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/STM32F1xx -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/OpenAMP -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/OpenAMP/open-amp/lib/include -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/OpenAMP/libmetal/lib/include -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Middlewares/OpenAMP/virtual_driver -w -x c++ -E -CC -DSTM32F1xx -DARDUINO=10820 -DARDUINO_BLUEPILL_F103C8 -DARDUINO_ARCH_STM32 "-DBOARD_NAME=\"BLUEPILL_F103C8\"" "-DVARIANT_H=\"variant_PILL_F103Cx.h\"" -DSTM32F103xB -DHAL_UART_MODULE_ENABLED -I/home/T138XO/.arduino15/packages/STMicroelectronics/tools/CMSIS/5.7.0/CMSIS/Core/Include/ -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Drivers/CMSIS/Device/ST/STM32F1xx/Include/ -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/system/Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc/ -I/home/T138XO/.arduino15/packages/STMicroelectronics/tools/CMSIS/5.7.0/CMSIS/DSP/Include -I/home/T138XO/.arduino15/packages/STMicroelectronics/tools/CMSIS/5.7.0/CMSIS/DSP/PrivateInclude -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/cores/arduino -I/media/home/T138XO/.arduino15/packages/STMicroelectronics/hardware/stm32/2.6.0/variants/STM32F1xx/F103C8T_F103CB(T-U) /tmp/arduino_build_72100/sketch/Blink.ino.cpp -o /tmp/arduino_build_72100/preproc/ctags_target_for_gcc_minus_e.cpp
/media/home/T138XO/.arduino15/packages/STMicroelectronics/tools/xpack-arm-none-eabi-gcc/12.2.1-1.2/bin/../libexec/gcc/arm-none-eabi/12.2.1/cc1plus: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /media/home/T138XO/.arduino15/packages/STMicroelectronics/tools/xpack-arm-none-eabi-gcc/12.2.1-1.2/bin/../libexec/gcc/arm-none-eabi/12.2.1/cc1plus)
exit status 1
Error compiling for board Generic STM32F1 series.

Hi @scotty264. I think you misinterpreted the output. The error is here:

The toolchain of the "STM32 MCU based boards" platform (AKA "STM32duino") has a dependency on glibc version 2.25 or newer. It is assumed that your Linux distro will provide this dependency. Unfortunately this means that you get this error if your distro doesn't. This is typically caused by using an old version of Linux.

Unfortunately, my experience tells me that there are really only two reasonable fixes:

  • change to using a toolchain built on a machine that uses an older version of glibc
  • Update your Linux installation

The first of these is more feasible for the distributor of the toolchain to do in their build system, but that can be challenging since they may need to set up a container for the build rather that building in the primary machine environment (where you would typically want or need to run a modern version of Linux).

The latter is something you could do, and would likely benefit from in general unless you have some specific reason for using your current Linux version.

Hi:
Thanks for the fast response. "Operators are standing by". LOL
Hmmm... I guess I did miss that one. My distro is:

|Distributor ID:|LinuxMint|
|---|---|
|Description:|Linux Mint 18.3 Sylvia|
|Release:|18.3|
|Codename:|sylvia|

LIBC is v2.23.

GNU C Library (Ubuntu GLIBC 2.23-0ubuntu11.3) stable release version 2.23, by Roland McGrath et al.

It seems that Linux is getting to be as bad as WINDOWS with the forced upgrades to the OS. This is my main development machine and it takes SO MUCH time to re-setup all the little script files and programs to work with a distro upgrade because so many little things seem to change and cause so many big issues with time and energy spent debugging scripts that used to work. Sigh...

Thinking I already have the ARM toolchain installed. Perhaps replace STMicros directory tree with the one installed. I know updates will break it but I don't work with ARM much at this time.

Or, perhaps see if I can get glibc v2.5 to compile with my gcc toolchain.

gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609

Peace and blessings,
JQ

You are welcome. I wish I could have provided a better solution for you. Maybe one of the other forum members will have an idea. I ran into this glibc dependency problem myself with some other projects.

It's worth a try at least. It is located here:

I decided to pull v2.25 of glibc source. If I can get it to compile properly then perhaps that will be the simplest solution.

Peace and blessings,
JQ

The error is caused by incompatibility STM32 build toolchain with your Linux distro. In similar case I just a recompile the compiler tools on my Linux machine using the old glibc source

Thank you for the input ...

So, replace the tool chain in the .arduino15 directory?

Or direct it to my re-built tool chain? How do I tell ARDUINO IDE where to look for the tool chain?

Peace and blessings,
JQ

Either that, or put a symlink there targeting the location of the replacement.

You don't. Arduino IDE expects it to be at the location where it installed it.

Okay, thanks for that input.

Peace and blessings,
JQ

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.