Currently working on something where I need to develop some feature using C++14, but still wondering on whether it can be supported by Bionic & NDK??
From Bionic Wiki Status, C++11 featureshas been implemented/included into Bionic. Only catch is, it is done Android Oreo onwards (which is totally fine for my development :p )
So my question would be:
Please guide me, Am I missing something here with Bionic Status? The status I'm checking is correct?
If no C++14 support in Bionic, Will C++14 features be included/implemented into Bionic any next release soon? Is there any announcement on this?
Bionic is the standard C library. It does not support any C++ std library features let alone C++14.
If you are asking about NDK, then as per the cpp-support page for NDK, LLVM's libc++ is the C++ standard library that has been used by the Android OS since Lollipop and this supports C++17 features.
Related
I want to use openMP library in my project but it seems as if there is no option for openMP in xcode 5.1. if someone knows then please help me
There is clang with OpenMP 3.1/4.0 support (though not official). You can take it here http://clang-omp.github.io/
OpenMP is not a library but a language extension to C, C++ and Fortran. It requires support built into the compiler. Xcode uses compilers based on the LLVM infrastructure. It used to provide two different compiler front-ends - Clang and GCC. Of those two, the former does not have support for OpenMP (yet). The GCC front-end provided some support for old OpenMP features but is no longer part of Xcode. It used to be based on a very old GCC version (4.2.1) and not actively updated since Apple started throwing all their resources into improving Clang.
In other words - no OpenMP support in Xcode 5.1. You can build your own modern (but non-LLVM) GCC from source and use it on the command line, but it's hard to integrate it with Xcode.
I want to use cilk++ for writing parallel code. I want to know the the simplest way to get started either in windows or ubuntu 10.04.What should I istall to get started with cilk++.
Thanx.
cilk++ is an earlier implementation of the Cilk extension to C++. It is no longer supported.
Cilk has been implemented in the Intel Composer XE C++ compiler, as well as the "cilkplus" branch of GCC.
I'd start with the article http://www.cilkplus.org/which-license at the Cilk Plus website. Be aware that the "cilkplus" branch of GCC is off of the GCC 4.8 stream, which is under active development.
Barry Tannenbaum -
Intel Cilk Plus Runtime Development
Go here.
Cilk Plus OSS Website
I wonder if anyone is using GCC as production stable toolchain for Freescale's 68HC12 microcontroller family. It seems to me that there aren't up-to-date toolchains other than that from Freescale itself and those from Cosmic Software (http://www.cosmic-software.com/) and IAR (http://www.iar.com/), of course.
GNU 68HC11/12 (http://savannah.gnu.org/projects/m68hc11) is based on GCC 3.1 and its latest news is 4-year old
GCC-4.6 declared (http://gcc.gnu.org/gcc-4.6/changes.html) that Motorola 68HC11 and 68HC12 architectures are obsolete
GCC-HCS12 (http://gcc-hcs12.com/) sounds promising for what I'm looking for, yet it seems unmaintained. There exists a dozing Google Group gcc-hcs12 (http://groups.google.com/group/gcc-hcs12/), though. Plus, the available zip download contains a file called gnu-68hc1x-3.1.exe dated 2007.
MegaSquirt (http://www.msextra.com/tools/) seems to offer the most maintained toolchain, packaged on 29 Oct 2010. It is built on extended versions of the SCz tools (which I don't know what it means):
binutils-2.18 with S12X and XGATE enhancements
gcc-3.3.6 with S12/S12X ldivmod and larith enhancements
newlib with 9s12x target
GNU 68HC11/12 is based on GCC 3.3.6. The GNU 68HC11/12 release 3.1 is a bundle package which contains the complete tool chain based on Gcc 3.3.6, Gdb 6.4, Binutils 2.15 and Newlib 1.12.0.
Several projects have used it as a basis for their own needs. GCC-HCS12 and MegaSquirt are examples of such projects.
Some board vendors have also shipped the GNU 68HC11/12 version with their board.
MegaSquirt did some improvements on my original port for the support of XGate and
better support for H9S12X.
The gcc 3.3.6 release is the most stable and production ready release. Despite its apparent
oldness, it is more stable than what you could get with gcc 4.x recent mainstream releases.
The obsolete announcement is sad but I don' have time to work on repairing what is broken in GCC 4.6.
Initial note: The question mentions AIX because it is the initial context but the question really pertains to gcc itself, most probably regardless of the platform.
AIX is supposed to be backwards binary compatible: a C program compiled on AIX 5.1 will run as is on 5.2, 5.3, 6.1 and 7.1.
In my understanding gcc should be built to target a specific system (whether the current one or another one in the case of cross-compiling). So, gcc built on AIX 6.1 targets AIX 6.1, and produces binaries usable on both 6.1 and 7.1 thanks to binary compatibility.
Yet gcc itself built on AIX 6.1 is a 6.1 program, so it should execute on 7.1 as is. Of course if I compile a program with it on 7.1, this program might get linked or use headers specific to 7.1, thus making the resulting binary requiring 7.1. So as far as I understand it, I should be able to run gcc built on AIX 6.1 onto a 7.1 machine, and produce maybe non-optimal yet perfectly valid binaries, although they would require 7.1 as a side effect of linking.
This looks too much like rainbows and unicorns dancing in glittery skies. I smell something fishy but lack any knowledge of gcc innards. Please mighty crowd, enlighten me.
tl;dr: Can gcc built on and targeting a version N of an OS/platform be run and used on version N+1 by virtue of platform binary compatibility to produce binaries running on version N+1? If not, what mechanism would prevent it?
Here's enlightenment: your question is way too general. In order to answer it, someone would have to have knowledge of
the operating systems you care about
the OS versions you care about
the gcc versions you care about
and then research the binary compatibility in this three dimensional matrix.
Mechanisms preventing binary compatibility are too numerous and directly correlate to your OS and compiler vendor's ingenuity at breaking it. One of the more common and documented ways being official deprecation of API calls, removal of compatibility libraries shipped, and bridges being burnt, like going from a.out to ELF.
I'm developing a GPS application under Linux, with ARM7 microprocessor.
Which compiler do you recommend? Do you know if there is any toolkit with libraries ready to develop GPS applications?
A friend of mine recommended gcc... what do you guys think about it?
Thank you
I don't think that the compiler matters that much. What is more important is your precise understanding of the library you are using, or of the actual device you are invoking.
However, I will recommend GCC, and I do recommend using a very recent version of GCC. For instance, GCC 4.6.2 is appearing these days, and there have been lot of work recently put in GCC to improve its perfomance for ARM processors. So, if possible, us a 4.6 GCC, not a 4.3 one (some hardware vendors don't give recent GCC with their ARM development kit; you should consider in that case building your GCC (and perhaps binutils) from their source code.
I know nothing about GPS itself.