• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Digital Signal Processors (DSP) » C6000 Multicore DSP » Keystone Multicore Forum (C66, 66A, AM5) » Error compiling for Open MP
Share
C6000 Multicore DSP
  • Forums
  • Announcements
Options
  • Subscribe via RSS
Training Available
TI provides self-paced online training that introduces the primary components of the KeyStone II family of SoC devices.

  • KeyStone II SoC Overview >
  • KeyStone II Software Overview >
  • KeyStone II ARM Cortex-A15 Corepac Overview >
  • More Information >
  • Check out
    Multicore Mix blog
    • $core_v2_blog.Current.Name

      Geeks UNITE for Geek Pride Day

      Posted 22 hours ago
      by Lauren Reed1
      Happy Geek Pride Day from the Processors team! We wanted to celebrate...
    • $core_v2_blog.Current.Name

      OpenMP - All aboard!

      Posted 2 days ago
      by Debbie Greenstreet
      With so many end products today relying on multicore DSPs for...
    • $core_v2_blog.Current.Name

      A look back: Two years of Multicore Mix

      Posted 3 days ago
      by Lauren Reed1
      A big thank you to everyone who participated in our contest last...

    Forums

    Error compiling for Open MP

    This question is answered
    Elaina Chai
    Posted by Elaina Chai
    on Jun 20 2012 10:23 AM
    Prodigy130 points

    I am trying to run a simple hello world program for Open MP on a C6678 core.

    I am compiling using CGT7.4.0B2.

    I am using the OMP package 1.00.01.05

    In the project properties, under C6000 Compiler -> Advanced Options ->Advanced Optimizations , I selected 'Enable Support for OpenMP 3.0.

    I receive the following errors and warning:

    <Linking>
    error #10378: non-TLS reference "errno" in
       "/opt/ti/omp_1_00_01_05_eng/packages/ti/omp/lib/release/ti.omp.ae66<env.oe66
       >" mismatches TLS definition in
       "/opt/ti/C6000CGT7.4.0B2/lib/rts6600_elf_mt.lib<errno.obj>"
    warning #10247-D: creating output section ".TI.tls" without a SECTIONS
       specification
    warning #10247-D: creating output section ".TI.tls_init" without a SECTIONS
       specification

    I am unsure what to do to resolve these errors and warnings.

    Thanks,

    Elaina

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Uday
      Posted by Uday
      on Jun 22 2012 15:11 PM
      Verified Answer
      Verified by Elaina Chai
      Expert3730 points

      Hi Elaina,

      Wrt your original question, I was able to recreate the symbol mismatch linking error you are seeing, when I tried your example with the 7.4.0B2 version of the compiler. This symbol mismatch issue will be fixed in the upcoming MCSDK 2.1 beta that Travis mentioned. In the meantime, you can use the following workaround:

      1. Right-click on your project and select Properties

      2. Go to Build-->C6000 Linker-->File Search Path. Select first the "Debug" configuration from the drop-down menu and in the "Include library file or command file as input" box replace "libc.a" with "rts6600_elf.lib" as indicated in the snapshot below:

      3. Repeat #2 for the "Release" configuration.

      4. Clean Project and Build Project

      - Uday

      --- If you need more help, please reply. If this answers your question, please Verify Answer below this post ---

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Elaina Chai
      Posted by Elaina Chai
      on Jun 22 2012 17:23 PM
      Prodigy130 points

      The fix worked and I can now compile the program (using all 8 cores) without any errors. However, I am now trying to run it on the TMDXEVM6678LE, and I am getting an error related to Heap Memory.

      -I launch the target configuration file (Texas Instruments XDS100v1 USB Emulator), with the TMS320C6678 selected.

      -I group all the cores and connect to the group

      -I load the program to group. At this point all the cores start running except core 0, so I hit resume.

      I receive the following error:

      [C66xx_1] ti.sdo.ipc.heaps.HeapMemMP: line 740: E_memory: Out of memory: handle=0x8003e8, size=872546304
      xdc.runtime.Error.raise: terminating execution
      [C66xx_2] ti.sdo.ipc.heaps.HeapMemMP: line 740: E_memory: Out of memory: handle=0x8003e8, size=872546304
      xdc.runtime.Error.raise: terminating execution
      [C66xx_3] ti.sdo.ipc.heaps.HeapMemMP: line 740: E_memory: Out of memory: handle=0x8003e8, size=872546304
      xdc.runtime.Error.raise: terminating execution
      [C66xx_4] ti.sdo.ipc.heaps.HeapMemMP: line 740: E_memory: Out of memory: handle=0x8003e8, size=872546304
      xdc.runtime.Error.raise: terminating execution
      [C66xx_5] ti.sdo.ipc.heaps.HeapMemMP: line 740: E_memory: Out of memory: handle=0x8003e8, size=872546304
      xdc.runtime.Error.raise: terminating execution
      [C66xx_6] ti.sdo.ipc.heaps.HeapMemMP: line 740: E_memory: Out of memory: handle=0x8003e8, size=872546304
      xdc.runtime.Error.raise: terminating execution
      [C66xx_7] ti.sdo.ipc.heaps.HeapMemMP: line 740: E_memory: Out of memory: handle=0x8003e8, size=872546304
      xdc.runtime.Error.raise: terminating execution

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Uday
      Posted by Uday
      on Jun 25 2012 13:43 PM
      Expert3730 points

      Elaina,

      Could you please power cycle your board, start a new debug session in CCS and try the following:

      1. Select Core 0 and then go to Tools--> Debugger Options --> Generic Debugger Options as shown in the snapshot below

      2. Under 'General Debugger Options' ---> 'Auto Run Options' uncheck the box that says "On a program load or restart," and click "Remember My Settings" at the bottom

      3. Repeat steps 1 and 2 for all cores

      4. Load the .out file on each of the cores (or you can group them like you were doing earlier)

      5. Run the program on all cores 

      - Uday

      --- If you need more help, please reply. If this answers your question, please Verify Answer below this post ---

      debugger options runs automatically on loading
      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Elaina Chai
      Posted by Elaina Chai
      on Jun 25 2012 15:36 PM
      Prodigy130 points

      The error remains the same.

      I inserted some print statements to detect where the code was breaking. All print statements before the omp pragma work.

      -Elaina

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Benoit Dribault
      Posted by Benoit Dribault
      on Jun 26 2012 07:59 AM
      Verified Answer
      Verified by Elaina Chai
      Intellectual440 points

      Hi,

      Sorry for taking so much time to answer....

      I tried to compile your project with version 7.4 B2, but it did not work

      <Linking>
      warning #10366-D: automatic library build: using library "C:\ti3\C6x compiler
         7_4_0_B2\lib\rts6600_elf_mt.lib" for the first time, so it must be built.
         This may take a few minutes.
      "c:/users/admini~1/appdata/local/temp/ti1bf6~1/obj/exp10f.asm", ERROR!  :
       [E1000]
               Unable to open temp macro library
                 'C:\Users\ADMINI~1\AppData\Local\Temp\031762': Permission denied

      I created another project from helloworld exemple, compiled it with v7.4 B1 (did not work with B2...)

      I used :

      IPC : v1.24.0.16

      PDK for 6678 v1.1.0.1

      OpenMP BIOS runtime library1.0.1.05_eng

      SYS/BIOS : 6.32.5.54

      (XDCtools v3.22.4.46)

      I loaded it on all 8 cores, it worked.


      Do you use a gel file to initialize your board when you connect it ?

      I did not see it in your .ccxml file.

      I am using mcsdk_2_01_00_01\tools\program_evm\gel\evmc6678l.gel

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • tscheck
      Posted by tscheck
      on Jul 01 2012 22:15 PM
      Genius13085 points

      Please see the following announcement for access to the beta OpenMP MCSDK release:

      http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/b/announcements/archive/2012/06/29/bios-mcsdk-2-1-0-beta-available-for-c66x-dsp-openmp-support.aspx

      Regards,

      Travis

      If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Roelof Berg
      Posted by Roelof Berg
      on Jul 08 2012 07:16 AM
      Intellectual360 points

      Hello,

      thank you for figuring out a solution. Regarding the statement "This symbol mismatch issue will be fixed in the upcoming MCSDK 2.1 beta that Travis mentioned":

      I downloaded MCSDK 2.1 beta today and unfortunately the same issue is still present. I saw the error message of the original post also on my machine. Afer manually replacing libc.a by rts6600_elf.lib as written above, the error message of the original post vanished. Instead the compiler complains about the following:

      error #10378: TLS reference "errno" in

         "C:\ti\omp_1_01_02_03_beta\packages\ti\omp\lib\debug\ti.omp.ae66<env.oe66>"

         mismatches non-TLS definition in

         "C:/ti/C6000-Code-Generation-Tools-7.4.0B2/lib/rts6600_elf.lib<errno.obj>"

      I tried "rts6600_elf_mt.lib" instead, compilation finished. But I saw the following warnings (which I saw in several posts in the forum allready - and which I also saw during the first automatic compilation of the runtime (or whatever) library after installing the new compiler):

      <Linking>

      warning #10247-D: creating output section ".TI.tls" without a SECTIONS

         specification

      warning #10247-D: creating output section ".TI.tls_init" without a SECTIONS

      Two topics:

      a) The release manager of the beta version might be interested in the fact that libc.a has to be manually replaced in the current release.

      b) What do this warnings (which not only I see) mean ?

      Thank you.

      Best regards,

      Roelof Berg

      www.berg-solutions.de

       

      C6678 OpenMP OMP MCSDK 2.1 beta errno rts6600_elf_mt.lib rts6600_elf.lib libc.a
      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Roelof Berg
      Posted by Roelof Berg
      on Jul 08 2012 07:26 AM
      Intellectual360 points

      Additional information: I don't use the HelloWorld example, instead I use "OpenMP Example - Matrix-vector multiplication - C/C++ Version". Execution of the (with warnings and mt-runtime) compiled version on a C6678 EVM is successful.

      By the way: Excellent choice to provide OpenMP on a multicore DSP. TI rocks !

      www.berg-solutions.de

       

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Elaina Chai
      Posted by Elaina Chai
      on Jul 11 2012 13:57 PM
      Prodigy130 points

      Hi Benoit,

      It works now!

      The problem was that I was not using a gel file to initialize the board. I followed the instructions in the following post, and everything worked:

      http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/199072.aspx

      Thanks,

      Elaina

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    12
    TI E2E™ Community
    • Support Forums
    • Blogs
    • Videos
    • Groups
    • Site Support & Feedback
    • Settings
    TI E2E™ Community Groups
    • TI University Program
    • Make the Switch
    • Microcontroller Projects
    • Motor Drive & Control
    Other Communities
    • Deyisupport
    • Designsomething.org
    • beagleboard.org
    • TI on Element 14
    • TI on TechXchangeSM
    Other Technical & Support Resources
    • WEBENCH® Design Center
    • Product Information Centers
    • Technical Documents
    • TI Design Network
    • TI Technical Articles
    • TI Training

    All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

    Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

    Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
    TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

    TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
    embedded processors, along with software, tools and the industry’s largest sales/support staff.

    © Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
    Trademarks | Privacy Policy | Terms of Use