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.

Force memory alignment on project

Hi,

I'm working with the JEPGDEC demo project for EVM678LE and I'm facing a problem at linktime:

<Linking>

fatal error #16030: array_object_alignment=8 bytes is not greater than or equal
to array_object_align_expected=16 bytes as required; file "C:/Program Files
(x86)/Texas
Instruments/Codecs/C66x_jpegdec_03_01_00_01_ELF/packages/ti/sdo/codecs/jpegd
ec/App/Client/Build/TestAppDecoder/../../../../Lib/jpegdec_ti.le66" is
incompatible with other input files

Is there anyway I can force the entire project memory alignment to comply with JPEGDEC alignment 16 requirement?

Weber

  • What version of the compiler are you using?  Also, it would be helpful if we could see the output of the Console window for the entire build.

    Thanks and regards,

    -George

  • There it is

    Compiler TI v7.2.2


    **** Build of configuration Debug for project TestAppDecoder ****

    C:\CCs_v51\ccsv5\utils\bin\gmake -k all
    'Building file: ../JpegdecApp6678.cfg'
    'Invoking: XDCtools'
    "C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/xs" --xdcpath="C:/Program Files (x86)/Texas Instruments/ipc_1_22_03_23/packages;C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages;C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/packages;C:/ti/framework_components_3_20_02_29/packages;C:/ti/framework_components_3_20_02_29/fctools/packages;C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages;C:/multicore/TestAppDecoder/../../../Client/Build/Repository/Packages;C:/CCs_v51/xdais_7_21_01_07/packages;C:/CCs_v51/xdais_7_21_01_07/examples;C:/ti/framework_components_3_20_02_29/packages;C:/ti/framework_components_3_20_02_29/examples;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C66 -p ti.platforms.custom66x -r whole_program -c "C:/CCs_v51/ccsv5/tools/compiler/c6000" "../JpegdecApp6678.cfg"
    making package.mak (because of package.bld) ...
    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
    configuring JpegdecApp6678.pe66 from package/cfg/JpegdecApp6678_pe66.cfg ...
    cle66 package/cfg/JpegdecApp6678_pe66.c ...
    lnke66 JpegdecApp6678.pe66 ...
    'Finished building: ../JpegdecApp6678.cfg'
    ' '
    'Building file: C:/Client/Test/Src/TestAppConfigParser.c'
    'Invoking: C6000 Compiler'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --define="XDM1" --include_path="C:/CCs_v51/ccsv5/tools/compiler/c6000/include" --include_path="C:/CCSTUD~1.3/C6000/csl/include" --include_path="C:/multicore/TestAppDecoder/../../../Client/Test/Inc" --include_path="C:/multicore/TestAppDecoder/../../../Inc" --include_path="C:/ti/framework_components_3_20_02_29/fctools/packages" --include_path="C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages" --include_path="C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages/ti/sdo/fc/utils/api" --diag_warning=225 --gen_func_subsections=on --no_bad_aliases --abi=eabi --auto_inline=256 --output_all_syms --strip_coff_underscore --preproc_with_compile --preproc_dependency="TestAppConfigParser.pp" --cmd_file="./configPkg/compiler.opt" "C:/Client/Test/Src/TestAppConfigParser.c"
    'Finished building: C:/Client/Test/Src/TestAppConfigParser.c'
    ' '
    'Building file: C:/Client/Test/Src/TestAppDecoder.c'
    'Invoking: C6000 Compiler'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --define="XDM1" --include_path="C:/CCs_v51/ccsv5/tools/compiler/c6000/include" --include_path="C:/CCSTUD~1.3/C6000/csl/include" --include_path="C:/multicore/TestAppDecoder/../../../Client/Test/Inc" --include_path="C:/multicore/TestAppDecoder/../../../Inc" --include_path="C:/ti/framework_components_3_20_02_29/fctools/packages" --include_path="C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages" --include_path="C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages/ti/sdo/fc/utils/api" --diag_warning=225 --gen_func_subsections=on --no_bad_aliases --abi=eabi --auto_inline=256 --output_all_syms --strip_coff_underscore --preproc_with_compile --preproc_dependency="TestAppDecoder.pp" --cmd_file="./configPkg/compiler.opt" "C:/Client/Test/Src/TestAppDecoder.c"
    'Finished building: C:/Client/Test/Src/TestAppDecoder.c'
    ' '
    'Building file: C:/Client/Test/Src/alg_create.c'
    'Invoking: C6000 Compiler'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --define="XDM1" --include_path="C:/CCs_v51/ccsv5/tools/compiler/c6000/include" --include_path="C:/CCSTUD~1.3/C6000/csl/include" --include_path="C:/multicore/TestAppDecoder/../../../Client/Test/Inc" --include_path="C:/multicore/TestAppDecoder/../../../Inc" --include_path="C:/ti/framework_components_3_20_02_29/fctools/packages" --include_path="C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages" --include_path="C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages/ti/sdo/fc/utils/api" --diag_warning=225 --gen_func_subsections=on --no_bad_aliases --abi=eabi --auto_inline=256 --output_all_syms --strip_coff_underscore --preproc_with_compile --preproc_dependency="alg_create.pp" --cmd_file="./configPkg/compiler.opt" "C:/Client/Test/Src/alg_create.c"
    'Finished building: C:/Client/Test/Src/alg_create.c'
    ' '
    'Building file: C:/Client/Test/Src/alg_malloc.c'
    'Invoking: C6000 Compiler'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --define="XDM1" --include_path="C:/CCs_v51/ccsv5/tools/compiler/c6000/include" --include_path="C:/CCSTUD~1.3/C6000/csl/include" --include_path="C:/multicore/TestAppDecoder/../../../Client/Test/Inc" --include_path="C:/multicore/TestAppDecoder/../../../Inc" --include_path="C:/ti/framework_components_3_20_02_29/fctools/packages" --include_path="C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages" --include_path="C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages/ti/sdo/fc/utils/api" --diag_warning=225 --gen_func_subsections=on --no_bad_aliases --abi=eabi --auto_inline=256 --output_all_syms --strip_coff_underscore --preproc_with_compile --preproc_dependency="alg_malloc.pp" --cmd_file="./configPkg/compiler.opt" "C:/Client/Test/Src/alg_malloc.c"
    'Finished building: C:/Client/Test/Src/alg_malloc.c'
    ' '
    'Building file: C:/Client/Test/Src/ijpegdec.c'
    'Invoking: C6000 Compiler'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --define="XDM1" --include_path="C:/CCs_v51/ccsv5/tools/compiler/c6000/include" --include_path="C:/CCSTUD~1.3/C6000/csl/include" --include_path="C:/multicore/TestAppDecoder/../../../Client/Test/Inc" --include_path="C:/multicore/TestAppDecoder/../../../Inc" --include_path="C:/ti/framework_components_3_20_02_29/fctools/packages" --include_path="C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages" --include_path="C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages/ti/sdo/fc/utils/api" --diag_warning=225 --gen_func_subsections=on --no_bad_aliases --abi=eabi --auto_inline=256 --output_all_syms --strip_coff_underscore --preproc_with_compile --preproc_dependency="ijpegdec.pp" --cmd_file="./configPkg/compiler.opt" "C:/Client/Test/Src/ijpegdec.c"
    'Finished building: C:/Client/Test/Src/ijpegdec.c'
    ' '
    'Building file: C:/Client/Test/Src/tsc_h.asm'
    'Invoking: C6000 Compiler'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --define="XDM1" --include_path="C:/CCs_v51/ccsv5/tools/compiler/c6000/include" --include_path="C:/CCSTUD~1.3/C6000/csl/include" --include_path="C:/multicore/TestAppDecoder/../../../Client/Test/Inc" --include_path="C:/multicore/TestAppDecoder/../../../Inc" --include_path="C:/ti/framework_components_3_20_02_29/fctools/packages" --include_path="C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages" --include_path="C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages/ti/sdo/fc/utils/api" --diag_warning=225 --gen_func_subsections=on --no_bad_aliases --abi=eabi --auto_inline=256 --output_all_syms --strip_coff_underscore --preproc_with_compile --preproc_dependency="tsc_h.pp" --cmd_file="./configPkg/compiler.opt" "C:/Client/Test/Src/tsc_h.asm"
    'Finished building: C:/Client/Test/Src/tsc_h.asm'
    ' '
    'Building target: TestAppDecoder.out'
    'Invoking: C6000 Linker'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --define="XDM1" --diag_warning=225 --gen_func_subsections=on --no_bad_aliases --abi=eabi --auto_inline=256 --output_all_syms --strip_coff_underscore -z -m"TestAppDecoder.map" --warn_sections -i"C:/CCs_v51/ccsv5/tools/compiler/c6000/lib" -i"C:/CCs_v51/ccsv5/tools/compiler/c6000/include" -i"C:/multicore/TestAppDecoder" -i"C:/multicore/TestAppDecoder/../../../Build" -i"C:/CCSTUD~1.3/C6000/csl/lib" -i"C:/multicore/TestAppDecoder/../../../../Lib" -i"C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages/ti/bios/lib" --reread_libs --rom_model -o "TestAppDecoder.out" -l"./configPkg/linker.cmd" "./tsc_h.obj" "./ijpegdec.obj" "./alg_malloc.obj" "./alg_create.obj" "./TestAppDecoder.obj" "./TestAppConfigParser.obj" -l"C:\Program Files (x86)\Texas Instruments\Codecs\C66x_jpegdec_03_01_00_01_ELF\packages\ti\sdo\codecs\jpegdec\lib\jpegdec_ti.le66" -l"libc.a" "../JPEGDecApp.cmd"
    <Linking>
    fatal error: array_object_alignment=8 bytes is not greater than or equal to
    array_object_align_expected=16 bytes as required; file "C:\Program Files
    (x86)\Texas
    Instruments\Codecs\C66x_jpegdec_03_01_00_01_ELF\packages\ti\sdo\codecs\jpegd
    ec\lib\jpegdec_ti.le66" is incompatible with other input files

    >> Compilation failure
    gmake: *** [TestAppDecoder.out] Error 1
    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

  • Compiler TI v7.2.2

    Framework Components 3.20.2.29

    IPC 1.22.3.23

    SYSBIOS 6.31.0.18

    CCSv5.1

  • For C6600 code, the object files should not require 16 byte alignment of arrays. In the 7.2.2 version of the compiler, array objects are aligned to 16 bytes, but the files only require 8 byte alignment. The fact that you are getting an error because a file is requiring 16 byte alignment and a file that only has 8 byte alignment is not expected.

    Can you use the ofd6x tool to obtain the build attributes for the object files? You can use the command: ofd6x --obj_display=none,battrs to obtain a print out of just the build attributes. I would like you to post the results of running the command on the jpegdec_ti.le66 file. Also look at the other object files in your project and see if any of them have the line "Tag_ABI_array_object_align_expected  2   (Compiler generated code expecting TOP Array alignment of 16 bytes)" in the build attribute output. If any of them have that line, can you please post the output of the ofd6x command?