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.

build attribute vendor section TI missing in....

Other Parts Discussed in Thread: CONTROLSUITE

Linker Gurus,

I'm seeing some strange behavior with C28 CGT v6.1.0.  I have two nearly identical projects both using the same tool chains and options.  One builds fine without warnings while the other throws warning about a missing build attribute.  As you can see below everything (including the library its complaining about) appear to be the same.  Any ideas what could cause this?

Thanks,

Trey

Good Project:

"C:/ti/ccsv5/tools/compiler/c2000_6.1.0/bin/cl2000"
-v28
-ml
-g
--define="_DEBUG"
--define="LARGE_MODEL"
--define="FLASH"
--diag_warning=225
-z
--stack_size=0x380
-m"LED-ColorMix.map"
--warn_sections
-i"C:/ti/ccsv5/tools/compiler/c2000_6.1.0/lib"
-i"C:/ti/ccsv5/tools/compiler/c2000_6.1.0/include"
-i"C:/controlsuite_gitorious_dev/development_kits/C2000_LaunchPad/f2802x_examples/LED_Boost_PC"
--reread_libs
--rom_model
-o "LED-ColorMix.out"  
"./SciCommsGui.obj"
"./PWM_DualUpDwnCnt_Cnf.obj"
"./PWM_1ch_UpDwnCnt_Cnf.obj"
"./PWMDRV_DualUpDwnCnt.obj"
"./PWMDRV_1ch_UpDwnCnt.obj"
"./LED_Boost_PC_Main.obj"
"./LED_Boost_PC_ISR.obj"
"./LED_Boost_PC_DevInit_F2802x.obj"
"./CNTL_2P2Z.obj"
"./ADC_SOC_Cnf.obj"
"./ADCDRV_1ch.obj"
"../F28027_FLASH_LED-ColorMix.cmd"
"C:/controlsuite_gitorious_dev/development_kits/C2000_LaunchPad/f2802x_headers/cmd/F2802x_Headers_nonBIOS.cmd"
"C:/controlsuite_gitorious_dev/development_kits/C2000_LaunchPad/f2802x_common/lib/IQmath.lib"
"C:/controlsuite_gitorious_dev/development_kits/C2000_LaunchPad/f2802x_common/lib/driverlib.lib"
<Linking>
'Finished building target: LED-ColorMix.out'

Bad Project:

"C:/ti/ccsv5/tools/compiler/c2000_6.1.0/bin/cl2000"
-v28
-ml
-g
--define="_DEBUG"
--define="LARGE_MODEL"
--define="FLASH"
--diag_warning=225
-z
--stack_size=0x380
-m"LED-ColorMix.map"
--warn_sections
-i"C:/ti/ccsv5/tools/compiler/c2000_6.1.0/lib"
-i"C:/ti/ccsv5/tools/compiler/c2000_6.1.0/include"
-i"C:/controlsuite_gitorious_dev/development_kits/C2000_LaunchPad/f2802x_examples/LED_Boost_CapTouch"
--reread_libs
--rom_model
 -o "LED-ColorMix.out"  
"./SciCommsGuiCapTouchInt.obj"
"./PWM_DualUpDwnCnt_Cnf.obj"
"./PWM_1ch_UpDwnCnt_Cnf.obj"
"./PWMDRV_DualUpDwnCnt.obj"
"./PWMDRV_1ch_UpDwnCnt.obj"
"./LED_Boost_CapTouch_Main.obj"
"./LED_Boost_CapTouch_ISR.obj"
"./LED_Boost_CapTouch_DevInit_F2802x.obj"
"./CNTL_2P2Z.obj"
"./ADC_SOC_Cnf.obj"
"./ADCDRV_1ch.obj"
"../F28027_FLASH_LED-ColorMix.cmd"
"C:/controlsuite_gitorious_dev/development_kits/C2000_LaunchPad/f2802x_headers/cmd/F2802x_Headers_nonBIOS.cmd"
"C:/controlsuite_gitorious_dev/development_kits/C2000_LaunchPad/f2802x_common/lib/IQmath.lib"
"C:/controlsuite_gitorious_dev/development_kits/C2000_LaunchPad/f2802x_common/lib/driverlib.lib"
<Linking>
warning: build attribute vendor section TI missing in
   "C:/controlsuite_gitorious_dev/development_kits/C2000_LaunchPad/f2802x_commo
   n/lib/IQmath.lib<IQ15div.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in
   "C:/controlsuite_gitorious_dev/development_kits/C2000_LaunchPad/f2802x_commo
   n/lib/IQmath.lib<IQ15frac.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in
   "C:/controlsuite_gitorious_dev/development_kits/C2000_LaunchPad/f2802x_commo
   n/lib/IQmath.lib<IQ15int.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in
   "C:/controlsuite_gitorious_dev/development_kits/C2000_LaunchPad/f2802x_commo
   n/lib/IQmath.lib<IQmathTables.obj>": compatibility cannot be determined
'Finished building target: LED-ColorMix.out'



  • Most likely the library IQmath.lib isn't actually needed in the "good" case, so the problem is not discovered.  Could you examine the linker map file for the "good" case to verify that those four object files from IQmath.lib are not used?

  • The bad project is linking in different files.  So, it is possible that it is bringing in different members of the IQmath library.  And those library members have the problem.

    Try these commands:

    % ar2000 -x IQmath.lib IQ15div.obj
    % ofd2000 IQ15div.obj

    The output of ofd2000 should include something similar to ...

    Build Attributes in "$build.attributes"

    Format Version: 'A'

    <0> Vendor Name: "TI" (Texas Instruments, Inc.)

    Tag_File:
    Attributes:
    Tag_Producer_Name Assembler
    Tag_Producer_VMajor 7 (Producer Major Version + 1)
    Tag_Producer_VMinor 1 (Producer Minor Version + 1)
    Tag_Producer_VPatch 3 (Producer Patch Version + 1)
    Tag_ISA 1 (C2700)
    Tag_Memory_Model 1 (small)
    Tag_Amode 2 (No Amode)

    Do you see something similar?  If so, post it.

    Thanks and regards,

    -George

     

  • Archaeologist,

    You were correct, the library wasn't actually used in the good project.

    Georgem,

    Output didn't have a build attributes section.  See below:


    OBJECT FILE:  IQ15div.obj

     Object File Information

        File Name:                 IQ15div.obj              
        Format:                    TI-COFF Version 2        
        File Type:                 relocatable file         
        Time Stamp:                Tue Apr 22 19:11:01 2008
        Machine:                   TI C2000                 
        Machine Endian:            little endian            
        Entry Point:               0x00000000               
        Vendor:                    Texas Instruments, Inc.  
        Tool Version:              0.0.0                    
        Number of Sections:        4                        
        File Length:               1091                     
        Symbol Table File Offset:  0x000002b4               
        String Table File Offset:  0x0000040a               
        TI-COFF f_flags:           0x00000110               
        CPU Generation:            C2800                    
        Control Data Endian:       little endian            

     Section Information

        id name                      load addr  run addr   size align alloc
        -- ----                      ---------  --------   ---- ----- -----
         1 .text                     0x00000000 0x00000000  0x0     1   Y  
         2 .data                     0x00000000 0x00000000  0x0     1   Y  
         3 .bss                      0x00000000 0x00000000  0x0     1   Y  
         4 IQmath                    0x00000000 0x00000000 0x47     1   Y  

     Relocation Table 1/1 for Section 4 ("IQmath")

        id type    offset     sym name                     
        -- ----    ------     --- ----                     
         0 R_REL22 0x00000008  17 _IQdivTable              
         1 R_REL22 0x0000000e  18 _IQdivRoundSatTable      

     Line Number Table for Section 4 ("IQmath")

        file        function  address     line
        ----        --------  -------     ----
        IQNdiv.asm  $ASM$     0x00000000   245
        IQNdiv.asm  $ASM$     0x00000001   245
        IQNdiv.asm  $ASM$     0x00000002   245
        IQNdiv.asm  $ASM$     0x00000003   245
        IQNdiv.asm  $ASM$     0x00000004   245
        IQNdiv.asm  $ASM$     0x00000005   245
        IQNdiv.asm  $ASM$     0x00000006   245
        IQNdiv.asm  $ASM$     0x00000007   245
        IQNdiv.asm  $ASM$     0x00000008   245
        IQNdiv.asm  $ASM$     0x0000000a   245
        IQNdiv.asm  $ASM$     0x0000000b   245
        IQNdiv.asm  $ASM$     0x0000000c   245
        IQNdiv.asm  $ASM$     0x0000000d   245
        IQNdiv.asm  $ASM$     0x0000000e   245
        IQNdiv.asm  $ASM$     0x00000010   245
        IQNdiv.asm  $ASM$     0x00000011   245
        IQNdiv.asm  $ASM$     0x00000013   245
        IQNdiv.asm  $ASM$     0x00000015   245
        IQNdiv.asm  $ASM$     0x00000016   245
        IQNdiv.asm  $ASM$     0x00000017   245
        IQNdiv.asm  $ASM$     0x00000018   245
        IQNdiv.asm  $ASM$     0x0000001a   245
        IQNdiv.asm  $ASM$     0x0000001c   245
        IQNdiv.asm  $ASM$     0x0000001d   245
        IQNdiv.asm  $ASM$     0x0000001e   245
        IQNdiv.asm  $ASM$     0x00000020   245
        IQNdiv.asm  $ASM$     0x00000022   245
        IQNdiv.asm  $ASM$     0x00000023   245
        IQNdiv.asm  $ASM$     0x00000024   245
        IQNdiv.asm  $ASM$     0x00000025   245
        IQNdiv.asm  $ASM$     0x00000027   245
        IQNdiv.asm  $ASM$     0x00000029   245
        IQNdiv.asm  $ASM$     0x0000002a   245
        IQNdiv.asm  $ASM$     0x0000002b   245
        IQNdiv.asm  $ASM$     0x0000002d   245
        IQNdiv.asm  $ASM$     0x0000002f   245
        IQNdiv.asm  $ASM$     0x00000030   245
        IQNdiv.asm  $ASM$     0x00000031   245
        IQNdiv.asm  $ASM$     0x00000032   245
        IQNdiv.asm  $ASM$     0x00000034   245
        IQNdiv.asm  $ASM$     0x00000036   245
        IQNdiv.asm  $ASM$     0x00000038   245
        IQNdiv.asm  $ASM$     0x0000003a   245
        IQNdiv.asm  $ASM$     0x0000003c   245
        IQNdiv.asm  $ASM$     0x0000003e   245
        IQNdiv.asm  $ASM$     0x0000003f   245
        IQNdiv.asm  $ASM$     0x00000040   245
        IQNdiv.asm  $ASM$     0x00000041   245
        IQNdiv.asm  $ASM$     0x00000043   245
        IQNdiv.asm  $ASM$     0x00000045   245
        IQNdiv.asm  $ASM$     0x00000046   245

     Symbol Table

        id name            value      kind      section         binding type   
        -- ----            -----      ----      -------         ------- ----   
         0 IQNdiv.asm      0x00000000 debug     N/A             local   file   
         1 $10             0x00000041 defined   IQmath          local   none   
         2 $ASM$           0x00000000 defined   IQmath          local   object
         4 .bf             0x00000000 defined   IQmath          local   object
         6 .ef             0x00000047 defined   IQmath          local   object
         8 .text           0x00000000 defined   .text           local   section
        10 .data           0x00000000 defined   .data           local   section
        12 .bss            0x00000000 defined   .bss            local   section
        14 IQmath          0x00000000 defined   IQmath          local   section
        16 __IQ15div       0x00000000 defined   IQmath          global  object
        17 _IQdivTable     0x00000000 undefined N/A             global  none   
        18 _IQdivRoundS... 0x00000000 undefined N/A             global  none   

     String Table

        offset  string               
        ------  ------               
             4  "IQNdiv.asm"         
            15  "__IQ15div"          
            25  "_IQdivTable"        
            37  "_IQdivRoundSatTable"

  • I'm gonna take a wild guess, and say that this library needs to be compiled with a more recent code gen tools version?  Would ya'll concur?

    Trey

  • The tool version number is missing, but given that the object file was created in 2008, yes, this probably predates the use of build attributes.  However, the lack of build attributes won't affect the correctness of the library; you just get a warning, so you don't absolutely need a new copy of the library.

  • That's what I assumed but this code will be going external and I always like my projects to build for customers with no errors and warnings.

    Thanks for the reply!

    Trey German

  • The IQmath library must be built with an older version of the tools.  That version does not put the build attribute information in the object files.  Thus, the linker diagnostic is correct.  The compatibility checks normally performed are skipped over because the build attributes are not present.  

    Thanks and regards,

    -George

  • Hi,

    I'm having the same "problem" with my C2000 project for a 2812 processor after updating to the v6.1.0 compiler: The code works but compiler warns about "build attribute vendor section TI missing in..."

    So I downloaded the newest controlSuite and used the IQmath.lib from there - and still get the same warnings. I verified it with the ar2000 and ofd2000 tools and yes, the IQmath.lib from 2012-06-26 still does not have attribute information. Not satisfying...

    So when you say that
      "The IQmath library must be built with an older version of the tools."

    then you really mean that
      "the IQmath.lib requires to be built with an older version of the tools",
    right?
    (Sorry, I'm not a native english speaker, so "must be built ..." first sounded something like "has unfortunately and unnecessarily been built..." to me.)

    If this is true this means that we:

    • Either have to live with the warning for IQmath.lib - and ignore it.
    • Or we have to disable the warning for all libraries - with the risk of missing relevant warnings for other libraries. Right?

    The same warning is reported for the Flash2812_API_V210.lib library. That library seems to be missing in the controlSuite for the 2812 processor...

  • Dirk Osswald said:
    So when you say that
      "The IQmath library must be built with an older version of the tools."

    then you really mean that
      "the IQmath.lib requires to be built with an older version of the tools",
    right?
    (Sorry, I'm not a native english speaker, so "must be built ..." first sounded something like "has unfortunately and unnecessarily been built..." to me.)

    I understand your confusion.  Sorry about that.  Let me try again ...

    That IQmath library is built with an older version of the tools.  This older version of the tools does not put any compatibility information in the object files.  Thus, the linker is correct to say it cannot check on possible compatibility issues.  Moreover, the IQmath library does not come from the compiler development team, so I cannot say anything about when this issue may be addressed.

    Dirk Osswald said:
    If this is true this means that we:
    • Either have to live with the warning for IQmath.lib - and ignore it.
    • Or we have to disable the warning for all libraries - with the risk of missing relevant warnings for other libraries. Right?

    You are correct on this, despite being unclear on other parts of this thread.
    Dirk Osswald said:
    The same warning is reported for the Flash2812_API_V210.lib library. That library seems to be missing in the controlSuite for the 2812 processor...
    I recommend you pursue this issue, and the IQmath build issue, in the C2000 forum.
    Thanks and regards,
    -George
  • Dear George Mock,


    The above conversion say.. we need to Ignore the following error please help me..


    http://img827.imageshack.us/img827/3480/rpj3.jpg

    Thanks In Advance..

    Vureli Naveen

  • Yes, you can probably ignore it.  This wiki article discusses the details.

    Thanks and regards,

    -George

  • Dear George,

    Thanks for the reply..I have one more doubt about the code generated..I am using the predefined Clark and park transformation..  in my control system developed in Simulink...

    when i try to read the code developed by simulink ..i could not see any clark named .h file or .c file in the header files or Cfiles

    Texas as provided predefined code in DMC libary...

    #include "dmctype.h"
    #include "clarke.h"

    void clarke_calc(CLARKE *v)
    {
    v->Alpha = v->As;

    v->Beta = (v->As + 2*v->Bs)*0.57735026918963; // 1/sqrt(3) = 0.57735026918963
    }

    This type of code is not generated by Simulink when i used the predefined block in the  embedded coder...how I need to assume now. Is simulink is generating the code for the predefined  block or not.

    Or I need to link the DMC library  to simulink??

    Thank you..

    Vureli naveen

     

  • I have no expertise that is helpful here.  In fact, I know so little about this code that I cannot even direct you on where to go next.  This is code from TI?  If you downloaded it from some ti.com web page, does that page say where to go for support?

    Thanks and regards,

    -George