Skip to content

Usage of W5500lwIP with FreeRTOS SMP gives linker error #3180

@roelandkluit

Description

@roelandkluit

Version 5.3.0 breaks usage of W5500lwIP in combination with Operating System FreeRTOS.

Steps to reproduce:

In Arduino IDE;

  • Open the 'WifiClient-W5500' example
  • In tools, select OS: 'FreeRTOS SMP'
  • Compile

Resulting error:

Compiling core...
Linking everything together...
"C:\Users\user\AppData\Local\arduino15\packages\rp2040\tools\pqt-python3\1.0.1-base-3a57aed-1/python3" -I "C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/tools/simplesub.py" --input "C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/rp2040/memmap_default.ld" --out "C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF/memmap_default.ld" --sub FLASH_LENGTH 2093056 --sub EEPROM_START 270528512 --sub FS_START 270528512 --sub FS_END 270528512 --sub RAM_LENGTH 256k --sub PSRAM_LENGTH 0
"C:\Users\user\AppData\Local\arduino15\packages\rp2040\tools\pqt-gcc\4.1.0-1aec55e/bin/arm-none-eabi-gcc" -Werror=return-type -Wno-psabi -D__FREERTOS -DUSBD_PID=0x000a -DUSBD_VID=0x2e8a -DUSBD_MAX_POWER_MA=250 "-DUSB_MANUFACTURER="Raspberry Pi"" "-DUSB_PRODUCT="Pico"" -DLWIP_IPV6=0 -DLWIP_IPV4=1 -DLWIP_IGMP=1 -DLWIP_CHECKSUM_CTRL_PER_NETIF=1 -DFILE_COPY_CONSTRUCTOR_SELECT=FILE_COPY_CONSTRUCTOR_PUBLIC -DUSE_UTF8_LONG_NAMES=1 -DDISABLE_FS_H_WARNING=1 "-DARDUINO_VARIANT="rpipico"" -DPICO_FLASH_SIZE_BYTES=2097152 "@C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/platform_def.txt" "@C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/rp2040/platform_def.txt" -march=armv6-m -mcpu=cortex-m0plus -mthumb -ffunction-sections -fdata-sections -fno-exceptions -Os -c "C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/boot2/rp2040/boot2_w25q080_2_padded_checksum.S" "-IC:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/pico-sdk/src/rp2040/hardware_regs/include/" "-IC:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/pico-sdk/src/common/pico_binary_info/include" -o "C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF/boot2.o"
"C:\Users\user\AppData\Local\arduino15\packages\rp2040\tools\pqt-gcc\4.1.0-1aec55e/bin/arm-none-eabi-g++" "-LC:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF" -Werror=return-type -Wno-psabi -D__FREERTOS -DUSBD_PID=0x000a -DUSBD_VID=0x2e8a -DUSBD_MAX_POWER_MA=250 "-DUSB_MANUFACTURER="Raspberry Pi"" "-DUSB_PRODUCT="Pico"" -DLWIP_IPV6=0 -DLWIP_IPV4=1 -DLWIP_IGMP=1 -DLWIP_CHECKSUM_CTRL_PER_NETIF=1 -DFILE_COPY_CONSTRUCTOR_SELECT=FILE_COPY_CONSTRUCTOR_PUBLIC -DUSE_UTF8_LONG_NAMES=1 -DDISABLE_FS_H_WARNING=1 "-DARDUINO_VARIANT="rpipico"" -DPICO_FLASH_SIZE_BYTES=2097152 "@C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/platform_def.txt" "@C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/rp2040/platform_def.txt" -march=armv6-m -mcpu=cortex-m0plus -mthumb -ffunction-sections -fdata-sections -fno-exceptions -Os "@C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/rp2040/platform_wrap.txt" "@C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/core_wrap.txt" -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--undefined=runtime_init_install_ram_vector_table -Wl,--undefined=__pre_init_runtime_init_clocks -Wl,--undefined=__pre_init_runtime_init_bootrom_reset -Wl,--undefined=__pre_init_runtime_init_early_resets -Wl,--undefined=__pre_init_runtime_init_usb_power_down -Wl,--undefined=__pre_init_runtime_init_clocks -Wl,--undefined=__pre_init_runtime_init_post_clock_resets -Wl,--undefined=__pre_init_runtime_init_spin_locks_reset -Wl,--undefined=__pre_init_runtime_init_boot_locks_reset -Wl,--undefined=__pre_init_runtime_init_bootrom_locking_enable -Wl,--undefined=__pre_init_runtime_init_mutex -Wl,--undefined=__pre_init_runtime_init_default_alarm_pool -Wl,--undefined=__pre_init_first_per_core_initializer -Wl,--undefined=__pre_init_runtime_init_per_core_bootrom_reset -Wl,--undefined=__pre_init_runtime_init_per_core_h3_irq_registers -Wl,--undefined=__pre_init_runtime_init_per_core_irq_priorities "-Wl,--script=C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF/memmap_default.ld" "-Wl,-Map,C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF/WiFiClient-W5500.ino.map" -o "C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF/WiFiClient-W5500.ino.elf" -Wl,--no-warn-rwx-segments -Wl,--start-group "C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF\sketch\WiFiClient-W5500.ino.cpp.o" "C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF\libraries\lwIP_w5500\lwIP_w5500.a" "C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF\libraries\lwIP_Ethernet\lwIP_Ethernet.a" "C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF\libraries\SPI\SPI.a" "C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF\libraries\WiFi\WiFi.a" "C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF\libraries\Updater\Updater.a" "C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF\libraries\MD5Builder\MD5Builder.a" "C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF\libraries\LittleFS\LittleFS.a" "C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF\libraries\PicoOTA\PicoOTA.a" "C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF/..\..\cores\7337a3463aa701506fcbb83286a2ecff\core.a" "C:\Users\user\AppData\Local\arduino\sketches\890E0786B762089B753D8DF1A3F8A7FF/boot2.o" "C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/rp2040/ota.o" "C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/rp2040/libpico.a" "C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/rp2040/liblwip.a" "C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/rp2040/libbearssl.a" -lm -lc -lstdc++ -lc -Wl,--end-group
C:/Users/user/AppData/Local/arduino15/packages/rp2040/tools/pqt-gcc/4.1.0-1aec55e/bin/../lib/gcc/arm-none-eabi/14.3.0/../../../../arm-none-eabi/bin/ld.exe: C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/rp2040/liblwip.a(cyw43_ctrl.c.o): in function cyw43_ensure_up': /home/earle/Arduino/hardware/pico/rp2040/pico-sdk/lib/cyw43-driver/src/cyw43_ctrl.c:160:(.text.cyw43_ensure_up+0x1a): undefined reference to __wrap_cyw43_cb_tcpip_deinit'
C:/Users/user/AppData/Local/arduino15/packages/rp2040/tools/pqt-gcc/4.1.0-1aec55e/bin/../lib/gcc/arm-none-eabi/14.3.0/../../../../arm-none-eabi/bin/ld.exe: /home/earle/Arduino/hardware/pico/rp2040/pico-sdk/lib/cyw43-driver/src/cyw43_ctrl.c:161:(.text.cyw43_ensure_up+0x22): undefined reference to __wrap_cyw43_cb_tcpip_deinit' C:/Users/user/AppData/Local/arduino15/packages/rp2040/tools/pqt-gcc/4.1.0-1aec55e/bin/../lib/gcc/arm-none-eabi/14.3.0/../../../../arm-none-eabi/bin/ld.exe: C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/rp2040/liblwip.a(cyw43_ctrl.c.o): in function cyw43_cb_process_async_event':
/home/earle/Arduino/hardware/pico/rp2040/pico-sdk/lib/cyw43-driver/src/cyw43_ctrl.c:437:(.text.cyw43_cb_process_async_event+0x8a): undefined reference to __wrap_cyw43_cb_tcpip_set_link_up' C:/Users/user/AppData/Local/arduino15/packages/rp2040/tools/pqt-gcc/4.1.0-1aec55e/bin/../lib/gcc/arm-none-eabi/14.3.0/../../../../arm-none-eabi/bin/ld.exe: /home/earle/Arduino/hardware/pico/rp2040/pico-sdk/lib/cyw43-driver/src/cyw43_ctrl.c:354:(.text.cyw43_cb_process_async_event+0xe4): undefined reference to __wrap_cyw43_cb_tcpip_set_link_down'
C:/Users/user/AppData/Local/arduino15/packages/rp2040/tools/pqt-gcc/4.1.0-1aec55e/bin/../lib/gcc/arm-none-eabi/14.3.0/../../../../arm-none-eabi/bin/ld.exe: /home/earle/Arduino/hardware/pico/rp2040/pico-sdk/lib/cyw43-driver/src/cyw43_ctrl.c:409:(.text.cyw43_cb_process_async_event+0x164): undefined reference to __wrap_cyw43_cb_tcpip_set_link_up' C:/Users/user/AppData/Local/arduino15/packages/rp2040/tools/pqt-gcc/4.1.0-1aec55e/bin/../lib/gcc/arm-none-eabi/14.3.0/../../../../arm-none-eabi/bin/ld.exe: /home/earle/Arduino/hardware/pico/rp2040/pico-sdk/lib/cyw43-driver/src/cyw43_ctrl.c:413:(.text.cyw43_cb_process_async_event+0x16c): undefined reference to __wrap_cyw43_cb_tcpip_set_link_down'
C:/Users/user/AppData/Local/arduino15/packages/rp2040/tools/pqt-gcc/4.1.0-1aec55e/bin/../lib/gcc/arm-none-eabi/14.3.0/../../../../arm-none-eabi/bin/ld.exe: C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/rp2040/liblwip.a(cyw43_ll.c.o): in function cyw43_ll_process_packets': /home/earle/Arduino/hardware/pico/rp2040/pico-sdk/lib/cyw43-driver/src/cyw43_ll.c:1140:(.text.cyw43_ll_process_packets+0x3a): undefined reference to __wrap_cyw43_cb_process_ethernet'
C:/Users/user/AppData/Local/arduino15/packages/rp2040/tools/pqt-gcc/4.1.0-1aec55e/bin/../lib/gcc/arm-none-eabi/14.3.0/../../../../arm-none-eabi/bin/ld.exe: C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0/lib/rp2040/liblwip.a(cyw43_ll.c.o): in function cyw43_do_ioctl': /home/earle/Arduino/hardware/pico/rp2040/pico-sdk/lib/cyw43-driver/src/cyw43_ll.c:1177:(.text.cyw43_do_ioctl+0xbe): undefined reference to __wrap_cyw43_cb_process_ethernet'
collect2.exe: error: ld returned 1 exit status
Using library lwIP_w5500 at version 1 in folder: C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0\libraries\lwIP_w5500
Using library lwIP-Ethernet at version 1 in folder: C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0\libraries\lwIP_Ethernet
Using library SPI at version 1.0 in folder: C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0\libraries\SPI
Using library WiFi at version 1.0.0 in folder: C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0\libraries\WiFi
Using library Updater at version 1.0 in folder: C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0\libraries\Updater
Using library MD5Builder at version 1.0.0 in folder: C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0\libraries\MD5Builder
Using library LittleFS at version 0.1.0 in folder: C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0\libraries\LittleFS
Using library PicoOTA at version 1.0.0 in folder: C:\Users\user\AppData\Local\arduino15\packages\rp2040\hardware\rp2040\5.3.0\libraries\PicoOTA
exit status 1

Compilation error: exit status 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions