Home » Android » Is there a way to let Android NDK-build use a newer version of gcc?

Is there a way to let Android NDK-build use a newer version of gcc?

Posted by: admin May 14, 2020 Leave a comment

Questions:

I installed Android NDK r5b Windows version, and I use cygwin to compile the C code.

I see the NDK-build is actually calling
C:\android-ndk-r5b\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin\arm-linux-androideabi-gcc-4.4.3 to compile. I wonder if there is a way to let NDK-build use a newer version of gcc?

The reason I want to do this is:

Gcc4.4.3 has known bug on generating not optimal assembly code for certain NEON intrinsics
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43118
http://hilbert-space.de/?p=22

The newly released GCC 4.6 claims that it has some improvements for ARM and intrinsics. So I want try to have NDK-build use GCC4.6.

How to&Answers:

I believe your question would be answered by this NDK documentation: docs/STANDALONE-TOOLCHAIN.html. It sounds to me like you know what you’re doing, so just heed the warnings and happy hacking. I believe section 3 “Invoking the compiler (the easy way)” is what you’re looking for.

Answer:

There is an alternative NDK build: http://www.crystax.net/en/android/ndk/7

It includes gcc 4.6.3.

Answer:

While trying to answer this myself I came across this, which is a step-by-step account of a man who successfully built the toolchain with GCC 4.6: http://glandium.org/blog/?p=2146.

Answer:

Android NDK 8b is released, featuring GCC 4.6 as the default toolchain.

http://developer.android.com/tools/sdk/ndk/index.html