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.

CCS/TCI6636K2H: Cannot build ARM application: complains about libgcc.a not using VFP register arguments

Part Number: TCI6636K2H
Other Parts Discussed in Thread: SYSBIOS,

Tool/software: Code Composer Studio

I've installed:
  • Code Composer Studio v6.2.0.00050

  • Processor SDK v 03.01.00.06 for RTOS

And I have trouble using CCS to start a basic (typical) ARM project and build it for my platform, the TCIEVMK2X evaluation module (uses the TCI6636K2H processor).  These are the steps I followed:
  1. Right click on the "Project Explorer" tab and select "New->CCS Project"
  2. On the second window, selected the project template from "SYS/BIOS -> GNU Target Examples -> Typical".
  3. On the 3rd window, selected the platform "ti.platforms.evmTCI6636K2H", and click on "Finish".
  4. Clicked on the "Build Hammer" button to build the project.

The screenshots for these steps are below:







When I built, I got the following error:

**** Build of configuration Debug for project TypicalARM ****

/home/phoebus/ti/ccsv6/utils/bin/gmake -k all 
Building file: ../app.cfg
Invoking: XDCtools
"/home/phoebus/ti/xdctools_3_32_01_22_core/xs" --xdcpath="/home/phoebus/ti/bios_6_45_01_29/packages;/home/phoebus/ti/ccsv6/ccs_base;" xdc.tools.configuro -o configPkg -t gnu.targets.arm.A15F -p ti.platforms.evmTCI6636K2H -r release -c "/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3" "../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 /home/phoebus/workspace_v6_2/TypicalARM/src/sysbios/sysbios.aa15fg ...
gmake[1]: Entering directory `/home/phoebus/workspace_v6_2/TypicalARM/src/sysbios'
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/IntrinsicsSupport_asm_gnu.asm ...
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/TaskSupport_asm_gnu.asm ...
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/gic/Hwi_asm_gnu.asm ...
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/exc/Exception_asm_gnu.asm ...
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Cache_asm_gnu.asm ...
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Mmu_asm_gnu.asm ...
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/TimestampProvider_asm_gnu.asm ...
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/systimer/Timer_asm_gnu.asm ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/BIOS.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/IntrinsicsSupport.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/TaskSupport.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Clock.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Idle.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Intrinsics.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Queue.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Semaphore.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Swi.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Swi_andn.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Task.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Cache.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Core.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Hwi.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Hwi_stack.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Hwi_startup.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/gic/Hwi.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/exc/Exception.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/rts/gnu/ReentSupport.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/gates/GateHwi.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/gates/GateMutex.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/heaps/HeapMem.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Core.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Cache.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Mmu.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/TimestampProvider.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/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_Swi_andn.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 gnu_ReentSupport.o gates_GateHwi.o gates_GateMutex.o heaps_HeapMem.o a15_Core.o a15_Cache.o a15_Mmu.o a15_TimestampProvider.o systimer_Timer.o ...
gmake[1]: Leaving directory `/home/phoebus/workspace_v6_2/TypicalARM/src/sysbios'
Build of libraries done.
cla15fg package/cfg/app_pa15fg.c ...
Finished building: ../app.cfg
 
making ../src/sysbios/sysbios.aa15fg ...
gmake[1]: Entering directory '/home/phoebus/workspace_v6_2/TypicalARM/src/sysbios'
gmake[1]: Nothing to be done for 'all'.
gmake[1]: Leaving directory '/home/phoebus/workspace_v6_2/TypicalARM/src/sysbios'
Building file: ../main.c
Invoking: GNU Compiler
"/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc" -c -mcpu=cortex-a15 -mtune=cortex-a15 -marm -mfloat-abi=hard -I"/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include" -g -gdwarf-3 -gstrict-dwarf -Wall -MMD -MP -MF"main.d" -MT"main.o" -o"main.o" @"configPkg/compiler.opt" "../main.c"
Finished building: ../main.c
 
Building target: TypicalARM.out
Invoking: GNU Linker
"/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc" -mcpu=cortex-a15 -marm -mfloat-abi=hard -g -gdwarf-3 -gstrict-dwarf -Wall -Wl,-Map,"TypicalARM.map" -nostartfiles -static -Wl,--gc-sections -L"/home/phoebus/ti/bios_6_45_01_29/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu" -o"TypicalARM.out" "./main.o" -Wl,-T"configPkg/linker.cmd" -Wl,--start-group -lgcc -lm -lnosys -lc -Wl,--end-group 
makefile:142: recipe for target 'TypicalARM.out' failed
/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: error: TypicalARM.out uses VFP register arguments, /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(bpabi.o) does not
/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(bpabi.o)
/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: error: TypicalARM.out uses VFP register arguments, /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(_divdi3.o) does not
/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(_divdi3.o)
/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: error: TypicalARM.out uses VFP register arguments, /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(_udivdi3.o) does not
/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(_udivdi3.o)
collect2: error: ld returned 1 exit status
gmake: *** [TypicalARM.out] Error 1
gmake: Target 'all' not remade because of errors.

**** Build Finished ****


I don't understand why a template configuration would result in this error.  The main.c file has no floating point operations, but the linker flags seem to want to link to a "fpu" directory, yet it still searches for a libgcc.a in a different directory.  I did notice that there is NO libgcc.a file in the fpu directory it tried to link to:

~/ti/bios_6_45_01_29/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu$ ls
crt0.o         libgloss-linux.a  librdpmon.a   rdimon-crt0.o  redboot-crt0.o
iq80310.specs  libm.a            linux-crt0.o  rdimon.specs   redboot.ld
libc.a         libnosys.a        linux.specs   rdpmon-crt0.o  redboot.specs
libg.a         librdimon.a       pid.specs     rdpmon.specs   redboot-syscalls.o


Is there a misconfiguration in my environment somewhere, maybe due to an incompatibility between Processor SDK and CCS?


**** Build of configuration Debug for project TypicalARM ****

/home/phoebus/ti/ccsv6/utils/bin/gmake -k all
Building file: ../app.cfg
Invoking: XDCtools
"/home/phoebus/ti/xdctools_3_32_01_22_core/xs" --xdcpath="/home/phoebus/ti/bios_6_45_01_29/packages;/home/phoebus/ti/ccsv6/ccs_base;" xdc.tools.configuro -o configPkg -t gnu.targets.arm.A15F -p ti.platforms.evmTCI6636K2H -r release -c "/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3" "../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 /home/phoebus/workspace_v6_2/TypicalARM/src/sysbios/sysbios.aa15fg ...
gmake[1]: Entering directory `/home/phoebus/workspace_v6_2/TypicalARM/src/sysbios'
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/IntrinsicsSupport_asm_gnu.asm ...
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/TaskSupport_asm_gnu.asm ...
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/gic/Hwi_asm_gnu.asm ...
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/exc/Exception_asm_gnu.asm ...
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Cache_asm_gnu.asm ...
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Mmu_asm_gnu.asm ...
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/TimestampProvider_asm_gnu.asm ...
asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/systimer/Timer_asm_gnu.asm ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/BIOS.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/IntrinsicsSupport.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/TaskSupport.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Clock.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Idle.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Intrinsics.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Queue.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Semaphore.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Swi.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Swi_andn.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Task.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Cache.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Core.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Hwi.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Hwi_stack.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Hwi_startup.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/gic/Hwi.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/exc/Exception.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/rts/gnu/ReentSupport.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/gates/GateHwi.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/gates/GateMutex.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/heaps/HeapMem.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Core.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Cache.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Mmu.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/TimestampProvider.c ...
cla15fg /home/phoebus/ti/bios_6_45_01_29/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_Swi_andn.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 gnu_ReentSupport.o gates_GateHwi.o gates_GateMutex.o heaps_HeapMem.o a15_Core.o a15_Cache.o a15_Mmu.o a15_TimestampProvider.o systimer_Timer.o ...
gmake[1]: Leaving directory `/home/phoebus/workspace_v6_2/TypicalARM/src/sysbios'
Build of libraries done.
cla15fg package/cfg/app_pa15fg.c ...
Finished building: ../app.cfg
 
making ../src/sysbios/sysbios.aa15fg ...
gmake[1]: Entering directory '/home/phoebus/workspace_v6_2/TypicalARM/src/sysbios'
gmake[1]: Nothing to be done for 'all'.
gmake[1]: Leaving directory '/home/phoebus/workspace_v6_2/TypicalARM/src/sysbios'
Building file: ../main.c
Invoking: GNU Compiler
"/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc" -c -mcpu=cortex-a15 -mtune=cortex-a15 -marm -mfloat-abi=hard -I"/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include" -g -gdwarf-3 -gstrict-dwarf -Wall -MMD -MP -MF"main.d" -MT"main.o" -o"main.o" @"configPkg/compiler.opt" "../main.c"
Finished building: ../main.c
 
Building target: TypicalARM.out
Invoking: GNU Linker
"/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc" -mcpu=cortex-a15 -marm -mfloat-abi=hard -g -gdwarf-3 -gstrict-dwarf -Wall -Wl,-Map,"TypicalARM.map" -nostartfiles -static -Wl,--gc-sections -L"/home/phoebus/ti/bios_6_45_01_29/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu" -o"TypicalARM.out" "./main.o" -Wl,-T"configPkg/linker.cmd" -Wl,--start-group -lgcc -lm -lnosys -lc -Wl,--end-group
makefile:142: recipe for target 'TypicalARM.out' failed
/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: error: TypicalARM.out uses VFP register arguments, /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(bpabi.o) does not
/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(bpabi.o)
/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: error: TypicalARM.out uses VFP register arguments, /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(_divdi3.o) does not
/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(_divdi3.o)
/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: error: TypicalARM.out uses VFP register arguments, /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(_udivdi3.o) does not
/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(_udivdi3.o)
collect2: error: ld returned 1 exit status
gmake: *** [TypicalARM.out] Error 1
gmake: Target 'all' not remade because of errors.

**** Build Finished ****

  • Sorry, the formatting on my original post got all garbled, and the images got lost.  Let me try again.


    I've installed:

    • Code Composer Studio v6.2.0.00050
    • Processor SDK v 03.01.00.06 for RTOS

    And I have trouble using CCS to start a basic (typical) ARM project and build it for my platform, the TCIEVMK2X evaluation module (uses the TCI6636K2H processor). These are the steps I followed:

    1. Right click on the "Project Explorer" tab and select "New->CCS Project"
    2. On the second window, selected the project template from "SYS/BIOS -> GNU Target Examples -> Typical".
    3. On the 3rd window, selected the platform "ti.platforms.evmTCI6636K2H", and click on "Finish".
    4. Clicked on the "Build Hammer" button to build the project.

    The screenshots for these steps are below:

    
    

    CCS Project Explorer



    New CCS Project Window



    RTSC Configuration Settings window

    When I built, I got the following error:

    **** Build of configuration Debug for project TypicalARM ****
    
    /home/phoebus/ti/ccsv6/utils/bin/gmake -k all 
    Building file: ../app.cfg
    Invoking: XDCtools
    "/home/phoebus/ti/xdctools_3_32_01_22_core/xs" --xdcpath="/home/phoebus/ti/bios_6_45_01_29/packages;/home/phoebus/ti/ccsv6/ccs_base;" xdc.tools.configuro -o configPkg -t gnu.targets.arm.A15F -p ti.platforms.evmTCI6636K2H -r release -c "/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3" "../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 /home/phoebus/workspace_v6_2/TypicalARM/src/sysbios/sysbios.aa15fg ...
    gmake[1]: Entering directory `/home/phoebus/workspace_v6_2/TypicalARM/src/sysbios'
    asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/IntrinsicsSupport_asm_gnu.asm ...
    asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/TaskSupport_asm_gnu.asm ...
    asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/gic/Hwi_asm_gnu.asm ...
    asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/exc/Exception_asm_gnu.asm ...
    asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Cache_asm_gnu.asm ...
    asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Mmu_asm_gnu.asm ...
    asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/TimestampProvider_asm_gnu.asm ...
    asma15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/systimer/Timer_asm_gnu.asm ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/BIOS.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/IntrinsicsSupport.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/TaskSupport.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Clock.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Idle.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Intrinsics.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Queue.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Semaphore.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Swi.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Swi_andn.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/knl/Task.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Cache.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Core.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Hwi.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Hwi_stack.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/hal/Hwi_startup.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/gic/Hwi.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/exc/Exception.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/rts/gnu/ReentSupport.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/gates/GateHwi.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/gates/GateMutex.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/heaps/HeapMem.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Core.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Cache.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/Mmu.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/packages/ti/sysbios/family/arm/a15/TimestampProvider.c ...
    cla15fg /home/phoebus/ti/bios_6_45_01_29/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_Swi_andn.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 gnu_ReentSupport.o gates_GateHwi.o gates_GateMutex.o heaps_HeapMem.o a15_Core.o a15_Cache.o a15_Mmu.o a15_TimestampProvider.o systimer_Timer.o ...
    gmake[1]: Leaving directory `/home/phoebus/workspace_v6_2/TypicalARM/src/sysbios'
    Build of libraries done.
    cla15fg package/cfg/app_pa15fg.c ...
    Finished building: ../app.cfg
     
    making ../src/sysbios/sysbios.aa15fg ...
    gmake[1]: Entering directory '/home/phoebus/workspace_v6_2/TypicalARM/src/sysbios'
    gmake[1]: Nothing to be done for 'all'.
    gmake[1]: Leaving directory '/home/phoebus/workspace_v6_2/TypicalARM/src/sysbios'
    Building file: ../main.c
    Invoking: GNU Compiler
    "/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc" -c -mcpu=cortex-a15 -mtune=cortex-a15 -marm -mfloat-abi=hard -I"/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include" -g -gdwarf-3 -gstrict-dwarf -Wall -MMD -MP -MF"main.d" -MT"main.o" -o"main.o" @"configPkg/compiler.opt" "../main.c"
    Finished building: ../main.c
     
    Building target: TypicalARM.out
    Invoking: GNU Linker
    "/home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc" -mcpu=cortex-a15 -marm -mfloat-abi=hard -g -gdwarf-3 -gstrict-dwarf -Wall -Wl,-Map,"TypicalARM.map" -nostartfiles -static -Wl,--gc-sections -L"/home/phoebus/ti/bios_6_45_01_29/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu" -o"TypicalARM.out" "./main.o" -Wl,-T"configPkg/linker.cmd" -Wl,--start-group -lgcc -lm -lnosys -lc -Wl,--end-group 
    makefile:142: recipe for target 'TypicalARM.out' failed
    /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: error: TypicalARM.out uses VFP register arguments, /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(bpabi.o) does not
    /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(bpabi.o)
    /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: error: TypicalARM.out uses VFP register arguments, /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(_divdi3.o) does not
    /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(_divdi3.o)
    /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: error: TypicalARM.out uses VFP register arguments, /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(_udivdi3.o) does not
    /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/phoebus/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/libgcc.a(_udivdi3.o)
    collect2: error: ld returned 1 exit status
    gmake: *** [TypicalARM.out] Error 1
    gmake: Target 'all' not remade because of errors.
    
    **** Build Finished ****
    

    I don't understand why a template configuration would result in this error.  The main.c file has no floating point operations, but the linker flags seem to want to link to a "fpu" directory, yet it still searches for a libgcc.a in a different directory.  I did notice that there is NO libgcc.a file in the fpu directory it tried to link to:

    ~/ti/bios_6_45_01_29/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu$ ls
    crt0.o         libgloss-linux.a  librdpmon.a   rdimon-crt0.o  redboot-crt0.o
    iq80310.specs  libm.a            linux-crt0.o  rdimon.specs   redboot.ld
    libc.a         libnosys.a        linux.specs   rdpmon-crt0.o  redboot.specs
    libg.a         librdimon.a       pid.specs     rdpmon.specs   redboot-syscalls.o
    

    Is there a misconfiguration in my environment somewhere, maybe due to an incompatibility between Processor SDK and CCS?

  • Phoebus Chen said:
    Is there a misconfiguration in my environment somewhere, maybe due to an incompatibility between Processor SDK and CCS?

    There is a bug in the CCS 6.2 handling of the flags passed to the GCC linker which causes this - see SYS/BIOS examples for Cortex-A15 generate linker errors in CCS 6.2.0 due to the FPU related flags passed to the GCC linker. As per the referenced thread a work-around is to set the -mfpu option in the project properties to vfpv4.

  • Thanks! That fixed the problem.