Hi Martin,
There is no problem with the toolchain itself. It just seems to be a change with respect to log output when building with verbose flag.
gcc-7
==================================================
attempt to open c:/st/stm32cubeide_1.5.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o succeeded
gcc-9
==================================================
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924\tools\arm-none-eabi\bin\ld.exe: mode armelf
attempt to open c:/st/stm32cubeide_1.5.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7e-m+fp/hard/crti.o succeeded
With gcc.9 you get an additional log output (with verbose), see line 2 above. Linker is called in mode armelf. Nothing wrong here...
So why do you get an error in the "Problems view" and why is the line highlighted as red in the Console view?
This is because of the console error parser having a regexp that is not explicit enough.
So, if you want to get rid of the error you have two options:
- Turn off verbose
- Or ignore this console output pattern with a new error parser pattern that takes priority
- Window --> Preferences --> C/C++ --> Build --> Settings --> Error Parsers --> GNU Linker error parser
- Find the pattern which is "Error":"(.*[/\\])?ld(\.exe)?: (.*)". Copy it.
- Add a new pattern Set Severity=Ignore. Paste the above pattern and then modify like this "(.*[/\\])?ld(\.exe)?: mode armelf"
- On the new pattern click Move up so that it has higher rank to match instead of the other error.
- Apply and Close
- Re-build - done!
Hope that solves the issue? Will fix for next version. Sharing the work-around here in case other users find the same issue.
Kind regards, Mattias