I think there is a problem with Makefile.tmpl, line 138, probably introduced in commit 6918e6a76b7ab3e0e7b4f89319ea39d3dad0972b as a result of #9596
Build under Visual Studio 2019 fails with error:
/usr/bin/sh: -c: line 0: unexpected EOF while looking for matching `"'
/usr/bin/sh: -c: line 1: syntax error: unexpected end of file
make[1]: *** [LCD_demo.elf] Error 1
C:/Test Projects/LCD_Make_VS/Makefile:530: recipe for target 'LCD_demo.elf' failed
and MAKEFILE line 529-532 read:
529> $(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS) $(PROJECT).link_script.ld
530> +@echo "$(filter %.o, $^)" > .link_options.txt
531> +@echo "link: $(notdir $@)"
532> @$(LD) $(LD_FLAGS) -T $(filter-out %.o, $^) $(LIBRARY_PATHS) --output $@ @.link_options.txt $(LIBRARIES) $(LD_SYS_LIBS)
@tdjastrzebski Can you send Pr with the fix please
@0xc0170 I would love to but my knowledge of sh and make is limited :/
cc @ARMmbed/mbed-os-tools
Looks like a mismatched quote, but the code seems to be ok. What was the command line used to generate the makefile - I'll try and repeat it.
@mark-edgeworth I do not know exactly how the makefile gets generated behind the scenes. I just exported the program as ZIP package using web interface. However, it seems file gets generated exactly the way it is supposed to, while VS 2019 compiler does not like it. Is that for a good reason? I am unable to tell. I can attach the complete project - if that may help.
Ah, ok, you're exporting using the online IDE. That helps me reproduce this. Thanks for the info.
I think the problem could be NMAKE does not recognize $^ macro while
a caret (^) within a quoted string is treated as a literal caret character
Source:
https://docs.microsoft.com/en-us/cpp/build/reference/filename-macros?view=vs-2019
https://docs.microsoft.com/en-us/cpp/build/reference/special-characters-in-a-makefile?view=vs-2019
https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html
The $^ macro in gnu make represents all of the target's dependencies. Looks like nmake uses '$*' for the same thing. If the '$^' in the generated makefile is replaced with '$*', does this work for you?
@mark-edgeworth That's intersting. Replacing the first (only) occurence of $^ with $** lets the build continue. Some other errors are outputed but, I believe, these are related to different issues.
The second instance of $^ (outside of quotes, 2 lines down) seems to be interpreted OK.
Here is the output:
link: DISCO-F769NI_LCD_demo.elf
c:/program files (x86)/microsoft visual studio/2019/preview/linux/gcc_arm/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: cannot find entry symbol Reset_Handler; defaulting to 08000000
arm-none-eabi-objcopy -O binary DISCO-F769NI_LCD_demo.elf DISCO-F769NI_LCD_demo.bin
===== bin file ready to flash: BUILD/DISCO-F769NI_LCD_demo.bin =====
arm-none-eabi-objcopy -O ihex DISCO-F769NI_LCD_demo.elf DISCO-F769NI_LCD_demo.hex
arm-none-eabi-objcopy: DISCO-F769NI_LCD_demo.hex 64-bit address 0x4b4fa308000000 out of range for Intel Hex file
arm-none-eabi-objcopy:DISCO-F769NI_LCD_demo.hex: bad value
C:/Test Projects/DISCO-F769NI_LCD_Make_VS/Makefile:540: recipe for target 'DISCO-F769NI_LCD_demo.hex' failed
make[1]: *** [DISCO-F769NI_LCD_demo.hex] Error 1
Makefile:25: recipe for target 'all' failed
make: *** [all] Error 2
Ok, that looks like progress, although I'd expect to have to replace all of the $^ references in the makefile for this to work correctly. If you can confirm that this resolves the problem that you originally reported I'll put a patch into the tools package to resolve this.
@mark-edgeworth Exactly, but when I replace the second $^ with $** I get:
link: DISCO-F769NI_LCD_demo.elf
c:/program files (x86)/microsoft visual studio/2019/preview/linux/gcc_arm/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld.exe: cannot open linker script file BSP_DISCO_F769NI: No such file or directory
collect2.exe: error: ld returned 1 exit status
C:/Test Projects/DISCO-F769NI_LCD_Make_VS/Makefile:530: recipe for target 'DISCO-F769NI_LCD_demo.elf' failed
make[1]: *** [DISCO-F769NI_LCD_demo.elf] Error 1
Makefile:25: recipe for target 'all' failed
make: *** [all] Error 2
It looks like undocumented NMAKE 'feature'.
I consider this issue solved. Thank you!
@mark-edgeworth It turns out probably there is nothing wrong with the generated makefile.
What makes a difference is shell being used. Currently, by default VS Code uses MINGW64 version distributed with Git. See: https://code.visualstudio.com/docs/editor/integrated-terminal
When I run make under this shell I get error. When I run the same under windows CMD, PowerShell or build-in sh everything is OK. It is puzzling.


what make versions do they use?
@0xc0170 In both cases I call the same make 4.2.1 from GNU MCU Eclipse Windows Build Tools
https://github.com/gnu-mcu-eclipse/windows-build-tools/releases
I have verified both mingw32-make (4.2.1) and GNU make from
https://github.com/mbuilov/gnumake-windows
give exactly the same results. What makes the difference is the shell.
@0xc0170 It is important to notice that makefile template still could be improved.
Debug dev build detects significant problems and even refuses to complete "all" task.

I've just tried this in a unix-like environment (actually a Mac terminal window). My steps were:
Repeated with the 'export to vscode', same result.
Looks like the generated makefiles work ok with straight make inside a bash shell.
Is there anything that actually needs to change here?
@mark-edgeworth Please try creating new DISCO-F769NI_LCD project, then export as "Make-GCC-ARM", and run make from VS Code bash shell. I just tried with fresh project - it still fails. Interestingly, "Blink LED example" builds OK. Why? It is boyound my understanding.
As long as I use a different shell my project builds fine so I am a happy camper albeit the trap is probably still lurking there.


@mark-edgeworth Perhaps my last thought: maybe this shell has shorter command length limits?
Indeed it may - I would so dearly love to reduce the length of those command lines!
The supplied PR did not actually fix the issue - thus re-opening
Hey guys, i run into the same issue.
i assume that windows cant handle the following call, because the command itself is too long..
C:/Program Files (x86)/Git/bin/sh.exe -c "echo \"TextLCD/TextLCD.o main.o mbed-os/drivers/AnalogIn.o mbed-os/drivers/BusIn.o mbed-os/drivers/BusInOut.o mbed-os/drivers/BusOut.o mbed-os/drivers/CAN.o mbed-os/drivers/Ethernet.o mbed-os/drivers/FlashIAP.o mbed-os/drivers/I2C.o mbed-os/drivers/I2CSlave.o mbed-os/drivers/InterruptIn.o mbed-os/drivers/InterruptManager.o mbed-os/drivers/RawSerial.o mbed-os/drivers/SPI.o mbed-os/drivers/SPISlave.o mbed-os/drivers/Serial.o mbed-os/drivers/SerialBase.o mbed-os/drivers/Ticker.o mbed-os/drivers/Timeout.o mbed-os/drivers/Timer.o mbed-os/drivers/TimerEvent.o mbed-os/drivers/UARTSerial.o mbed-os/events/EventQueue.o mbed-os/events/equeue/equeue.o mbed-os/events/equeue/equeue_mbed.o mbed-os/events/equeue/equeue_posix.o mbed-os/events/mbed_shared_queues.o mbed-os/features/filesystem/Dir.o mbed-os/features/filesystem/File.o mbed-os/features/filesystem/FileSystem.o mbed-os/features/filesystem/bd/ChainingBlockDevice.o mbed-os/features/filesystem/bd/HeapBlockDevice.o mbed-os/features/filesystem/bd/MBRBlockDevice.o mbed-os/features/filesystem/bd/ProfilingBlockDevice.o mbed-os/features/filesystem/bd/SlicingBlockDevice.o mbed-os/features/filesystem/fat/ChaN/ccsbcs.o mbed-os/features/filesystem/fat/ChaN/ff.o mbed-os/features/filesystem/fat/FATFileSystem.o mbed-os/features/frameworks/greentea-client/source/greentea_metrics.o mbed-os/features/frameworks/greentea-client/source/greentea_serial.o mbed-os/features/frameworks/greentea-client/source/greentea_test_env.o mbed-os/features/frameworks/unity/source/unity.o mbed-os/features/frameworks/utest/mbed-utest-shim.o mbed-os/features/frameworks/utest/source/unity_handler.o mbed-os/features/frameworks/utest/source/utest_case.o mbed-os/features/frameworks/utest/source/utest_default_handlers.o mbed-os/features/frameworks/utest/source/utest_greentea_handlers.o mbed-os/features/frameworks/utest/source/utest_harness.o mbed-os/features/frameworks/utest/source/utest_shim.o mbed-os/features/frameworks/utest/source/utest_stack_trace.o mbed-os/features/frameworks/utest/source/utest_types.o mbed-os/features/mbedtls/platform/src/mbed_trng.o mbed-os/features/mbedtls/src/aes.o mbed-os/features/mbedtls/src/aesni.o mbed-os/features/mbedtls/src/arc4.o mbed-os/features/mbedtls/src/asn1parse.o mbed-os/features/mbedtls/src/asn1write.o mbed-os/features/mbedtls/src/base64.o mbed-os/features/mbedtls/src/bignum.o mbed-os/features/mbedtls/src/blowfish.o mbed-os/features/mbedtls/src/camellia.o mbed-os/features/mbedtls/src/ccm.o mbed-os/features/mbedtls/src/certs.o mbed-os/features/mbedtls/src/cipher.o mbed-os/features/mbedtls/src/cipher_wrap.o mbed-os/features/mbedtls/src/cmac.o mbed-os/features/mbedtls/src/ctr_drbg.o mbed-os/features/mbedtls/src/debug.o mbed-os/features/mbedtls/src/des.o mbed-os/features/mbedtls/src/dhm.o mbed-os/features/mbedtls/src/ecdh.o mbed-os/features/mbedtls/src/ecdsa.o mbed-os/features/mbedtls/src/ecjpake.o mbed-os/features/mbedtls/src/ecp.o mbed-os/features/mbedtls/src/ecp_curves.o mbed-os/features/mbedtls/src/entropy.o mbed-os/features/mbedtls/src/entropy_poll.o mbed-os/features/mbedtls/src/error.o mbed-os/features/mbedtls/src/gcm.o mbed-os/features/mbedtls/src/havege.o mbed-os/features/mbedtls/src/hmac_drbg.o mbed-os/features/mbedtls/src/md.o mbed-os/features/mbedtls/src/md2.o mbed-os/features/mbedtls/src/md4.o mbed-os/features/mbedtls/src/md5.o mbed-os/features/mbedtls/src/md_wrap.o mbed-os/features/mbedtls/src/memory_buffer_alloc.o mbed-os/features/mbedtls/src/net_sockets.o mbed-os/features/mbedtls/src/oid.o mbed-os/features/mbedtls/src/padlock.o mbed-os/features/mbedtls/src/pem.o mbed-os/features/mbedtls/src/pk.o mbed-os/features/mbedtls/src/pk_wrap.o mbed-os/features/mbedtls/src/pkcs11.o mbed-os/features/mbedtls/src/pkcs12.o mbed-os/features/mbedtls/src/pkcs5.o mbed-os/features/mbedtls/src/pkparse.o mbed-os/features/mbedtls/src/pkwrite.o mbed-os/features/mbedtls/src/platform.o mbed-os/features/mbedtls/src/ripemd160.o mbed-os/features/mbedtls/src/rsa.o mbed-os/features/mbedtls/src/sha1.o mbed-os/features/mbedtls/src/sha256.o mbed-os/features/mbedtls/src/sha512.o mbed-os/features/mbedtls/src/ssl_cache.o mbed-os/features/mbedtls/src/ssl_ciphersuites.o mbed-os/features/mbedtls/src/ssl_cli.o mbed-os/features/mbedtls/src/ssl_cookie.o mbed-os/features/mbedtls/src/ssl_srv.o mbed-os/features/mbedtls/src/ssl_ticket.o mbed-os/features/mbedtls/src/ssl_tls.o mbed-os/features/mbedtls/src/threading.o mbed-os/features/mbedtls/src/timing.o mbed-os/features/mbedtls/src/version.o mbed-os/features/mbedtls/src/version_features.o mbed-os/features/mbedtls/src/x509.o mbed-os/features/mbedtls/src/x509_create.o mbed-os/features/mbedtls/src/x509_crl.o mbed-os/features/mbedtls/src/x509_crt.o mbed-os/features/mbedtls/src/x509_csr.o mbed-os/features/mbedtls/src/x509write_crt.o mbed-os/features/mbedtls/src/x509write_csr.o mbed-os/features/mbedtls/src/xtea.o mbed-os/features/mbedtls/targets/TARGET_STM/aes_alt.o mbed-os/features/mbedtls/targets/TARGET_STM/md5_alt.o mbed-os/features/mbedtls/targets/TARGET_STM/sha1_alt.o mbed-os/features/mbedtls/targets/TARGET_STM/sha256_alt.o mbed-os/features/netsocket/NetworkInterface.o mbed-os/features/netsocket/NetworkStack.o mbed-os/features/netsocket/Socket.o mbed-os/features/netsocket/SocketAddress.o mbed-os/features/netsocket/TCPServer.o mbed-os/features/netsocket/TCPSocket.o mbed-os/features/netsocket/UDPSocket.o mbed-os/features/netsocket/WiFiAccessPoint.o mbed-os/features/netsocket/cellular/generic_modem_driver/OnboardCellularInterface.o mbed-os/features/netsocket/cellular/generic_modem_driver/PPPCellularInterface.o mbed-os/features/netsocket/cellular/generic_modem_driver/UARTCellularInterface.o mbed-os/features/netsocket/nsapi_dns.o mbed-os/hal/mbed_flash_api.o mbed-os/hal/mbed_gpio.o mbed-os/hal/mbed_lp_ticker_api.o mbed-os/hal/mbed_pinmap_common.o mbed-os/hal/mbed_sleep_manager.o mbed-os/hal/mbed_ticker_api.o mbed-os/hal/mbed_us_ticker_api.o mbed-os/platform/ATCmdParser.o mbed-os/platform/CallChain.o mbed-os/platform/FileBase.o mbed-os/platform/FileHandle.o mbed-os/platform/FilePath.o mbed-os/platform/FileSystemHandle.o mbed-os/platform/LocalFileSystem.o mbed-os/platform/Stream.o mbed-os/platform/mbed_alloc_wrappers.o mbed-os/platform/mbed_application.o mbed-os/platform/mbed_assert.o mbed-os/platform/mbed_board.o mbed-os/platform/mbed_critical.o mbed-os/platform/mbed_error.o mbed-os/platform/mbed_interface.o mbed-os/platform/mbed_mem_trace.o mbed-os/platform/mbed_mktime.o mbed-os/platform/mbed_poll.o mbed-os/platform/mbed_retarget.o mbed-os/platform/mbed_rtc_time.o mbed-os/platform/mbed_sdk_boot.o mbed-os/platform/mbed_semihost_api.o mbed-os/platform/mbed_stats.o mbed-os/platform/mbed_wait_api_no_rtos.o mbed-os/platform/mbed_wait_api_rtos.o mbed-os/rtos/ConditionVariable.o mbed-os/rtos/EventFlags.o mbed-os/rtos/Mutex.o mbed-os/rtos/RtosTimer.o mbed-os/rtos/Semaphore.o mbed-os/rtos/TARGET_CORTEX/mbed_boot.o mbed-os/rtos/TARGET_CORTEX/mbed_rtx_handlers.o mbed-os/rtos/TARGET_CORTEX/mbed_rtx_idle.o mbed-os/rtos/TARGET_CORTEX/rtx4/cmsis_os1.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Config/RTX_Config.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/TOOLCHAIN_GCC/TARGET_RTOS_M4_M7/irq_cm4f.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/rt_OsEventObserver.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/rtx_delay.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/rtx_evflags.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/rtx_evr.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/rtx_kernel.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/rtx_lib.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/rtx_memory.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/rtx_mempool.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/rtx_msgqueue.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/rtx_mutex.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/rtx_semaphore.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/rtx_system.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/rtx_thread.o mbed-os/rtos/TARGET_CORTEX/rtx5/RTX/Source/rtx_timer.o mbed-os/rtos/TARGET_CORTEX/rtx5/Source/os_systick.o mbed-os/rtos/TARGET_CORTEX/rtx5/Source/os_tick_ptim.o mbed-os/rtos/Thread.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/TARGET_NUCLEO_F303RE/PeripheralPins.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/TARGET_NUCLEO_F303RE/system_clock.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/device/TOOLCHAIN_GCC_ARM/startup_stm32f303xe.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/analogin_device.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/analogout_device.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_adc.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_adc_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_can.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_cec.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_comp.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_cortex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_crc.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_crc_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_dac.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_dac_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_dma.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_flash.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_flash_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_gpio.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_hrtim.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_i2c.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_i2c_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_i2s.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_i2s_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_irda.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_iwdg.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_nand.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_nor.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_opamp.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_opamp_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_pccard.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_pcd.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_pcd_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_pwr.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_pwr_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_rcc.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_rcc_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_rtc.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_rtc_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_sdadc.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_smartcard.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_smartcard_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_smbus.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_spi.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_spi_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_sram.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_tim.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_tim_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_tsc.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_uart.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_uart_ex.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_usart.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_wwdg.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_adc.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_comp.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_crc.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_dac.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_dma.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_exti.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_fmc.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_gpio.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_hrtim.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_i2c.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_opamp.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_pwr.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_rcc.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_rtc.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_spi.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_tim.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_usart.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_ll_utils.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/device/system_stm32f3xx.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/gpio_irq_device.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/pwmout_device.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/serial_device.o mbed-os/targets/TARGET_STM/TARGET_STM32F3/spi_api.o mbed-os/targets/TARGET_STM/analogin_api.o mbed-os/targets/TARGET_STM/analogout_api.o mbed-os/targets/TARGET_STM/can_api.o mbed-os/targets/TARGET_STM/gpio_api.o mbed-os/targets/TARGET_STM/gpio_irq_api.o mbed-os/targets/TARGET_STM/hal_tick_16b.o mbed-os/targets/TARGET_STM/hal_tick_32b.o mbed-os/targets/TARGET_STM/i2c_api.o mbed-os/targets/TARGET_STM/lp_ticker.o mbed-os/targets/TARGET_STM/mbed_overrides.o mbed-os/targets/TARGET_STM/pinmap.o mbed-os/targets/TARGET_STM/port_api.o mbed-os/targets/TARGET_STM/pwmout_api.o mbed-os/targets/TARGET_STM/rtc_api.o mbed-os/targets/TARGET_STM/serial_api.o mbed-os/targets/TARGET_STM/sleep.o mbed-os/targets/TARGET_STM/stm_spi_api.o mbed-os/targets/TARGET_STM/trng_api.o mbed-os/targets/TARGET_STM/us_ticker_16b.o mbed-os/targets/TARGET_STM/us_ticker_32b.o\" > .link_options.txt"
Yep, it is not widely known but Windows command cannot exceed 8192 characters.
For this and other reasons I stopped using MAKE tool.
Here is my tutorial on how to live without it
https://github.com/tdjastrzebski/DISCO-F769NI_LCD_demo
It is LCD demo but the same approach can be used for any mbed-os 2 tutorial.
For mbed-os 5 simply use mbed cli.
Thank you for raising this detailed GitHub issue. I am now notifying our internal issue triagers.
Internal Jira reference: https://jira.arm.com/browse/IOTOSM-2214
Most helpful comment
The supplied PR did not actually fix the issue - thus re-opening