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 add legacy toolchain versions next to existing ones?



In order to reproduce some legacy project builds, I need multiple versions of GCC (4.8.4, 4.3.3) next to the current installation (4.9.3.2015q3_20150921) that came with my CCS installation (6.1.3.00033).

I would like to keep the present GCC installation (installed, and as a default version) and select the toolchain used in the usual eclipse/CCS toolchain selection field.

I am running the following versions:

  • CCS 6.1.3.00033
  • Windows 7 (64 Bit) Service Pack 1

Do I have to install another CCS version beside the existing installation? If so, which CCS versions do I need for the given GCC versions?

Thanks in advance,

Benedikt

  • Benedikt said:
    If so, which CCS versions do I need for the given GCC versions?

    Looking at CCS 6.2.0.00050 under Windows 7, in which GNU v4.9.3 was originally installed, found that a CCS 6.2 installation supports multiple versions of the GCC ARM compiler.

    From Help -> Install New Software the CCS updates only had the older version v4.8.4 available:

    I has able to use CCS to install v4.8.4 using the above update. Note that since I already had v4.9.3 Eclipse wouldn't let me install v4.8.4 until I had first used Help -> About Code Composer Studio -> Installation Details -> Installed Software to uninstall the v4.9.3 Eclipse feature. See Installing Older Versions for the reason.

    I also found that if manually install over GCC ARM versions into the <CCS_install_root>\ccsv6\tools\compiler directory that upon a re-start that CCS will detect the compiler and allows its selection. E.g. after also manually installing v4.6.2 into <CCS_install_root>\ccsv6\tools\compiler\gcc-arm-none-eabi-4.6-2012q4 then CCS allowed the selection of different GCC ARM compilers from the project properties:

  • Hello Chester,

    Thanks for your hints. I can basically reproduce your first screenshot. As described, I could not install 4.8.0 before uninstalling 4.9.3.
    I could uninstall 4.9.3 and (after restarting CCS) could install 4.8.0 (and restart CCS again).

    Result:
    Version 4.8.4 has not been offered to me, but since the install of "4.8.0", I can select "GNU v4.8.4 (Linaro)" according in your second screenshot. The property window still lists my previously installed "4.9.3" (like in the screenshot), but I get errors when selecting the uninstalled v4.9.3 (apparently it has gone...).

    Version 4.3.x has not been offered at all. Do I need an old version of CCS in order to use an older compiler version?

    ---------

    I also tried installing 4.9.3 afterwards in order to have both versions side-by-side. Afterwards, I could still select v4.8.4, and v4.9.3. However, neither of them works any longer. In Console, I get

    "ti.targets.arm.elf.A8Fnv: warning: exec of 'C:/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/cl470 --compiler_revision' failed:java.io.IOException: Cannot run program "C:/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/cl470" (in directory "."): CreateProcess error=2, Das System kann die angegebene Datei nicht finden; check tools installation"

    (Note that "Das System kann die angegebene Datei nicht finden" means "File not found".)

    ---------

    I uninstalled the GCC ARM compilers again (again, restarting CCS) and I installed v4.9.3 again (again, restarting CCS).

    The same error messages appear. Seems as if this procedure has broken my CCS installation.


    Is it possible to have multiple CCS installations next to each other on a single windows PC?
    Is there a list which CCS version comes with which "native" version of GCC ARM toolchains?


    Regards,

    Benedikt
  • Benedikt said:
    In Console, I get

    "ti.targets.arm.elf.A8Fnv: warning: exec of 'C:/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/cl470 --compiler_revision' failed:java.io.IOException: Cannot run program "C:/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/cl470" (in directory "."): CreateProcess error=2, Das System kann die angegebene Datei nicht finden; check tools installation"

    Are you using a SYS/BIOS project?

    I have just noticed an issue in CCS 6.2.0 with changing the version of GCC compiler for a SYS/BIOS 6.45.1.19 project for a Cortex-A15. I have found that when importing a SYS/BIOS example can select either the v4.8.4 or v4.9.3 compiler the example builds with the selected version of the GCC compiler. However, if I attempt to change the version of the GCC compiler on an existing SYS/BIOS project then the build fails with an error of the form:

    js: "C:/ti/bios_6_45_01_29/packages/ti/targets/arm/elf/IArm.xs", line 77: Error: template generation of 'compiler.opt' failed: Error: The compiler in C:/ti_ccs6_2_0/ccsv6/tools/compiler/gcc-arm-none-eabi-4_8-2014q3 is not compatible with this version of TI-RTOS or SYS/BIOS. Please use Arm compiler 5.2.2 or newer.
        "./package.bld", line 54

    Even if I attempt to revert the project back to the version of the GCC compiler which was selected when the project was created I still get a build error. It looks like something is causing the project to try and be compiled with the TI compiler executables, rather than the GCC compiler executables. I haven't yet determined if the problem is in CCS, SYS/BIOS or XDCTOOLS.

  • Chester Gillon said:
    Are you using a SYS/BIOS project?

    Yes, it is a SYS/BIOS project.

    Actually, I started trying to rebuild the SDK component libraries with the compiler version used there before moving on to my firmware application project. The problems already arose for the SDK lib project.

    Chester Gillon said:
    Even if I attempt to revert the project back to the version of the GCC compiler which was selected when the project was created I still get a build error. It looks like something is causing the project to try and be compiled with the TI compiler executables, rather than the GCC compiler executables. I haven't yet determined if the problem is in CCS, SYS/BIOS or XDCTOOLS.

    Thanks for analysing. Meanwhile, another lib project in the same workspace happened to build even after the install/uninstall procedures mentioned - which confuses me (I thought, un/installing Eclipse/CCS components changes the build system, not a single workspace or project).

    I am currently reverting my first lib project in order to retry the build with an older revision of the project directory.

  • Benedikt said:
    Yes, it is a SYS/BIOS project.

    I think the problem is that when the GCC compiler version is changed that CCS sets the RTSC Target to the wrong value. E.g. with CCS 6.2.0.00050:

    1) Import the task_GPEVM_AM572X_SiRevA_CortexA SYS/BIOS example, and select compiler version GNU v4.8.4 during the import. The RTSC Target is set to "gnu.targets.arm.A15F" and the imported project builds correctly using GNU v.4.8.4.

    2) In the CCS project properties change the compiler version from GNU v4.8.4 to v4.9.3. The project now fails to build reporting:

    xdctools_3_32_01_22_core\gmake.exe: *** Deleting file `package.mak'
    js: "C:/ti/bios_6_45_01_29/packages/ti/targets/arm/elf/IArm.xs", line 77: Error: template generation of 'compiler.opt' failed: Error: The compiler in C:/ti_ccs6_2_0/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3 is not compatible with this version of TI-RTOS or SYS/BIOS. Please use Arm compiler 5.2.2 or newer.
        "./package.bld", line 54

    3) On looking at the RTSC project properties see that the act of changing the GNU compiler version has caused CCS to incorrectly change the Target from "gnu.targets.arm.A15F"  to "ti.targets.arm.elf.A8Fnv". This is a change of the GNU to TI compiler tools, and a change of a Cortex-A15 to Cortex-A8!

    Changed the Target back to "gnu.targets.arm.A15F" and the project now builds with GNU v4.9.3

    [To get this example to link with GNU v4.9.3 had to set the -mfpu option to vfpv4 due to SYS/BIOS examples for Cortex-A15 generate linker errors in CCS 6.2.0 due to the FPU related flags passed to the GCC linker]

    Can you check the RTSC target is set correctly for the SYS/BIOS programs you are getting the build errors for.

  • I am sorry I have discarded the broken workspace in the meantime.

    I have (re-)imported the same CCS Project directories into a new CCS Workspace and analysed the RTSC settings on the properties pages.
    They do match my setting "gnu.targets.arm.A8F", which matches my actual target, so the problem seems to be fixed on the new workspace.
  • Chester Gillon said:
    I think the problem is that when the GCC compiler version is changed that CCS sets the RTSC Target to the wrong value. E.g. with CCS 6.2.0.00050:

    Chester,

    I could reproduce this issue and have filed it in our system as CCSIDE-2988. Thank you for bringing this to our attention.

  • While analysing my project, I received a lot of null pointer exceptions I didn't want to post in this thread.
    Now I have found a probable trigger for this behaviour, which IMO does not have to do with this issue.
    See e2e.ti.com/.../553893 for detail.