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.

Tag_Long_Precision_Bits attribute error

Other Parts Discussed in Thread: MATHLIB

Processor: c6727

I am now trying to compile a relocatable ELF dll and I followed all the necessary step to link in the correct lib and .h source files.
Unfortunately I have tried a few different functions but all give the same error reported below:

fatal error: file "C:/Program Files/Texas
Instruments/c6700/c67xmathlib_2_01_00_00/lib/c67pfastMath_elf.lib<log2sp.obj
>" has a Tag_Long_Precision_Bits attribute value of "3" that is different
than one previously seen ("2"); combining incompatible files

Have you got any idea why?

Thanks

  • Marcello,

    I've split this thread since it's now appears to be a compiler/linker question more than a MathLib question.

    I suspect your issue is related to the fact that in EABI type "long" is a 32-bit data type while under COFF the type "long" is 40-bit .  A good reference is here:

    http://processors.wiki.ti.com/index.php/C6000_EABI_Migration

    Here's a link to the original thread in case anyone is interested.

    Brad

  • As Brad mentioned, I believe this is related to the usage of long data type. For instance, I used ofd6x (object file utility included with the code generation tools) to dump the c67pfastMath_elf.lib and see that this attribute is set to 3 for object files that have no long types and is set to 2 for object files that do have 32-bit long type.

    What are the object files/libraries being passed to the linker? Are they all built for EABI and do they use long data types? It may help to look at tthe full linker command (all options/files passed to the linker).

  • Hi AartiG,

    thanks for your follow up.

    I am not sure how to tackle this and I might need a "detailed" guide to follow through...

    The project is rather simple and there is only one single .cpp file compiled with a C style processing function:


    // Host Alg wrapper shim headers
    #include "TransModAAX_AlgProc.cpp"
    #include <elf_linkage.h>

    const AAX_EStemFormat kStemFormat = AAX_eStemFormat_Stereo;
    const int kNumChannels = AAX_STEM_FORMAT_CHANNEL_COUNT(kStemFormat);

    // The main algorithm entry point
    extern "C"
    TI_EXPORT
    void AlgEntry( STransMod_Alg_Context * const inInstancesBegin [],
    const void * inInstancesEnd)
    {
    TransMod_AlgorithmProcessFunctionStereo<kNumChannels, kNumChannels>(
    inInstancesBegin,
    inInstancesEnd);
    }

    No external libs are linked in apart from the c67pfastMath_elf.lib.

    Here is the full linker command:

    "${CG_TOOL_ROOT}/bin/cl6x"

    -z -m"C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/SonnoxTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI/OxfordTransMod_Stereo_Stereo_TI.map" --warn_sections -i"C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/lib" -i"C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/inc" -i"C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.0.5/lib" -i"C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.0.5/include" --reread_libs

    The main TransMod_AlgorithmProcessFunctionStereo function does not use any long type data.

    It is essential that I get this lib working to finish my project in time for its deadline, and I am keen to try everything you suggest to fix it.

    Thanks again for your help

  • Marcello,

    Are you compiling with --abi=eabi option? Just confirming because it looks like you cut out the compile options shown in the link step. Is this the complete list of linker options or were some of it cut off as well?

    Are you able to share all the files required to reproduce this error as it will be the quickest way to reproduce and investigate it. If you cannot share all the sources, how about the .obj file and full link command line so we can simply run the link command and reproduce the error? The object files may be sufficient to investigate the cause of the error. Also if you do not wish to post the files here on the forum, you can share it with me privately by starting a private conversation. Let me know if you prefer that method.

  • AartiG,

    I guess that is the full, at least it is what is shown by the "All option" section of the Tool Settings->C6000 Linker page.

    I don't think I can send you the project but I guess there is no problem with the object files.

    I also rather start a private conversation. But How?

  • I just sent you a friend request. When you accept it, you can go to your Friends list and start a private conversation with me. In it you can attach a zip file with the required files.

    Please be sure to zip up all files required to perform the link step (.obj, .lib etc). Also please copy and paste the full output of the CCS build console - this will show the files being passed to the link in addition to the options and the order in which they are passed.

  • Gotcha,

    here is the full console output (there is no --abi=EABI):


    **** Build of configuration Release for project OxfordTransMod_Stereo_Stereo_TI ****

    C:\Program Files\Texas Instruments\ccsv4\utils\gmake\gmake -k all
    'Building file: ../TransModAAX_Stereo_Stereo_TI.cpp'
    'Invoking: Compiler'
    'Flags: --cmd_file="C:\svn\PlugIn_PT\AAX_SDK_1p0p5\TI\CCSv4\CommonPlugIn_CompilerCmd.cmd" -mv67p -O3 --define=NDEBUG --include_path="C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/src/sp/log10sp" --include_path="C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/src/sp/powsp" --include_path="C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/src/dp/log2dp" --include_path="C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/inc" --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.0.5/include" --include_path="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/Interfaces" --include_path="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/CommonPluginCodeVst3.6" --include_path="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/Source" --include_path="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI" --diag_warning=225 --optimizer_interlist --gen_opt_info=2 --call_assumptions=3 -k --temp_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/SonnoxTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" --obj_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/SonnoxTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" --asm_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/SonnoxTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" --preproc_with_compile --preproc_dependency="TransModAAX_Stereo_Stereo_TI.pp"'
    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.0.5/bin/cl6x" -@"TransModAAX_Stereo_Stereo_TI_ccsCompiler.opt"
    "C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/Source/TransModAAX_AlgProc.cpp", line 477: warning: variable "tcOut1" was set but never used
    'Finished building: ../TransModAAX_Stereo_Stereo_TI.cpp'
    ' '
    'Building target: C:\svn\PlugIn_PT\AAX_SDK_1p0p5\SonnoxPlugIns\AAX_SonnoxTransMod\TI\TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/SonnoxTransMod.aaxplugin/Contents/Resources/OxfordTransMod_Stereo_Stereo_TI.dll'
    'Invoking: Linker'
    'Flags: --cmd_file="C:\svn\PlugIn_PT\AAX_SDK_1p0p5\TI\CCSv4\CommonPlugIn_CompilerCmd.cmd" -mv67p -O3 --define=NDEBUG --diag_warning=225 --optimizer_interlist --gen_opt_info=2 --call_assumptions=3 -k --temp_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/SonnoxTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" --obj_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/SonnoxTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" --asm_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/SonnoxTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" -z -m"C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/SonnoxTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI/OxfordTransMod_Stereo_Stereo_TI.map" --warn_sections -i"C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/lib" -i"C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/inc" -i"C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.0.5/lib" -i"C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.0.5/include" --reread_libs'
    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.0.5/bin/cl6x" -@"ccsLinker.opt" -o "C:\svn\PlugIn_PT\AAX_SDK_1p0p5\SonnoxPlugIns\AAX_SonnoxTransMod\TI\TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/SonnoxTransMod.aaxplugin/Contents/Resources/OxfordTransMod_Stereo_Stereo_TI.dll"
    <Linking>
    fatal error: file "C:/Program Files/Texas
    Instruments/c6700/c67xmathlib_2_01_00_00/lib/c67pfastMath_elf.lib<log2dp.obj
    >" has a Tag_Long_Precision_Bits attribute value of "3" that is different
    than one previously seen ("2"); combining incompatible files

    >> Compilation failure
    gmake: *** [C:\svn\PlugIn_PT\AAX_SDK_1p0p5\SonnoxPlugIns\AAX_SonnoxTransMod\TI\TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/SonnoxTransMod.aaxplugin/Contents/Resources/OxfordTransMod_Stereo_Stereo_TI.dll] Error 1
    gmake: Target `all' not remade because of errors.
    Build complete for project OxfordTransMod_Stereo_Stereo_TI

  • I still cannot see the files being passed to the linker - looks like due to the long command line it is being saved in ccsLinker.opt instead of being output directly in the console. Could you please attach that file?

    Also, as you mentioned you are not using --abi=eabi. If so you should be linking with c67pfastMath.lib (non EABI version) instead of c67pfastMath_elf.lib.

  • Ok,

    here is the file requested:

    --cmd_file="C:\svn\PlugIn_PT\AAX_SDK_1p0p5\TI\CCSv4\CommonPlugIn_CompilerCmd.cmd" -mv67p -O3 --define=NDEBUG --diag_warning=225 --optimizer_interlist --gen_opt_info=2 --call_assumptions=3 -k --temp_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/OxfordTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" --obj_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/OxfordTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" --asm_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/OxfordTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" -z -m"C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/OxfordTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI/OxfordTransMod_Stereo_Stereo_TI.map" --warn_sections -i"C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/lib" -i"C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/inc" -i"C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.0.5/lib" -i"C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.0.5/include" --reread_libs 
    "C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/WinBuild/Release/int/OxfordTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI/TransModAAX_Stereo_Stereo_TI.obj" -l"c67pfastMath_elf.lib" "../CommonPlugIn_LinkerCmd.cmd" 

  • If I link to the c67pfastMath.lib, this is the error I get:

    C:\Program Files\Texas Instruments\ccsv4\utils\gmake\gmake -k all
    'Building file: ../TransModAAX_Stereo_Stereo_TI.cpp'
    'Invoking: Compiler'
    'Flags: --cmd_file="C:\svn\PlugIn_PT\AAX_SDK_1p0p5\TI\CCSv4\CommonPlugIn_CompilerCmd.cmd" -mv67p -O3 --define=NDEBUG --include_path="C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/src/sp/log10sp" --include_path="C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/src/sp/powsp" --include_path="C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/src/dp/log2dp" --include_path="C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/inc" --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.0.5/include" --include_path="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/Interfaces" --include_path="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/CommonPluginCodeVst3.6" --include_path="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/Source" --include_path="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI" --diag_warning=225 --optimizer_interlist --gen_opt_info=2 --call_assumptions=3 -k --temp_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/OxfordTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" --obj_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/OxfordTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" --asm_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/OxfordTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" --preproc_with_compile --preproc_dependency="TransModAAX_Stereo_Stereo_TI.pp"'
    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.0.5/bin/cl6x" -@"TransModAAX_Stereo_Stereo_TI_ccsCompiler.opt"
    "C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/Source/TransModAAX_AlgProc.cpp", line 477: warning: variable "tcOut1" was set but never used
    'Finished building: ../TransModAAX_Stereo_Stereo_TI.cpp'
    ' '
    'Building target: C:\svn\PlugIn_PT\AAX_SDK_1p0p5\SonnoxPlugIns\AAX_SonnoxTransMod\TI\TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/OxfordTransMod.aaxplugin/Contents/Resources/OxfordTransMod_Stereo_Stereo_TI.dll'
    'Invoking: Linker'
    'Flags: --cmd_file="C:\svn\PlugIn_PT\AAX_SDK_1p0p5\TI\CCSv4\CommonPlugIn_CompilerCmd.cmd" -mv67p -O3 --define=NDEBUG --diag_warning=225 --optimizer_interlist --gen_opt_info=2 --call_assumptions=3 -k --temp_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/OxfordTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" --obj_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/OxfordTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" --asm_directory="C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/OxfordTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI" -z -m"C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/TI/TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/int/OxfordTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI/OxfordTransMod_Stereo_Stereo_TI.map" --warn_sections -i"C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/lib" -i"C:/Program Files/Texas Instruments/c6700/c67xmathlib_2_01_00_00/inc" -i"C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.0.5/lib" -i"C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.0.5/include" --reread_libs'
    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.0.5/bin/cl6x" -@"ccsLinker.opt" -o "C:\svn\PlugIn_PT\AAX_SDK_1p0p5\SonnoxPlugIns\AAX_SonnoxTransMod\TI\TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/OxfordTransMod.aaxplugin/Contents/Resources/OxfordTransMod_Stereo_Stereo_TI.dll"
    <Linking>

    undefined first referenced
    symbol in file
    --------- ----------------
    log2dp C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/WinBuild/Release/int/OxfordTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI/TransModAAX_Stereo_Stereo_TI.obj
    powsp C:/svn/PlugIn_PT/AAX_SDK_1p0p5/SonnoxPlugIns/AAX_SonnoxTransMod/WinBuild/Release/int/OxfordTransMod.aaxplugin/TI/OxfordTransMod_Stereo_Stereo_TI/TransModAAX_Stereo_Stereo_TI.obj

    error: unresolved symbols remain
    error: errors encountered during linking;
    "C:\\svn\\PlugIn_PT\\AAX_SDK_1p0p5\\SonnoxPlugIns\\AAX_SonnoxTransMod\\TI\\T
    ransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/OxfordTransMod.aaxplugin/
    Contents/Resources/OxfordTransMod_Stereo_Stereo_TI.dll" not built

    >> Compilation failure
    gmake: *** [C:\svn\PlugIn_PT\AAX_SDK_1p0p5\SonnoxPlugIns\AAX_SonnoxTransMod\TI\TransModAAX_Stereo_Stereo_TI/../../WinBuild/Release/OxfordTransMod.aaxplugin/Contents/Resources/OxfordTransMod_Stereo_Stereo_TI.dll] Error 1
    gmake: Target `all' not remade because of errors.
    Build complete for project OxfordTransMod_Stereo_Stereo_TI

  • This issue is being worked offline and here is a current short summary:

    It appears that user is creating a dynamic library but not building for EABI which is required (http://processors.wiki.ti.com/index.php/C6000_Dynamic_Linking). Also they are using CGT 7.0.x while 7.2.x or higher is recommended for EABI.

    Suggested that they update to 7.2.x and update the build for EABI and recommended refering to the above wiki for build options/process. That should eliminate the original errors reported in this thread. If any errors remain/new ones arise, a new forum thread can be started as that would be a new/different issue.