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.

RTOS/CCSTUDIO-SITARA: Support for "long long"

Part Number: CCSTUDIO-SITARA
Other Parts Discussed in Thread: SYSBIOS

Tool/software: TI-RTOS

Hi!


We are migration from CCS 6.2 to the lates CCS 7.4, including the latest XDC/SYSBIOS Components.
To get the new setup to compile I need to use newlib-nano, so avoid problems with linker errors casued in
ReentSupport_getReent() function in SYSBIOS.

I have read most of the articles about migration but I'm stuck. The main issue is that we need to have "long long"  and "float" support.
I have got float to work by specifying the "-u _printf_float" in the linker misc flags.

I have also tried to link/build with newlib, NOT newlib-nano but I can't get it to work.

Could somebody please give me some advice how to proceed.

[edit]

Linker error:

C:\gitnew\GSE2\application\src\sysbios\sysbios.aa15fg(gnu_ReentSupport.o): In function `ti_sysbios_rts_gnu_ReentSupport_getReent(int0_t)':

C:/ti/bios_6_52_00_12/packages/ti/sysbios/rts/gnu/ReentSupport.c:173: undefined reference to `__sf_fake_stdin'

C:/ti/bios_6_52_00_12/packages/ti/sysbios/rts/gnu/ReentSupport.c:173: undefined reference to `__sf_fake_stdout'

C:/ti/bios_6_52_00_12/packages/ti/sysbios/rts/gnu/ReentSupport.c:173: undefined reference to `__sf_fake_stderr'

C:/ti/bios_6_52_00_12/packages/ti/sysbios/rts/gnu/ReentSupport.c:173: undefined reference to `__sf_fake_stdin'

C:/ti/bios_6_52_00_12/packages/ti/sysbios/rts/gnu/ReentSupport.c:173: undefined reference to `__sf_fake_stdout'

C:/ti/bios_6_52_00_12/packages/ti/sysbios/rts/gnu/ReentSupport.c:173: undefined reference to `__sf_fake_stderr'

BR: Per-Anders

  • The RTOS team have been notified. They will respond here.
  • user726080,

    Have you seen this thread: e2e.ti.com/.../450479

    Additionally, this page has some material that might help: processors.wiki.ti.com/.../BIOS_with_GCC_(CortexA)

    Todd
  • Hi!. 

    Thanks for a fast reply. Yes, I have read them, but I still can't figure how I should configure CCS Studio to use the "newlib" instead of "newlib-nano".

    Do you have the posibility that I can download and recompile the newlib-nano with longlong support. I saw that there is a define for that.

    I had to do a work-around to get both float and long-long to work with printf-functions, used/added another printf which supports that functionallity

    and replaced the names with my own.

    But still my question. How do I setup/config CCS Studio so I can used "newlib" and "nosys" at the same time. 

    BR, and a Happy New Year.

    PS: If you need my setup I can provide it.

  • Hi Per-Anders Strand,

    SYS/BIOS re-entrancy support (ti.sysbios.rts.gnu.ReentSupport) has been modified to work with newlib-nano and will not work with newlib. The re-entrancy structure sizes are different between newlib and newlib-nano. Also, some re-entrancy structure initialization macros are different.

    I think rebuilding newlib-nano with "long long" enabled is a good option. You can download the sources from ARM linaro. The source package contains a script for rebuilding the entire toolchain. To speed things up, you can comment out everything except the newlib-nano build. You can also add/remove configure options to customize the build.

    The download links for latest GCC baremetal tools can be found here:

    https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads

    Once you go to that page and to the right tool version, you want to download the package labeled "Source Invariant".

    Best,

    Ashish

  • Hi!

    Thanks for your input. I will "try" to recompile the newlib-nano the comming days. Whish me good luck. :-)

    BR:

    Per-Anders

    PS: Have you considured to provide the newlib-nano with 64 bit support, or maybe two different libs? I think that with a "Am57xx" processor, memory isn't a problem and 64 bit values also used.

  • Good luck! :) Having built newlib & newlib-nano from sources many times before, I can say that the process is pretty simple as the build scripts are shipped with the sources. The only drag is that the build takes a while to complete.

    >> Have you considured to provide the newlib-nano with 64 bit support, or maybe two different libs? I think that with a "Am57xx" processor, memory isn't a problem and 64 bit values also used.

    Our goal has been to keep all the configuration options same as what are used to build the newlib libraries shipped with the GCC tools. We rebuild the library only to enable dynamic re-entrancy support.

    Best,

    Ashish