NI Linux Real-Time Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Updating the ARM GNU/Linux compiler

From the NI Linux RT FAQ https://decibel.ni.com/content/docs/DOC-35053 the GCC version include with Eclipse is 4.4.1.  I have a software vendor that is going to provide middleware which I will integrate into my 9068 application.  That vendor has recommended I use GCC version 4.8 or later because "there might be memory cahce coherence on the dual core ARM"

Does the community agree with that statement?  I assume it is no big deal to update the toolchain but if there is a real issue shouldn't NI provide the later version as part of their Eclipse release?

Kevin

0 Kudos
Message 1 of 4
(3,747 Views)

I'd be interested in details of the dual-core ARM cache coherence issue fixed in GCC 4.8 if the vendor has any reference material to share. That would help us prioritize when we update the version included in the Eclipse release. I looked around a little for further details and didn't immediately find any in a search, and didn't find any reference to cache or coherence in the GCC 4.8 release notes at http://gcc.gnu.org/gcc-4.8/changes.html

0 Kudos
Message 2 of 4
(3,029 Views)

I'm by no means an expert on this yet, but here is some new infomation I've been provided when I asked for more specifics.

The issue is related to C++ Atomic operations that didn't exist until C+11 and GCC didn't fully implement until version 4.8.

here is one of the links I was provided.

http://www.cl.cam.ac.uk/~pes20/weakmemory/index.html#CPP

0 Kudos
Message 3 of 4
(3,029 Views)

Ah, right. There are some C++11 features that weren't completed in GCC prior to 4.8 as noted in https://gcc.gnu.org/projects/cxx0x.html including some like memory model and fences that could be related to coherence. Are you (or your vendor) using those C++11 features specifically? If not, you may be okay with the older GCC by avoiding the missing C++11 features. We've done extensive testing related to cache coherence issues on dual-core ARM and I'm confident older GCC's are generally fine on dual-core ARM, but it's possible there are bugs in the C++11 support that wouldn't have affected our usage yet since we don't generally use C++11.

At any rate, thank you for the details. We intend to keep the Eclipse support up to date and it's definitely helpful to know which features are important to you.

0 Kudos
Message 4 of 4
(3,029 Views)