Hi guys,
I have just updated the FreeRTOS+TCP library that I was using from version 2.4.0 to the newest 4.2.2. I am cross-compiling it for the Zynq platform using arm-none-eabi-gcc.
After some minor adjustments in my code, the compiler manages to compile all sources, but the linker immediately throws the following error:
Building target: FreeRTOS_ScanAntenna.elf
Invoking: ARM v7 gcc linker
arm-none-eabi-gcc
-mcpu=cortex-a9
-mfpu=vfpv3
-mfloat-abi=hard
-Wl,-build-id=none
-specs=Xilinx.spec
-Wl,-T
-Wl,../src/lscript.ld
-L"E:\Documents\Projekte\RTC-401_Mira\SOW\RevA\CPP\sw_projects\sdk_workspace\te0715_bsp\ps7_cortexa9_0\lib"
-o "FreeRTOS_Project.elf"
./src/... Placeholder for all the .o files of my code ...
./src/FreeRTOS_TCP_IP/portable/NetworkInterface/Zynq/NetworkInterface.o
./src/FreeRTOS_TCP_IP/portable/NetworkInterface/Zynq/uncached_memory.o
./src/FreeRTOS_TCP_IP/portable/NetworkInterface/Zynq/x_emacpsif_dma.o
./src/FreeRTOS_TCP_IP/portable/NetworkInterface/Zynq/x_emacpsif_hw.o
./src/FreeRTOS_TCP_IP/portable/NetworkInterface/Zynq/x_emacpsif_physpeed.o
./src/FreeRTOS_TCP_IP/portable/BufferManagement/BufferAllocation_1.o
./src/FreeRTOS_TCP_IP/portable/BufferManagement/BufferAllocation_2.o
./src/FreeRTOS_TCP_IP/FreeRTOS_ARP.o
./src/FreeRTOS_TCP_IP/FreeRTOS_BitConfig.o
./src/FreeRTOS_TCP_IP/FreeRTOS_DHCP.o
./src/FreeRTOS_TCP_IP/FreeRTOS_DHCPv6.o
./src/FreeRTOS_TCP_IP/FreeRTOS_DNS.o
./src/FreeRTOS_TCP_IP/FreeRTOS_DNS_Cache.o
./src/FreeRTOS_TCP_IP/FreeRTOS_DNS_Callback.o
./src/FreeRTOS_TCP_IP/FreeRTOS_DNS_Networking.o
./src/FreeRTOS_TCP_IP/FreeRTOS_DNS_Parser.o
./src/FreeRTOS_TCP_IP/FreeRTOS_ICMP.o
./src/FreeRTOS_TCP_IP/FreeRTOS_IP.o
./src/FreeRTOS_TCP_IP/FreeRTOS_IP_Timers.o
./src/FreeRTOS_TCP_IP/FreeRTOS_IP_Utils.o
./src/FreeRTOS_TCP_IP/FreeRTOS_IPv4.o
./src/FreeRTOS_TCP_IP/FreeRTOS_IPv4_Sockets.o
./src/FreeRTOS_TCP_IP/FreeRTOS_IPv4_Utils.o
./src/FreeRTOS_TCP_IP/FreeRTOS_IPv6.o
./src/FreeRTOS_TCP_IP/FreeRTOS_IPv6_Sockets.o
./src/FreeRTOS_TCP_IP/FreeRTOS_IPv6_Utils.o
./src/FreeRTOS_TCP_IP/FreeRTOS_ND.o
./src/FreeRTOS_TCP_IP/FreeRTOS_RA.o
./src/FreeRTOS_TCP_IP/FreeRTOS_Routing.o
./src/FreeRTOS_TCP_IP/FreeRTOS_Sockets.o
./src/FreeRTOS_TCP_IP/FreeRTOS_Stream_Buffer.o
./src/FreeRTOS_TCP_IP/FreeRTOS_TCP_IP.o
./src/FreeRTOS_TCP_IP/FreeRTOS_TCP_IP_IPv4.o
./src/FreeRTOS_TCP_IP/FreeRTOS_TCP_IP_IPv6.o
./src/FreeRTOS_TCP_IP/FreeRTOS_TCP_Reception.o
./src/FreeRTOS_TCP_IP/FreeRTOS_TCP_State_Handling.o
./src/FreeRTOS_TCP_IP/FreeRTOS_TCP_State_Handling_IPv4.o
./src/FreeRTOS_TCP_IP/FreeRTOS_TCP_State_Handling_IPv6.o
./src/FreeRTOS_TCP_IP/FreeRTOS_TCP_Transmission.o
./src/FreeRTOS_TCP_IP/FreeRTOS_TCP_Transmission_IPv4.o
./src/FreeRTOS_TCP_IP/FreeRTOS_TCP_Transmission_IPv6.o
./src/FreeRTOS_TCP_IP/FreeRTOS_TCP_Utils.o
./src/FreeRTOS_TCP_IP/FreeRTOS_TCP_Utils_IPv4.o
./src/FreeRTOS_TCP_IP/FreeRTOS_TCP_Utils_IPv6.o
./src/FreeRTOS_TCP_IP/FreeRTOS_TCP_WIN.o
./src/FreeRTOS_TCP_IP/FreeRTOS_Tiny_TCP.o
./src/FreeRTOS_TCP_IP/FreeRTOS_UDP_IP.o
./src/FreeRTOS_TCP_IP/FreeRTOS_UDP_IPv4.o
./src/FreeRTOS_TCP_IP/FreeRTOS_UDP_IPv6.o
./src/FreeRTOS_Sources/portable/MemMang/heap_4.o
./src/FreeRTOS_Sources/portable/GCC/ARM_CA9/port.o
./src/FreeRTOS_Sources/portable/GCC/ARM_CA9/portASM.o
./src/FreeRTOS_Sources/croutine.o
./src/FreeRTOS_Sources/event_groups.o
./src/FreeRTOS_Sources/list.o
./src/FreeRTOS_Sources/queue.o
./src/FreeRTOS_Sources/stream_buffer.o
./src/FreeRTOS_Sources/tasks.o
./src/FreeRTOS_Sources/timers.o
-lm
-Wl,--start-group,-lxil,-lgcc,-lc,--end-group
-Wl,--start-group,-lxilffs,-lxil,-lgcc,-lc,--end-group
-Wl,--start-group,-lrsa,-lxil,-lgcc,-lc,--end-group
c:/xilinx/sdk/2019.1/gnu/aarch32/nt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/8.2.0/../../../../arm-none-eabi/bin/ld.exe: unrecognized option '--e'
In order to make the listing above more readable I replaced the blanks with newlines.
I am sure that the problem lies somwhere within the FreeRTOS+TCP directory, because the error only appeared since I switched to the newer library version and switching the library back to its āoldā version compiles & links flawlessly.
I removed all non-Zynq related ports from within the portable
folder, so there is just code that should be compatible with the environment.
On a side note, I am still using an older version of the FreeRTOS kernel itself (10.2.1). This might not be advisble when using the up-to-date version of the FreeRTOS+TCP stack and I will update the kernel also soon, but I donāt think that it might be the cause for this linker error in this scenario (please correct me if Iām wrong).
Any help would be very appreciated, thank you.