2023-11-28 5:27 AM - edited 2023-11-28 5:31 AM
Hello. I have the following problem. When I enable flto optimization in a (freshly generated) project, several dozen warnings appear during compilation.
Sample warnings:
Drivers/STM32L4xx_HAL_Driver/Src/subdir.mk:88: warning: pattern recipe did not update peer target 'Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.su'.
Drivers/STM32L4xx_HAL_Driver/Src/subdir.mk:88: warning: pattern recipe did not update peer target 'Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.cyclo'.
This problem was not present on the previous version 1.13.2
How to solve this problem?
2024-09-24 5:07 AM
Version: 1.16.1 -- still not fixed
2024-11-27 1:00 AM
Version: 1.17.0 -- still not fixed. How to get around this?
2024-11-27 4:20 AM
just the internal builder (Properties --- C/C++ Build --- Builder Settings ---- Builder Type = Internal B)
2025-01-07 12:10 AM
Could any ST employee write whether and if so when a solution to this problem is planned?
2025-11-21 1:18 AM - edited 2025-11-21 1:21 AM
This works, thank you, but the internal builder is much slower, and builds take up to twice as long. This may be annoying for larger projects or developers with older CPUs. Make sure to go to the behavior tab and select unlimited jobs. For some reason I can't get the internal builder to use more than 10 threads.
The core issue is with gnu make and is fixed in GCC 14. So I presume this will resolve itself when STM32CubeIDE upgrades to version 14 of the ARM GNU Toolchain.
2025-12-29 10:03 AM
Internal builder is not an option in some cases. Certain features do not work with it, and ST considers it "untested".
It's been a few years, ST really should fix this bug.
2026-03-10 11:09 PM - edited 2026-03-10 11:11 PM
I've found the root cause of the issue, and it's with the autogenerated makefiles.
Regardless of whether stack usage or cyclomatic complexity are enabled, the subdir.mk files that STM32CudeIDE generates ALWAYS generate
Core/Src/%.su Core/Src/%.cyclo:Even if those project options are disabled, these still get generated in the subdir.mk.
So the fix should be simple, update the makefile generator to not generate these lines if the corresponding project settings are not set.
2026-03-13 8:52 PM - edited 2026-03-13 8:53 PM
For now, add this pattern:
to the GNU gmake error parser.
You can find this under Windows -> Preferences -> C/C++ -> Build -> Settings -> Error Parsers.
Make sure that error parser is enabled for your project.
gnu make will still emit this to console, but at least it won't show up on the UI.
If you still want to see the warnings for .o files, modify the regex accordingly.