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: TMS570LC4357 using CCS+GCC4.9 active --mfloat-abi=hard causes link problem

Tool/software: Code Composer Studio

Hello TI experts,

There is a project may compile and run. Then if active float point hardware function using -mfloat-abi=hard, it fails at link stage.

Log shows something like:

HL_system.o uses VFP register arguments, hercules-gcc-master.out does not

The compiler we used works well when using makefile. Why happens it like that in CCS?

  • Hello,
    post your full Console log.
  • user5655976 said:
    The compiler we used works well when using makefile. Why happens it like that in CCS?

    Please take a close look at the CCS build console vs the output of the makefile build and compare them for differences. If that does not help isolate the problem, please post the full output seen in the CCS build console. 

  • No attachments.
  • Sorry, I try to put my screen snap here. It does not work.
    I am still on checking every options for compile. But is it significant for my problem?
  • Use "Insert Code, Attach Files and more..." to attach files.
  • user5655976 said:
    I am still on checking every options for compile. But is it significant for my problem?


    The error is saying that one of the object files you are linking in is built for VFP register arguments while the main executable is not. Basically the build settings for -mfpu, --mfloat-abi, etc. should match up between all source files, object files and library files. If there is a mismatch, the error will be triggered. That is the reason for asking you to compare the compiler options between the successful build and error build.
  • The error is saying there is mismatch. In my opinion, the options -mfloat-abi=hard, that is the only one related to my error.

    I am pretty sure that option is correctly included in compile and link. That is expectd to be compiled objects and link for VFP register arguments.  

    As a result, it turns out that object files compiled for VFP register arguments, but main executable is not. By the way, there are some assemble code required

    VFP register arguments, otherwise they can not pass the compile. But how to make the executable for VFP register arguments ?

  • Hi,

    To help find out the reason of the mismatch, it is necessary to have the console output. The best way to attach it to this thread is to right-click on the project and select "Rebuild Project". Then, from the Console view, you can simply copy the entire text and paste to this forum using the Copy Build Log button. This will help find out where the disconnection on the options is happening.

    The message itself says the object file build from the source file <HL_system.c> (part of the main SafeTI project) is using the option correctly, but other libraries or dependent projects that comprise the final .out file are not.

    Regards,

    Rafael

  • Hi,

    The lack of communications indicate that you may have overcome this issue. This thread will be closed but feel free to reopen it in case the issue still persists. 

    Regards,

    Rafael