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.

Using IAR Lib in CCS6 Project

Other Parts Discussed in Thread: TMS570LS3137

Hello,

I have a lib in IAR that I want to use in CCS - I am seeing the following errors I was hoping to get some help with:

error #16004-D: file "E:\Projects\_SVN\trunk\Code\FreeRTOS Example Projects\IAR\HDK_3137_IAR - 2 - Lib\Debug\Exe\HDK_3137_IAR.a<main_blinky.o>" has a Tag_ABI_VFP_args attribute value of "1" that is different than one previously seen ("3"); combining incompatible files

error #16012-D: file "E:\Projects\_SVN\trunk\Code\FreeRTOS Example Projects\IAR\HDK_3137_IAR - 2 - Lib\Debug\Exe\HDK_3137_IAR.a<portASM.o>" does not preserve 8-byte alignment of 8-byte data, but other input files require this; incompatible files

error #16011-D: file "E:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.5/lib/rtsv7R4_A_be_v3D16_eabi.lib<memcmp.obj>" requires 8-byte alignment of 8-byte data, but not all input files preserve this; incompatible files

Thanks In Advance,
johnw

  • Regarding ...

    johnw said:
    error #16004-D: file "E:\Projects\_SVN\trunk\Code\FreeRTOS Example Projects\IAR\HDK_3137_IAR - 2 - Lib\Debug\Exe\HDK_3137_IAR.a<main_blinky.o>" has a Tag_ABI_VFP_args attribute value of "1" that is different than one previously seen ("3"); combining incompatible files

    This is a known problem in the TI linker.  The issue ID is SDSCM00052682, which you can track with the SDOWP link below in my signature.  The workaround is to use --diag_warning=16004 to reduce the error to a warning, or --diag_suppress=16004 to disable it completely.

    Still looking at the other two diagnostics.

    Thanks and regards,

    -George

  • Regarding ...

    johnw said:

    error #16012-D: file "E:\Projects\_SVN\trunk\Code\FreeRTOS Example Projects\IAR\HDK_3137_IAR - 2 - Lib\Debug\Exe\HDK_3137_IAR.a<portASM.o>" does not preserve 8-byte alignment of 8-byte data, but other input files require this; incompatible files

    error #16011-D: file "E:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.5/lib/rtsv7R4_A_be_v3D16_eabi.lib<memcmp.obj>" requires 8-byte alignment of 8-byte data, but not all input files preserve this; incompatible files

    I just posted to a similar thread.  The similarity is in that the linker has detected incompatible object files.  So I make a similar request for further information.  Please show your build options, exactly as the compiler sees them.  Compare that to how the IAR library is built.  You can see that with this command ...

    %prompt> armofd --obj_display=none,battrs HDK_3137_IAR.a
    

    That shows the build attributes from every object file in the library.  We only need to see the build attributes from one file.

    Thanks and regards,

    -George

  • Hello George,

    Here it is:

    e:\Projects\_SVN\trunk\Code\FreeRTOS Example Projects\IAR\HDK_3137_IAR - 2 - Lib\Debug\Exe>armofd --obj_display=no
    ne,battrs HDK_3137_IAR.a

    ARCHIVE: HDK_3137_IAR.a

    OBJECT FILE: BlockQ.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43 2.06
    Tag_CPU_name Cortex-R4
    Tag_CPU_arch 10 (ARM v7)
    Tag_CPU_arch_profile 82 (Real-time profile)
    Tag_THUMB_ISA_use 2 (Some Thumb2 instructions used)
    Tag_VFP_arch 4 (Some VFPv3-D16 instructions used)
    Tag_PCS_config 1 (Bare platform config)
    Tag_ABI_PCS_GOT_use 1 (Data are imported directly)
    Tag_ABI_PCS_wchar_t 2 (Size of wchar_t is 2)
    Tag_ABI_align_needed 1 (8-byte alignment of 8-byte data required)
    Tag_ABI_align_preserved 1 (All required 8-byte alignments are preserved, except for SP in leaf f
    unction)
    Tag_ABI_enum_size 1 (Enum values occupy the smallest container big enough to hold all valu
    es)
    Tag_ABI_VFP_args 3
    Tag_CPU_unaligned_access 1 (Unaligned data accesses were permitted)
    Tag_DIV_use 1 (SDIV and UDIV instructions were not permitted)

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: blocktim.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: cmain.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_0xa

    OBJECT FILE: comtest.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: countsem.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: death.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: dynamic.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: flop_hercules.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: GenQTest.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: gio.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: HAL.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: heap_5.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: het.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: integer.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: list.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43 2.06
    Tag_CPU_name Cortex-R4
    Tag_CPU_arch 10 (ARM v7)
    Tag_CPU_arch_profile 82 (Real-time profile)
    Tag_THUMB_ISA_use 2 (Some Thumb2 instructions used)
    Tag_VFP_arch 4 (Some VFPv3-D16 instructions used)
    Tag_PCS_config 1 (Bare platform config)
    Tag_ABI_PCS_GOT_use 1 (Data are imported directly)
    Tag_ABI_PCS_wchar_t 2 (Size of wchar_t is 2)
    Tag_ABI_align_needed 1 (8-byte alignment of 8-byte data required)
    Tag_ABI_align_preserved 1 (All required 8-byte alignments are preserved, except for SP in leaf f
    unction)
    Tag_ABI_VFP_args 3
    Tag_CPU_unaligned_access 1 (Unaligned data accesses were permitted)
    Tag_DIV_use 1 (SDIV and UDIV instructions were not permitted)

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: low_level_init.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: main.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: main_blinky.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: ParTest.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: pinmux.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: PollQ.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: port.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: portASM.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_0xa

    OBJECT FILE: queue.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: recmutex.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: reg_test.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_0xa

    OBJECT FILE: sci.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: semtest.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: serial.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: sys_core.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_0xa

    OBJECT FILE: sys_esm.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: sys_memory.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_0xa

    OBJECT FILE: sys_phantom.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: sys_startup.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: sys_system.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: tasks.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: timers.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_Section

    OBJECT FILE: tms570ls3137_cstartup.o

    Build Attributes in ".ARM.attributes"

    Format Version: 'A'

    <0> Vendor Name: "aeabi" (ABI for the ARM Architecture)

    Tag_File:
    Attributes:
    Tag_0x43

    <1> Vendor Name: "iar" (IAR Systems)

    Tag_File:
    Attributes:
    Tag_0xa

    e:\Projects\_SVN\trunk\Code\FreeRTOS Example Projects\IAR\HDK_3137_IAR - 2 - Lib\Debug\Exe>

    Thanks,
    John W.
  • I'm sorry, but I cannot explain what is happening.  It is bit odd that so many files in the library, including portASM.o, have no build attributes.  But I don't think that alone explains anything.  

    So, I think we are looking at a bug in the compiler tools.  I'd appreciate if you would send in your project.  Please see this post for the details.

    Thanks and regards,

    -George

  • It's quite weird that some IAR object files have an aeabi build attribute with tag 0x43; that's not a tag the TI tools recognizes for aeabi.
  • Hmm.. according to the ARM spec "Addenda to, and Errata in, the ABI for the ARM Architecture ABI r2.10", tag 0x43 is Tag_conformance. This is legit, but our tools don't handle it. This is a deficiency, but I can't really call it a bug. Still need that test case.
  • George,

    OK - project attached - one using the Export option - the other just zipping up the workspace which has all of the files - including the lib.

    Sorry about this - but I attached the wrong file to this post.

    Thanks,

    John W.

  • George,

    OK - only one file attached - here is the other one; using the CCS export option - I had to manually add the .a lib though.

    Thanks,

    John W.

  •  George,

    Also - for some strange reason now - when I try to run the armofd tool on the lib - armofd is crashing - here's a screen shot.

    Also - under IAR - I have added under Extra Options for the compiler:

    --aeabi
    --guard_calls

    As suggested in the IAR UG.  I haven't seen where that has made any difference though.

    Thanks,

    John

  • Archaeologist,
    Two cases uploaded - hope you can see those OK - let me know if not.
    Thanks,
    John W.
  • Okay, the link failed because the TI compiler does not understand the updated build attributes that the IAR compiler is using. This is not really a bug, but we'll treat it like one. The fact that OFD crashed is definitely a bug, and almost surely the same cause. I've submitted SDSCM00052689 to track this issue.
  • Hello Archaeologist,

    OK - is there a way for me to track progress on this?
    I do have a project where we were hoping this process was going to work - and the project will be delayed due to this.

    Are there link/build settings I can use so this will work?

    Thanks.


    Best Regards,
    John W.

  • Hello,

    I did a search on SDOWP and didn't find: SDSCM00052689 yet.

    I see it now.  Under 

    Personal queries->6.0.x compiler.


    Regards,
    John W.

  • I'm sorry, while the error on Tag_ABI_VFP_args attribute can be fixed, the error involving data alignment is more tricky.  It might actually be the case that the library is incompatible.  However, from looking at a few of the object files in the library, I think the IAR compiler just didn't emit the appropriate build attribute.  This will require a while to analyze.

    Let's assume for the moment that the library really is compatible, and you're only being stopped by the build attribute.  In that case, the workaround is as George suggested in his first post: use use --diag_warning=16004 to downgrade the error to a warning.

  • Hello Archaeologist,

    I have downgraded the error messages to warnings and have got the project to compile and load. I have some debugging to do to see if it is really working or not - but I did make some progress on this.

    I will update this thread as soon as I have more information.

    Thanks,
    John W.
  • <file removed by OP>

    George and Archaeologist,

    I just realized one of the files I uploaded wasn't the correct one - the workspace file is attached.

    Regards,

    John

  • George and Archaeologist,

    I suppressed the error messages; but the program hangs at the first assert it gets to when allocating memory.

    Thanks,
    John W.
  • TI,

    I have not seen CCs to this thread since the site outage this weekend.

    Regards,
    John W.

  • I think there is a high probability that this IAR library is not compatible with the mode the TI library is compiled for, as evidenced by the observed "hang." We are still analyzing this issue (SDSCM00052682 and SDSCM00052689). I'm sorry, I don't have any further insight on your test case at this time.
  • Hello Archaeologist,

    IAR gave me a procedure to check to make sure the lib is compiled properly with the 7.50.2 tools.
    Does TI have a procedure or doc for importing or using or building 3rd party libraries with the CCS build tools?

    Since I see the program hang on memory allocation, I am going to try an alternate memory allocation method to see if I can get it to work.
    I will do this before the end of the day and report back.

    Thanks,
    John W.
  • Hello Archaeologist and George,

    Same result.

    Thanks,
    John W.
  • Hello George,

    I hope you don't mind me asking; are you related to the Mock's in Spurger, TX? I used to help Mr. Mock on his farm. The Spurger Burger place was right next to his place; wow those were great. This is going back a few years. Mr. Mock was in his sixties but could work from dawn to dusk.

    Regards,
    John W.
  • Hello Archaeologist and George,

    Isn't there a fix that will post soon or maybe has for this issue? When I try to update CCS I don't think I've seen it yet.

    Thanks,
    John W.
  • The fix for SDSCM00052682 will be in 15.12.2.LTS, the next ARM release. I don't know the exact release date.
  • I see CCS 6.1.3 was just released.

  • TI ARM compiler version 15.12.2.LTS has not been released.
    TI compiler versions are not related to or tied to CCS versions.
  • Hello Archaeologist (and George),

    Someone told me the fix was originally due on March 31st, then that slipped to April 21st due to TI wanting more test time.
    Just trying to understand where those dates had come from.

    What about SDSCM00052689? I see it has a target release of 15.13.0A .

    Thanks,
    John W.
  • Ignore SDSCM00052689. The one you need is SDSCM00052682.
  • Hello Archaeologist,

    OK.

    Thanks,
    John
  • Hello George and/or Archaeologist,

    Any news?  People on my end are asking.

    Thanks,
    johnw 

  • I just ran an update and looks like it grabbed the 15.12.2.LTS version of the tools.
  • Hello,

    Is it still necessary to set these to get a successful compile:?

    --diag_warning=16011 --diag_warning=16012 --diag_warning=16004

    Thanks,
    johnw
  • I'm confident the answer is no.  That said, I don't have a test case I can try, so I am not certain.

    Thanks and regards,

    -George

  • Hello George,

    Here is the log from the test case I have - it's the same test case that I had uploaded here before - all libs have been recompiled:
    (of particular interest is rtsv7R4_T_be_v3D16_eabi.lib - I have recompiled that lib making sure it used the 15.12.2.LTS tools)

    **** Build of configuration Debug for project CCS IAR LINK Test App ****

    "E:\\ti\\ccsv6\\utils\\bin\\gmake" -k all
    'Building file: ../source/app_example.c'
    'Invoking: ARM Compiler'
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/bin/armcl" -mv7R4 --code_state=16 --float_support=VFPv3D16 --include_path="E:/Projects/_SVN/trunk/Code/CCS IAR Link APP Dir/CCS IAR LINK Test App/source/include" --include_path="E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/include" -g --rtti --keep_unneeded_statics --diag_warning=225 --diag_warning=16011 --diag_warning=16012 --diag_warning=16004 --display_error_number --issue_remarks --diag_wrap=on --verbose_diagnostics --enum_type=packed --abi=eabi -mt -k --asm_listing --output_all_syms --preproc_with_compile --preproc_dependency="source/app_example.d" --obj_directory="source" "../source/app_example.c"
    "../source/app_example.c", line 120: remark #880-D: parameter "pvParameter"
    was never referenced
    BaseType_t prvExampleTaskHook4( void * pvParameter )
    ^

    "../source/app_example.c", line 123: warning #179-D: variable "testChar" was
    declared but never referenced
    uint8_t testChar;
    ^

    "../source/app_example.c", line 124: warning #179-D: variable "counter" was
    declared but never referenced
    static unsigned int counter = 0;
    ^

    'Finished building: ../source/app_example.c'
    ' '
    'Building file: ../source/intvecUser.s'
    'Invoking: ARM Compiler'
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/bin/armcl" -mv7R4 --code_state=16 --float_support=VFPv3D16 --include_path="E:/Projects/_SVN/trunk/Code/CCS IAR Link APP Dir/CCS IAR LINK Test App/source/include" --include_path="E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/include" -g --rtti --keep_unneeded_statics --diag_warning=225 --diag_warning=16011 --diag_warning=16012 --diag_warning=16004 --display_error_number --issue_remarks --diag_wrap=on --verbose_diagnostics --enum_type=packed --abi=eabi -mt -k --asm_listing --output_all_syms --preproc_with_compile --preproc_dependency="source/intvecUser.d" --obj_directory="source" "../source/intvecUser.s"
    'Finished building: ../source/intvecUser.s'
    ' '
    'Building target: CCS IAR LINK Test App.out'
    'Invoking: ARM Linker'
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/bin/armcl" -mv7R4 --code_state=16 --float_support=VFPv3D16 -g --rtti --keep_unneeded_statics --diag_warning=225 --diag_warning=16011 --diag_warning=16012 --diag_warning=16004 --display_error_number --issue_remarks --diag_wrap=on --verbose_diagnostics --enum_type=packed --abi=eabi -mt -k --asm_listing --output_all_syms -z -m"CCS IAR LINK Test App.map" --stack_size=0x1000 --heap_size=0x1000 -i"E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib" -i"E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/include" --reread_libs --display_error_number --issue_remarks --warn_sections --verbose_diagnostics --diag_wrap=off --xml_link_info="CCS IAR LINK Test App_linkInfo.xml" --rom_model --be32 --unused_section_elimination=off --compress_dwarf=off --zero_init=on --strict_compatibility=on -o "CCS IAR LINK Test App.out" "./source/app_example.obj" "./source/intvecUser.obj" "../sys_link.cmd" -l"E:/Projects/_SVN/trunk/Code/FreeRTOS Example Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a" -lrtsv7R4_T_be_v3D16_eabi.lib ../HDK_3137_IAR.a
    <Linking>
    warning #16004-D: file "E:/Projects/_SVN/trunk/Code/FreeRTOS Example
    Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a<cmain.o>" has a
    Tag_ABI_VFP_args attribute value of "0" that is different than one
    previously seen ("1"); combining incompatible files
    warning #16012-D: file "E:/Projects/_SVN/trunk/Code/FreeRTOS Example
    Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a<cmain.o>" does
    not preserve 8-byte alignment of 8-byte data, but other input files require
    this; incompatible files
    warning #16004-D: file "E:/Projects/_SVN/trunk/Code/FreeRTOS Example
    Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a<portASM.o>" has
    a Tag_ABI_VFP_args attribute value of "0" that is different than one
    previously seen ("1"); combining incompatible files
    warning #16012-D: file "E:/Projects/_SVN/trunk/Code/FreeRTOS Example
    Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a<portASM.o>"
    does not preserve 8-byte alignment of 8-byte data, but other input files
    require this; incompatible files
    warning #16004-D: file "E:/Projects/_SVN/trunk/Code/FreeRTOS Example
    Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a<reg_test.o>"
    has a Tag_ABI_VFP_args attribute value of "0" that is different than one
    previously seen ("1"); combining incompatible files
    warning #16012-D: file "E:/Projects/_SVN/trunk/Code/FreeRTOS Example
    Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a<reg_test.o>"
    does not preserve 8-byte alignment of 8-byte data, but other input files
    require this; incompatible files
    warning #16004-D: file "E:/Projects/_SVN/trunk/Code/FreeRTOS Example
    Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a<sys_core.o>"
    has a Tag_ABI_VFP_args attribute value of "0" that is different than one
    previously seen ("1"); combining incompatible files
    warning #16012-D: file "E:/Projects/_SVN/trunk/Code/FreeRTOS Example
    Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a<sys_core.o>"
    does not preserve 8-byte alignment of 8-byte data, but other input files
    require this; incompatible files
    warning #16012-D: file "E:/Projects/_SVN/trunk/Code/FreeRTOS Example
    Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a<XXexit.o>" does
    not preserve 8-byte alignment of 8-byte data, but other input files require
    this; incompatible files
    warning #16011-D: file
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<
    copy_decompress_none.obj>" requires 8-byte alignment of 8-byte data, but not
    all input files preserve this; incompatible files
    warning #16011-D: file
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<
    copy_decompress_rle.obj>" requires 8-byte alignment of 8-byte data, but not
    all input files preserve this; incompatible files
    warning #16011-D: file
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<
    copy_zero_init.obj>" requires 8-byte alignment of 8-byte data, but not all
    input files preserve this; incompatible files
    warning #16011-D: file
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<
    exit.obj>" requires 8-byte alignment of 8-byte data, but not all input files
    preserve this; incompatible files
    warning #16011-D: file
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<
    memcpy_t2.obj>" requires 8-byte alignment of 8-byte data, but not all input
    files preserve this; incompatible files
    warning #16011-D: file
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<
    memset_t2.obj>" requires 8-byte alignment of 8-byte data, but not all input
    files preserve this; incompatible files
    warning #16011-D: file
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<
    _lock.obj>" requires 8-byte alignment of 8-byte data, but not all input
    files preserve this; incompatible files
    'Finished building target: CCS IAR LINK Test App.out'
    ' '
    "E:/ti/ccsv6/utils/tiobj2bin/tiobj2bin.bat" "CCS IAR LINK Test App.out" "CCS IAR LINK Test App.bin" "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/bin/armofd.exe" "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/bin/armhex.exe" "E:/ti/ccsv6/utils/tiobj2bin/mkhex4bin.exe"
    ' '

    **** Build Finished ****
    Thanks,
    John
  • As noted earlier in this thread, these files may or may not actually be compatible. From the looks of the IAR object files, I would guess that the IAR compiler just didn't set these build attributes as completely as the TI compiler thinks they should have. If these files are actually compatible, you'll need to continue to use those error suppression options; if this turns out to be the case, you might want to take it up with IAR. If the files are not in fact compatible, you are in a bit of a hard place. From looking at the IAR object files in that library, it seems sys_core.o and tms570ls3137_cstartup.o do have some floating-point instructions, but I don't think they are passed as arguments to functions. It would be a lot harder to analyze them by hand for alignment properties.
  • Hello Archaeologist,

    IAR is aware of this - they have been following it and their compiler team has been in contact with TI. I only know the name of the IAR contact that I have at the moment and you and George.

    IAR has the same report as you do above.

    Since I recompiled the lib - do you know why I am getting these?:

    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<
    copy_decompress_none.obj>" requires 8-byte alignment of 8-byte data, but not
    all input files preserve this; incompatible files
    warning #16011-D: file
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<
    copy_decompress_rle.obj>" requires 8-byte alignment of 8-byte data, but not
    all input files preserve this; incompatible files
    warning #16011-D: file
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<
    copy_zero_init.obj>" requires 8-byte alignment of 8-byte data, but not all
    input files preserve this; incompatible files
    warning #16011-D: file
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<
    exit.obj>" requires 8-byte alignment of 8-byte data, but not all input files
    preserve this; incompatible files
    warning #16011-D: file
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<
    memcpy_t2.obj>" requires 8-byte alignment of 8-byte data, but not all input
    files preserve this; incompatible files
    warning #16011-D: file
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<
    memset_t2.obj>" requires 8-byte alignment of 8-byte data, but not all input
    files preserve this; incompatible files
    warning #16011-D: file
    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<
    _lock.obj>" requires 8-byte alignment of 8-byte data, but not all input
    files preserve this; incompatible files

    Thanks,
    John W.
  • Hello Archaeologist and George,

    Using this directive in the assembly files I got rid of the Tag_ABI_VFP_args message and am here now:
    (AAPCS VFP_COMPATIBLE)

    warning #16012-D: file "E:/Projects/Altest_SVN/trunk/Code/FreeRTOS Example
    Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a<cmain.o>" does
    not preserve 8-byte alignment of 8-byte data, but other input files require
    this; incompatible files
    warning #16012-D: file "E:/Projects/Altest_SVN/trunk/Code/FreeRTOS Example
    Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a<portASM.o>"
    does not preserve 8-byte alignment of 8-byte data, but other input files
    require this; incompatible files
    warning #16012-D: file "E:/Projects/Altest_SVN/trunk/Code/FreeRTOS Example
    Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a<reg_test.o>"
    does not preserve 8-byte alignment of 8-byte data, but other input files
    require this; incompatible files
    warning #16011-D: file "E:/Projects/Altest_SVN/trunk/Code/FreeRTOS Example
    Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a<sys_core.o>"
    requires 8-byte alignment of 8-byte data, but not all input files preserve
    this; incompatible files
    warning #16012-D: file "E:/Projects/Altest_SVN/trunk/Code/FreeRTOS Example
    Projects/IAR/HDK_3137_IAR - 2 - Lib/Debug/Exe/HDK_3137_IAR.a<XXexit.o>" does
    not preserve 8-byte alignment of 8-byte data, but other input files require
    this; incompatible files

    Regards,
    John W.
  • johnw said:
    their compiler team has been in contact with TI

    Who exactly at TI, do you know?  We need to get the compiler teams in communication on this.

    You're getting those messages because the TI library really does require 8-byte alignment of 8-bit data, and the IAR compiler does not set that build attribute, which is the same as setting it to 0, meaning that it does not preserve alignment.

  • OK - Let's discuss this first:

    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<

    copy_decompress_none.obj>" requires 8-byte alignment of 8-byte data, but not

    all input files preserve this; incompatible files

    warning #16011-D: file

    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<

    copy_decompress_rle.obj>" requires 8-byte alignment of 8-byte data, but not

    all input files preserve this; incompatible files

    warning #16011-D: file

    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<

    copy_zero_init.obj>" requires 8-byte alignment of 8-byte data, but not all

    input files preserve this; incompatible files

    warning #16011-D: file

    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<

    exit.obj>" requires 8-byte alignment of 8-byte data, but not all input files

    preserve this; incompatible files

    warning #16011-D: file

    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<

    memcpy_t2.obj>" requires 8-byte alignment of 8-byte data, but not all input

    files preserve this; incompatible files

    warning #16011-D: file

    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<

    memset_t2.obj>" requires 8-byte alignment of 8-byte data, but not all input

    files preserve this; incompatible files

    warning #16011-D: file

    "E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<

    _lock.obj>" requires 8-byte alignment of 8-byte data, but not all input

    files preserve this; incompatible files

    'Finished building target: CCS IAR LINK Test App.out'

    ' '

    rtsv7R4_T_be_v3D16_eabi.lib  <<<=== TI LIBRARY

    E:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib<

    _lock.obj>" requires 8-byte alignment of 8-byte data, but not all input

    files preserve this; incompatible files   <<<< This is commenting that a TI Library compiled with TI tools is NOT compatible.

    YES OR NO?

    I have asked this several times.

     

  • We don't know for sure. The build attributes say "no," but we currently doubt the accuracy of the build attributes.

    The TI library is compatible with EABI. Yes, the linker error message names the library, but compatibility is a two-way street. The error might just as well be saying "cmain.o is not compatible with rtsv7R4_T_be_v3D16_eabi.lib"

    There are a variety of ways you can compile ARM object files that are still compatible with EABI, but not necessarily with each other. The TI library is compatible with any EABI object files compiled with the same parameters. Unfortunately, we at TI don't know whether the IAR files were in fact compile with the equivalent parameters. We're still trying to figure this out.
  • Hello Archaeologist,

    Yes - I am still trying to figure this out as well; from my limited ability to examine the tools and libraries on both sides; I am still at a loss to explain/and or fix the issue(s).

    Thanks,
    John W.
  • Understood.

    Can you tell me how it is you know TI personnel have been in contact with IAR about this issue? I want to get in touch with that TIer, but I haven't been able to find someone who is aware of that conversation.
  • PM sent - please let me know if you don't receive it.