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.

linker error with c6runlib

Other Parts Discussed in Thread: SYSBIOS

I'm working with demo board EVM816X (model with DDR3). I'm trying to use c6runib with Linux OS. While compiling a DSP library, I always get a linker error, even if I compile the examples provided with c6runlib packet (I have executed the command "make examples"; you can find the output in the log file attached).

The installation and re-compilation of c6runlib packet seems to succeed (commands make TI816X_config + make everything).

I attach also the file Rules.mak, belonging to c6runlib packet, and Rules.make, belonging to EZSDK (release 5.1.1.80 )

Do you have some suggestion?

 

Best regards

Francesco Giovanardi

 

1261.log.zip

  • Can try to build the C6Run Examples using the EZSDK toplevel makefile and see if that works?

    $ cd $EZSDK

    $ make linux

    $ make syslink

    $ make c6run

    $ make c6run_examples

    That should build all the C6Run Examples.

  • Ok, now I can compile both examples and my code: I have followed your instructions and I have reverted back to a previous release of syslink (syslink_02_00_00_68_beta1), because of compatibility problems.

    One more question: can c6run tool compile .c files containing xdc and sysbios includes (for example #include <xdc/std.h>)? In fact I get an error like this (of course followed by many other errors):

    "/media/Data/ti-ezsdk_dm816x-evm_5_01_01_80/linux-devkit/xdctools_3_22_02_27/packages/ti/targets/std.h:107:6: error: #error <ti/targets/std.h> is not supported for this target"

    even if I have specified the c6run compile option:

    -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C674 -Dxdc_cfg__header__=/myhome/cfg/myfile_p674.h

    The errors are given in the c6run stage:

    Calling RPC stub generation utility.
      C6RUN_INSTALL_DIR=/media/Data/ti-ezsdk_dm816x-evm_5_01_01_80/c6run_0_97_03_03/bin/.. perl /media/Data/ti-ezsdk_dm816x-evm_5_01_01_80/c6run_0_97_03_03/bin/../lib/perl/c6runlib-rpcgen.pl myfile.c dsp_lib/myfile.o GPP2DSP Release

    It seems that the tool cannot pass the options to the ARM compiler which compiles the stub.

    Thanks

  • The C files processed with the c6runlib tool will be compiled by both the C6000 compiler and the ARM GCC compiler. I find it unlikely that anything referencing XDC will build properly with the c6runlib tool. 

    To handle this case, your best bet is to use some kind of C wrapper functions that only contain standard C (no XDC), which can call or reference the XDC-containing files.  The C files containing XDC ans SysBios references will have to be compiled separately using the generated compiler.opt(which should still exist in the build directory of c6run).  The resulting object files can then be passed directly to the c6runlib-ar tool and will be integrated into the generated DSP executable, assuming they are referenced in the other code being included.

    Regards, Daniel