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.

Codec Engine 2.26.01.09: Error building example apps

Other Parts Discussed in Thread: OMAP3530

Hello,

I'm trying to build the Codec Engine 2.26.01.09 examples (according to the build instructions). The codecs, extensions, and servers all seem to be built without an error, however, making the applications results in the following output:

-------------------------------------------------------------------
$ make
echo DEVICES=OMAP3530
DEVICES=OMAP3530
make -C speech all
make[1]: Entering directory `/home/ks/DontBackup/omapdevelop/ce_examples/ti/sdo/ce/examples/apps/speech'
/opt/ti-tools/xdctools/xdc XDCPATH="/home/ks/DontBackup/omapdevelop/ce_examples/ti/sdo/ce/examples/apps/speech/../../../../../..;/opt/ti-tools/ce/cetools/packages;/opt/ti-tools/ce/packages;/opt/ti-tools/bios/packages;/opt/ti-tools/dsplink" \
        XDCOPTIONS=v XDCARGS="DEVICES=\"OMAP3530\" PROGRAMS=\"APP_CLIENT DSP_SERVER\" GPPOS=\"LINUX_GCC\" CGTOOLS_V5T=/home/ks/DontBackup/CodeSourcery/Sourcery_G++_Lite CC_V5T=bin/arm-none-linux-gnueabi-gcc CGTOOLS_C64P=/opt/ti-tools/C6000CGT7.0.4 CGTOOLS_C674= CGTOOLS_UCARM9= WINCE_ROOTDIR= WINCE_PROJECTROOT= CGTOOLS_LINUX86=" all -PD .
making all: Thu Nov 25 18:27:45 CET 2010 ...
======== .interfaces [/home/ks/DontBackup/omapdevelop/ce_examples/ti/sdo/ce/examples/apps/speech] ========
gmake[1]: `.interfaces' is up to date.
.interfaces files complete: Thu Nov 25 18:27:46 CET 2010.
======== .libraries [/home/ks/DontBackup/omapdevelop/ce_examples/ti/sdo/ce/examples/apps/speech] ========
gmake[1]: `.libraries' is up to date.
.libraries files complete: Thu Nov 25 18:27:46 CET 2010.
======== .dlls [/home/ks/DontBackup/omapdevelop/ce_examples/ti/sdo/ce/examples/apps/speech] ========
gmake[1]: `.dlls' is up to date.
.dlls files complete: Thu Nov 25 18:27:46 CET 2010.
======== .executables [/home/ks/DontBackup/omapdevelop/ce_examples/ti/sdo/ce/examples/apps/speech] ========
rm -f bin/ti_platforms_evm3530/app_remote.xv5T
#
# lnkv5T bin/ti_platforms_evm3530/app_remote.xv5T ...
/home/ks/DontBackup/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc    -o bin/ti_platforms_evm3530/app_remote.xv5T package/cfg/bin/ti_platforms_evm3530/app_remote/main_native.ov5T package/cfg/bin/ti_platforms_evm3530/app_remote_xv5T.ov5T package/cfg/bin/ti_platforms_evm3530/app_remote/app.ov5T  package/cfg/bin/ti_platforms_evm3530/app_remote_xv5T.xdl  -Wl,-Map=package/cfg//bin/ti_platforms_evm3530/app_remote.xv5T.map  -L/home/ks/DontBackup/CodeSourcery/Sourcery_G++_Lite/arm-none-linux-gnueabi/lib -lpthread
/home/ks/DontBackup/CodeSourcery/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: package/cfg/bin/ti_platforms_evm3530/app_remote_xv5T.xdl contains output sections; did you forget -T?
/opt/ti-tools/codec_engine_2_26_01_09/packages/ti/sdo/ce/osal/linux/lib/release/osal_linux_470.av5T(Global_noOS.ov5T): In function `Global_atexit':
Global_noOS.c:(.text+0x238): undefined reference to `atexit'
/opt/ti-tools/dsplink_linux_1_65_00_03/dsplink/gpp/export/BIN/Linux/OMAP3530/RELEASE/dsplink.lib: In function `DRV_installCleanupRoutines':
_sync_usr.c:(.text+0x2824): undefined reference to `atexit'
collect2: ld returned 1 exit status
gmake[1]: *** [bin/ti_platforms_evm3530/app_remote.xv5T] Error 1
gmake: *** [/home/ks/DontBackup/omapdevelop/ce_examples/ti/sdo/ce/examples/apps/speech,.executables] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/ks/DontBackup/omapdevelop/ce_examples/ti/sdo/ce/examples/apps/speech'
make: *** [all] Error 2
-------------------------------------------------------------------

Besides CE, I also have installed:
bios_5_41_09_34
C6000CGT7.0.4
dsplink_linux_1_65_00_03
framework_components_2_25_03_07
local_power_manager_linux_1_24_02_09
xdctools_3_20_05_76
xdais_7_20_00_07

What can I do to resolve this issue?

Thank you for your help.

  • Sorry, I forgot the seemingly most important information: The above was obtained when using the following linker:
    GNU ld (Sourcery G++ Lite 2010.09-50) 2.20.51.20100809

    When using this linker, it compiled without any fatal error:
    GNU ld (Sourcery G++ Lite 2008q3-72) 2.18.50.20080215

    Here's what made me try and use the older linker version:
    http://www.mail-archive.com/angstrom-distro-devel@linuxtogo.org/msg04090.html

  • This is what the G++ Lite Getting Started Guide has to say:

     

    "A program running on an embedded system is usually designed never to exit — if it needs to halt it may simply power down the system. The C and C++ standards leave it unspecified as to whether exit is called at program termination. If the program never exits, then there is no reason to include exit, facilities to run functions registered with atexit, or global destructors. This code would never be run and would therefore just waste space in the application.


    The CS3 startup code, by itself, does not cause exit to be present in the application. It dynamically checks whether exit is present, and only calls it if it is. If you require exit to be present, either refer to it within your application, or add -Wl,-u,exit to the linking command line. Similarly, code to register global destructors is only invoked when atexit is already in the executable; CS3, by itself, does not cause atexit to be present. If you require atexit, either refer to it within your application, or add -Wl,-u,atexit to the linking command line"

     

    Should the linker command have the specified linker options by default?

    Deepali

  • "Should the linker command have the specified linker options by default?"


    I really don't know what would be the best solution. (The link given in my last post points to a discussion that seems to be related to this problem.)