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.

How to rebuild IPC under linux

Hi, All:

  Now I have to rebuild the IPC to meet some requirements.

My IPC version is 1_23_01_26 and I have to use this.

My XDC tools is xdctools_3_22_01_21.

I read the "rebuilding IPC" section in the IPC user guide

and follow the steps it tells. After I type the following command,

the system reports error:

root@ubuntu:/opt/c6678-master/myIpc_1_23_01_26/ipc_1_23_01_26_custom/packages# xdc XDCBUILDCFG=./ipcConfig.bld -PR .
making all: Tue Nov 10 09:02:43 CST 2015 ...
======== .interfaces [./ti/sdo/io] ========
making package.mak (because of package.bld) ...
js: "./package.bld", line 56: ReferenceError: "tiTargets" is not defined.
gmake[1]: *** Deleting file `package.mak'
gmake[1]: *** No rule to make target `package.mak', needed by `.interfaces'.  Stop.
gmake: *** [ti/sdo/io,.interfaces] Error 2

I can't figure out how to remove this error.

  I need to rebuild the IPC to be used for C6678. Can anyone tell me some detailed information

about rebuilding IPC? Thanks in advance!

  • Hi Murat,

    Could you check which toolchain you are using? Also check your configuration.

    BR
    Tsvetolin Shulev
  • Hi, Shulev:

      The toolchain I'm using is c6x-uclinux-gcc-4.5.1 (linux-c6x), the configuration

    is the original copy of ipc_1_23_01_26.

    I managed to compile by commenting part of the .bld files. 

    Now it can compile OK.

    But the modification I made in the IPC source file does not take effect.

    It seems that the app still use the original IPC lib.

    My RTOS app is compiled in command line, not in the CCS IDE.

    The app is compiled in the 6678 syslink samples under linux. It is invoked

    by:

    make syslink-rtos-demo

    I modified the "setenv" file to point to my custom IPC location.

    So, where does the RTOS app link the IPC lib? How can I confirm it?

    If necessary, what modification should I do to link the new built IPC lib?

    Thanks!

  • Hi, Shulev:
    I've found a new issue about compiling the IPC lib.
    I searched the customed IPC lib directory and found some .lib
    files not built at current time, they are still the original ones.
    For example, the ipc.lib under
    myIpc_1_23_01_26/ipc_1_23_01_26_custom/packages/ti/sdo/ipc/lib/nonInstrumented_e66/ipc/ipc.lib
    This file's created time is 2011-06-18. So I think the IPC lib is not rebuilt totally.
    The reason causing this I think is that I modify the file
    myIpc_1_23_01_26/ipc_1_23_01_26_custom/packages/ti/sdo/io/package.bld
    I comment the following lines in this file
    var releaseTargets = [
     tiTargets.C28_large,
     tiTargets.C28_float,
     tiTargets.C64P,
     tiTargets.C64P_big_endian,
     tiTargets.C674,
     elfTargets.C64P,
     elfTargets.C64P_big_endian,
     elfTargets.C674,
     elfTargets.C64T,
     elfTargets.C66,
     elfTargets.C66_big_endian,
     arp32Targets.ARP32,
     armElfTargets.Arm9,
     armElfTargets.A8F,
     armElfTargets.M3,
     msp430Targets.MSP430,
     msp430Targets.MSP430X,
     msp430Targets.MSP430X_small,
     elfTargets.C67P,
     armElfTargets.R4t_big_endian,
     armElfTargets.R4Ft_big_endian,
    ];

    for each (var targ in releaseTargets) {
     /* For each test... */
     for each (var test in testArray) {

      var platform = test.platform ? test.platform : targ.platform;
      /*
       * Build the partial link using just the _asm.cfg (configuration,
       * but no source code).
       */
      var cfg = Pkg.addConfiguration(test.name,
                targ, platform, {
            cfgScript: test.config,
            prelink: false,
            profile: "release",
          });

      var myLib = "lib/"
              + test.config.substring(0, test.config.lastIndexOf('.'))
              + "_" + targ.suffix + "/io/io.lib";

      Pkg.otherFiles[Pkg.otherFiles.length++] = myLib;
     }
    }
    If I don't comment these, the build process will report the error I
    noticed in my first post.
    So I get back to the starting point, how can I rebuid the IPC lib?
    Thanks!

  • Murat Tekalp said:
    So I get back to the starting point, how can I rebuid the IPC lib?

    Murat,

    tiTargets, elfTargets, etc., need to be defined for your package.bld to process correctly.  In the Ipc development tree config.bld we have this at the top:

    var tiTargets = xdc.loadPackage('ti.targets');
    var msp430Targets = xdc.loadPackage('ti.targets.msp430');
    var arp32Targets = xdc.loadPackage('ti.targets.elf.arp32');
    var elfTargets = xdc.loadPackage('ti.targets.elf');
    var tiArmTargets = xdc.loadPackage('ti.targets.arm');
    var armElfTargets = xdc.loadPackage('ti.targets.arm.elf');
    var gccTargets = xdc.loadPackage('gnu.targets');
    var msTargets = xdc.loadPackage('microsoft.targets');

    but the shipped product doesn't seem to contain these definitions anywhere.  You might be able to simply paste the above chunk to the top of your ipcConfig.bld file to fix the issue.

    Where did you get ipcConfig.bld?

    Was it derived from <ipc>/etc/config.bld.default?

    Regards,

    - Rob

  • Hi Rob:

      My ipcConfig.bld was derived from <ipc>/etc/config.bld.default.

      According to your advice, I paste the definition at the top of the

    ipcConfig.bld file. The building can be run successfully now.

     Thanks!