XSDK: linker error: dhcp_fine_tmr() & dhcp_coarse_tmr() undefined

312 Views Asked by At

What would cause the following Linker Error when compiling C++ XSDK project??

Linker Error Message:

./src/platform/platform_zynq.o: In function `timer_callback(XScuTimer*)':
platform_zynq.c:115:undefined reference to `dhcp_fine_tmr()'

platform_zynq.c:117:undefined reference to `dhcp_coarse_tmr()'

collect2.exe: error: ld returned 1 exit status
make: *** [uartcmd.elf] Error 1

Linker Command as follows:

arm-none-eabi-g++ \
    -mcpu=cortex-a9 \
    -mfpu=vfpv3 \
    -mfloat-abi=hard \
    -Wl,-build-id=none \
    -specs=Xilinx.spec \
    -Wl,-T\
    -Wl,../src/lscript.ld \
    -L../../uartcmd_bsp/ps7_cortexa9_0/lib \
    -o "uartcmd.elf" \
    ./src/platform/platform.o \
    ./src/platform/platform_mb.o \
    ./src/platform/platform_ppc.o \
    ./src/platform/platform_zynq.o \
    ./src/platform/platform_zynqmp.o \
    ./src/fpga_registers2.clang.o \
    ./src/main.o \
    ./src/network.o \
    -Wl,\
    --start-group,-lxil,-lfreertos,-lgcc,-lc,-lstdc++,--end-group\
    -Wl,--start-group,-lxil,-llwip4,-lgcc,-lc,--end-group

Configured Xilinx SDK project as follows:

// Step 0: Create Application Project with FreeRTOS Selected
//
// Step 1: Adding lwIP library to XSDK project.
//
// (2) Right click <app>_bsp and select
// "Board Support Package Settings"
// (3) Click Check box "lwip"
//
// Step 2: Add DHCP Support
// (1) Right click <app>_bsp and select
// "Board Support Package Settings"
// (2) Click Overview:freertos901_xilinx.lwip141
// (3) Check dhcp_options.dhcp_does_arp_check true
// (4) Check dhcp_options.lwip_dhcp true

Symbol Table as Follows:

$ nm ./zynq_rtl.sdk/uartcmd_bsp/ps7_cortexa9_0/lib/liblwip4.a | grep -i dhcp_fine

00001c7c T dhcp_fine_tmr

$ nm ./zynq_rtl.sdk/uartcmd_bsp/ps7_cortexa9_0/lib/liblwip4.a | grep -i dhcp_coarse

00001a54 T dhcp_coarse_tmr

$ nm -C ./uartcmd/Debug/src/platform/platform_zynq.o | grep dhcp_fine

         U dhcp_fine_tmr()

$ nm -C ./uartcmd/Debug/src/platform/platform_zynq.o | grep dhcp_coarse

         U dhcp_coarse_tmr()

Doesn't look like name mangle problem to me... I add "-C" option to prevent demangling of the symbol names...

0

There are 0 best solutions below