This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5716: GNU linker error with SYS/BIOS example program: minimal.out uses VFP register arguments

Part Number: AM5716
Other Parts Discussed in Thread: SYSBIOS

Hello, I am running into an error with the GNU linker when I try to build the "minimal" SYS/BIOS example for the Cortex A15 core of the AM5716 processor. The error is (the full build output is below):

error: minimal.out uses VFP register arguments, c:/ti/ccs920/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7/nofp\libgcc.a(_udivmoddi4.o) does not

The exact steps that I used are as follows. This is being done in CCS version 9.2.0 and the latest GCC ARM compiler tools from TI (gcc-arm-none-eabi-9-2019-q4-major).

  1. File > New > CCS Project
  2. In the New CCS Project dialog, select the following:
    1. Target dropdown: AM571x - Cortex A15
    2. Dropdown to the right of Target: AM5716
    3. Cortex A [ARM] tab
    4. Compiler version: GNU v9.2.1 (Linaro)
  3. Near the bottom of the dialog, click on the text link to "Import Wizard"
  4. Near the bottom of the Import CCS Projects dialog, check "Copy projects into workspace"
  5. In the "select search-directory" text box, browse to "c:/ti/bios_6_76_02_02"
  6. Under Discovered projects, check "minimal" and then click Finish.
  7. The New CCS Project dialog is shown again with the following settings; confirm that they are correct and then click Next.
    1. Target: AM5716
    2. The only tab shown is Cortex A [ARM]
    3. Project name: minimal
    4. Use default location checked
    5. Compiler version: GNU v9.2.1 (Linaro)
    6. Under Project templates and examples, "Other Examples > Minimal" is selected
  8. The Products dialog is shown with the following settings:
    1. Target (top of dialog): AM5716
    2. The only tab shown is Cortex A [ARM]
    3. XDCtools version: 3.60.1.27_core
    4. Under Products and Repositories, "SYS/BIOS > 6.76.2.02" is selected
    5. Target (bottom of dialog): gnu.targets.arm.A15F
    6. Platform: This is blank; change it to ti.platforms.evmAM571X
    7. Build-profile: release
  9. Click Finish.
  10. Click the hammer icon to build "Debug" for project "minimal"

The build Console output is as follows:

**** Build of configuration Debug for project minimal ****

"C:\\ti\\ccs920\\ccs\\utils\\bin\\gmake" -k -j 7 all -O 
 
Building file: "../app.cfg"
Invoking: XDCtools
"C:/ti/ccs920/xdctools_3_60_01_27_core/xs" --xdcpath="C:/ti/bios_6_76_02_02/packages;" xdc.tools.configuro -o configPkg -t gnu.targets.arm.A15F -p ti.platforms.evmAM571X -r release -c "C:/ti/ccs920/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major" "../app.cfg"
making package.mak (because of package.bld) ...
generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
configuring app.xa15fg from package/cfg/app_pa15fg.cfg ...
generating custom ti.sysbios library makefile ... 
Starting build of library sources ...
making C:/workspace_v9_2/minimal/src/sysbios/sysbios.aa15fg ...
asma15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/IntrinsicsSupport_asm_gnu.asm ...
asma15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/TaskSupport_asm_gnu.asm ...
asma15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/gic/Hwi_asm_gnu.asm ...
asma15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/exc/Exception_asm_gnu.asm ...
asma15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/a15/Cache_asm_gnu.asm ...
asma15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/a15/Mmu_asm_gnu.asm ...
asma15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/a15/TimestampProvider_asm_gnu.asm ...
asma15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/systimer/Timer_asm_gnu.asm ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/BIOS.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/IntrinsicsSupport.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/TaskSupport.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/knl/Clock.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/knl/Idle.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/knl/Intrinsics.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/knl/Queue.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/knl/Semaphore.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/knl/Swi.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/knl/Task.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/hal/Cache.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/hal/Core.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/hal/Hwi.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/hal/Hwi_stack.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/hal/Hwi_startup.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/gic/Hwi.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/exc/Exception.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/gates/GateHwi.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/gates/GateMutex.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/a15/Core.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/a15/Cache.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/a15/Mmu.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/a15/TimestampProvider.c ...
cla15fg C:/ti/bios_6_76_02_02/packages/ti/sysbios/family/arm/systimer/Timer.c ...
ara15fg arm_IntrinsicsSupport_asm_gnu.o arm_TaskSupport_asm_gnu.o gic_Hwi_asm_gnu.o exc_Exception_asm_gnu.o a15_Cache_asm_gnu.o a15_Mmu_asm_gnu.o a15_TimestampProvider_asm_gnu.o systimer_Timer_asm_gnu.o _BIOS.o arm_IntrinsicsSupport.o arm_TaskSupport.o knl_Clock.o knl_Idle.o knl_Intrinsics.o knl_Queue.o knl_Semaphore.o knl_Swi.o knl_Task.o hal_Cache.o hal_Core.o hal_Hwi.o hal_Hwi_stack.o hal_Hwi_startup.o gic_Hwi.o exc_Exception.o gates_GateHwi.o gates_GateMutex.o a15_Core.o a15_Cache.o a15_Mmu.o a15_TimestampProvider.o systimer_Timer.o ...
Build of libraries done.
cla15fg package/cfg/app_pa15fg.c ...
Finished building: "../app.cfg"
 
        1 file(s) copied.
making ../src/sysbios/sysbios.aa15fg ...
gmake[1]: Nothing to be done for 'all'.
Building file: "../main.c"
Invoking: GNU Compiler
"C:/ti/ccs920/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc-9.2.1.exe" -c -mcpu=cortex-a15 -mtune=cortex-a15 -marm -mfloat-abi=hard -Dam5716 -I"C:/workspace_v9_2/minimal" -I"C:/ti/bios_6_76_02_02/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/include/newlib-nano" -I"C:/ti/bios_6_76_02_02/packages/ti/posix/gcc" -I"C:/ti/ccs920/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major/arm-none-eabi/include" -Og -g -gdwarf-3 -gstrict-dwarf -Wall -MMD -MP -MF"main.d" -MT"main.o" -std=c99 @"configPkg/compiler.opt" -o"main.o" "../main.c"
Finished building: "../main.c"
 
making ../src/sysbios/sysbios.aa15fg ...
gmake[2]: Nothing to be done for 'all'.
Building target: "minimal.out"
Invoking: GNU Linker
"C:/ti/ccs920/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc-9.2.1.exe" -mtune=cortex-a15 -Dam5716 -Og -g -gdwarf-3 -gstrict-dwarf -Wall -mcpu=cortex-a15 -Wl,-Map,"minimal.map" -nostartfiles -static -Wl,--gc-sections -L"C:/ti/bios_6_76_02_02/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/hard" -Wl,--defsym,STACKSIZE=0x10000 -Wl,--defsym,HEAPSIZE=0x400 --specs=nano.specs -o"minimal.out" "./main.o" -Wl,-T"configPkg/linker.cmd" -Wl,--start-group -lgcc -lm -lnosys -lc -Wl,--end-group 
makefile:145: recipe for target 'minimal.out' failed
c:/ti/ccs920/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: error: minimal.out uses VFP register arguments, c:/ti/ccs920/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7/nofp\libgcc.a(_udivmoddi4.o) does not
c:/ti/ccs920/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file c:/ti/ccs920/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7/nofp\libgcc.a(_udivmoddi4.o)
collect2.exe: error: ld returned 1 exit status
gmake[1]: *** [minimal.out] Error 1
gmake: *** [all] Error 2
makefile:141: recipe for target 'all' failed

**** Build Finished ****

Thanks in advance for your assistance,

Dave