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.

Where can I find documention regarding the format/keywords in the linker .cmd files for the TI ARM C/C++ Compiler v5.0.0B1

Other Parts Discussed in Thread: OMAPL138, CCSTUDIO

I'm trying to resolve the following error in each of the OMAPL138_StarterWare_1_10_03_03 examples:

TI ARM C/C++ Compiler                   v5.0.0B1
Tools Copyright (c) 1996-2012 Texas Instruments Incorporated
<Linking>
"../timerCounter.cmd", line 38: warning #10068-D: no matching section
'Finished building target: timerCounter.out'

where line 38 is:

37    .init      : {
38                 system_config.lib<init.obj> (.text)
39               } load > 0xC1080000

Has the syntax changed with the Beta ARM compiler?

Thanks,

Steve

  • All of the linker command file documentation is in the Assembly Language Tools User's Guide.  See http://processors.wiki.ti.com/index.php/TI_Compiler_Information#Compiler_Manuals

    Is this program in EABI?

    For one reason or another, the linker decided it did not need to include any section matching that pattern.  This could be because the section is unused.

  • Thanks Archeaologist. My program is in EABI. It's one of the Starterware examples. The above manuals support the 4.9 compiler and linker rather than the 5.0.0B1 Beta versions I'm using, so there may be a syntax change in the .cmd file processing as well.

    Steve

  • I'm not aware of any relevant syntax changes in the linker command file.  I think it will be more fruitful to explore the symptom.

    Does the example expect that you are using COFF mode with compiler version 4.9.x?  If so, note that EABI is more aggressive about discarding apparently unused sections.  This section appears to be system initialization data, which is not referenced from main or _c_int00, and thus would appear to be unreachable, and thus unused.  If that is the case, the remedy is to force the compiler to keep the section.  You can use the '-u' linker option to refer to a symbol in the section, or you can use the retain feature.  See http://processors.wiki.ti.com/index.php/C6000_EABI_Migration#Conditional_Linking_Feature

  • I'm not sure of the answer to the failure to parse the "system_config.lib<init.obj> (.text)" statement, but I've worked around the problem. For those that run aground on this in the future, take note. 

    As shipped, the OMAPL138_StarterWare_1_10_03_03 built with CCS 5.1.1 issues warnings in every one of the executable examples during link time:

    warning #10063-D: entry-point symbol other than "_c_int00" specified:  "Entry"

    and

    "../uartEcho.cmd", line 38: warning #10068-D: no matching section.

    Ignore the first warning, as "Entry" is the label of the required starting point within init.asm packaged within system_config.lib. Copy init.asm from the system_config project into the specific executable project you're wanting to build, and delete these lines from the .cmd file of the executable project:

        .init      : {
                     system_config.lib<init.obj> (.text)
                   } load > 0xC1080000

    A few lines of documentation describing the above, acknowledging the warnings, would have saved me a bit of grief. Yes, I know it's Beta.

    Steve

  • Steve,

    I can't seem to reproduce the "no matching section" linker warning with CCS 5.1.1/CGT 5.0.0B1. Are those the same versions you are using?

    Here is the output of my CCS build console for the timer_armv5_omapl138_lcdkOMAPL138 example from Starterware. Does yours look the same?

    **** Build of configuration Debug for project timer_armv5_omapl138_evmOMAPL138 ****

    C:\CCStudio_v5.1.1.00031\ccsv5\utils\bin\gmake -k all
    'Building file: C:/ti/OMAPL138_StarterWare_1_10_03_03/examples/evmOMAPL138/timer/timerCounter.c'
    'Invoking: TMS470 Compiler'
    "C:/CCStudio_v5.1.1.00031/ccsv5/tools/compiler/tms470/bin/cl470" -mv5e -g --define=omapl138 --include_path="C:/CCStudio_v5.1.1.00031/ccsv5/tools/compiler/tms470/include" --include_path="../../../../../../../include" --include_path="../../../../../../../include/hw" --include_path="../../../../../../../include/armv5" --include_path="../../../../../../../include/armv5/omapl138" --include_path="../../../../../../../grlib/include" --include_path="../../../../../../../usblib/include" --include_path="../../../../../../../ipclite/include" --include_path="../../../../../../../nandlib/include" --diag_warning=225 -me --abi=eabi --code_state=32 --preproc_with_compile --preproc_dependency="timerCounter.pp"  "C:/ti/OMAPL138_StarterWare_1_10_03_03/examples/evmOMAPL138/timer/timerCounter.c"
    'Finished building: C:/ti/OMAPL138_StarterWare_1_10_03_03/examples/evmOMAPL138/timer/timerCounter.c'
    ' '
    'Building target: timerCounter.out'
    'Invoking: TMS470 Linker'
    "C:/CCStudio_v5.1.1.00031/ccsv5/tools/compiler/tms470/bin/cl470" -mv5e -g --define=omapl138 --diag_warning=225 -me --abi=eabi --code_state=32 -z -m"timer_armv5_omapl138_evmOMAPL138.map" --warn_sections -i"C:/CCStudio_v5.1.1.00031/ccsv5/tools/compiler/tms470/lib" -i"C:/CCStudio_v5.1.1.00031/ccsv5/tools/compiler/tms470/include" -i"../../../../../../../binary/armv5/cgt_ccs/omapl138/drivers/Debug" -i"../../../../../../../binary/armv5/cgt_ccs/omapl138/evmOMAPL138/platform/Debug" -i"../../../../../../../binary/armv5/cgt_ccs/omapl138/system_config/Debug" -i"../../../../../../../binary/armv5/cgt_ccs/omapl138/ipclib/Debug" -i"../../../../../../../binary/armv5/cgt_ccs/omapl138/usblib/Debug" -i"../../../../../../../binary/armv5/cgt_ccs/utils/Debug" -i"../../../../../../../binary/armv5/cgt_ccs/grlib/Debug" -i"../../../../../../../binary/armv5/cgt_ccs/nandlib/Debug" --reread_libs --rom_model -o "timerCounter.out"  "./timerCounter.obj" -l"libc.a" -ldrivers.lib -lutils.lib -lplatform.lib -lsystem_config.lib "../timerCounter.cmd"
    <Linking>
    warning: entry-point symbol other than "_c_int00" specified:  "Entry"
    'Finished building target: timerCounter.out'
    A subdirectory or file ..\..\..\..\..\..\..\binary\armv5\cgt_ccs\omapl138\evmOMAPL138\timer\Debug already exists.
    ' '
    C:/CCStudio_v5.1.1.00031/ccsv5/utils/bin/gmake --no-print-directory post-build
    timerCounter.out
            1 file(s) copied.
    ' '

    **** Build Finished ****