NDK_TOOLCHAIN_VERSION=4.6
to ndk-build, or
add --toolchain=arm-linux-androideabi-4.6
when executing
make-standalone-toolchain.sh
on the command line. GCC 4.9 remains the
default for 64-bit ABIs.-mstackrealign
by default. The
NDK toolchain assumes a 16-byte stack alignment. The tools and options used by default
enforce this rule. A user writing assembly code must make sure to preserve stack
alignment, and ensure that other compilers also comply with this rule.
(GCC bug 38496)-fPIE -pie
when building. In API levels 16 and higher, ndk-build uses PIE
when building. This change has a number of implications, which are discussed
here.
These implications do not apply to shared libraries.--fix-cortex-a53-835769
, when
-mfix-cortex-a53-835769
(enabled by default) is specified.
For more information, see
this page and
this pagesscanf/vsscanf
hang that occurred in API level
21. The fix itself had been implemented in r10c.
(Issue 77988)-fauto-profile
) crash that occurred with GCC 4.9 when
-Os
was specified. (Issue 77571)posix_memalign
to API level 16. Also, added a prototype in
stdlib.h
to API levels 16 to 19.
(Issue 77861.)stdatomic.h
so that it includes <atomic>
only for
C++11.sys/user.h
, and
gl2ext.h
, dlext.h
, fts.h
, sgidefs.h
for API level 21.sys/user.h
to rename mxcsr_mask
as mxcr_mask
,
and to change the data type for u_ar0
unsigned long
to struct user_regs_struct*.
sysconf()
return value type from int
to
long
.thumb
for LOCAL_ARM_MODE
: In
r10d, ndk-build adds LOCAL_LDFLAGS+=-mthumb
by default, unless one of the
following conditions applies:LOCAL_ARM_MODE
has been set equal to arm
.APP_OPTIM=debug
and
AndroidManifest.xml
containing android:debuggable="true"
),
where ARM mode is the default in order to retain compatibility with earlier toolchains.
(Issue 74040)LOCAL_SRC_FILES
in ndk-build to use Windows absolute paths.
(Issue 74333)make-standalone-toolchain.sh
.
(Issue 74145)System.loadLibrary()
transitive
dependencies. (Issue 41790)LOCAL_PCH
to improve Clang support. (Issue
77575)