From 2fe086c21f21139b2702171709f56778e0222108 Mon Sep 17 00:00:00 2001 From: David Friedman Date: Mon, 13 Oct 2014 21:45:44 -0700 Subject: NDK-r10c release notes (change log) for publication to NDK page on DAC. Change-Id: I0f8bc87b741ec1ef978c3fc22954d43519172299 --- docs/html/tools/sdk/ndk/index.jd | 312 ++++++++++++++++++++++++++++++--------- 1 file changed, 239 insertions(+), 73 deletions(-) (limited to 'docs/html/tools/sdk') diff --git a/docs/html/tools/sdk/ndk/index.jd b/docs/html/tools/sdk/ndk/index.jd index e75f451..06474dc 100644 --- a/docs/html/tools/sdk/ndk/index.jd +++ b/docs/html/tools/sdk/ndk/index.jd @@ -2,60 +2,32 @@ ndk=true page.template=sdk -ndk.mac64_download=android-ndk32-r10b-darwin-x86_64.tar.bz2 -ndk.mac64_bytes=413652124 -ndk.mac64_checksum=7ca4a84e9c56c38acdafb007e7cd33c5 +ndk.mac64_download=android-ndk-r10c-darwin-x86_64.bin +ndk.mac64_bytes=436952863 +ndk.mac64_checksum=bc04ef44b920cf6cd2157b6f2c3531d6 -ndk.mac32_download=android-ndk32-r10b-darwin-x86.tar.bz2 -ndk.mac32_bytes=406998070 -ndk.mac32_checksum=db3626b2c5f3245d90e2724f7bcf4c3e +ndk.mac32_download=android-ndk-r10c-darwin-x86.bin +ndk.mac32_bytes=435858709 +ndk.mac32_checksum=6b3e143f7e64d5cd337b727513e27913 -ndk.linux64_download=android-ndk32-r10b-linux-x86_64.tar.bz2 -ndk.linux64_bytes=422237011 -ndk.linux64_checksum=5c0f301aa789a1a747d5d2aeb8c69ef3 +ndk.linux64_download=android-ndk-r10c-linux-x86_64.bin +ndk.linux64_bytes=449013322 +ndk.linux64_checksum=792c61706cd9ec6713fa1b69b2f42996 -ndk.linux32_download=android-ndk32-r10b-linux-x86.tar.bz2 -ndk.linux32_bytes=421052081 -ndk.linux32_checksum=e8f55daa5c9de7ab79aaaf5d7d751b69 +ndk.linux32_download=android-ndk-r10c-linux-x86.bin +ndk.linux32_bytes=438555265 +ndk.linux32_checksum=d1595d9ca5e15484e047f1ac326c4ceb -ndk.win64_download=android-ndk32-r10b-windows-x86_64.zip -ndk.win64_bytes=531912027 -ndk.win64_checksum=e4dd2e0c6f38e3ad936c366bdf6b1d4e +ndk.win64_download=android-ndk-r10c-windows-x86_64.exe +ndk.win64_bytes=458925419 +ndk.win64_checksum=af8edf5d316e1bf1a5a72e04a9faec41 -ndk.win32_download=android-ndk32-r10b-windows-x86.zip -ndk.win32_bytes=502720425 -ndk.win32_checksum=9fa4f19bca7edd6eefa63fe788737987 +ndk.win32_download=android-ndk-r10c-windows-x86.exe +ndk.win32_bytes=433102815 +ndk.win32_checksum=805a04810719886674d3c7bff5eca53f -ndk.mac64_64_download=android-ndk64-r10b-darwin-x86_64.tar.bz2 -ndk.mac64_64_bytes=346423776 -ndk.mac64_64_checksum=5bae7feed20ebf0762c0baefe6b84b6d - -ndk.mac32_64_download=android-ndk64-r10b-darwin-x86.tar.bz2 -ndk.mac32_64_bytes=344052876 -ndk.mac32_64_checksum=4447049ac2b5877176b9b6b1cf3bcdb2 - -ndk.linux64_64_download=android-ndk64-r10b-linux-x86_64.tar.bz2 -ndk.linux64_64_bytes=358835298 -ndk.linux64_64_checksum=2aa12a0d9a70bcab83e42d010a685136 - -ndk.linux32_64_download=android-ndk64-r10b-linux-x86.tar.bz2 -ndk.linux32_64_bytes=358060577 -ndk.linux32_64_checksum=b77eb583626d8c7f5c11e49181fd5eac - -ndk.win64_64_download=android-ndk64-r10b-windows-x86_64.zip -ndk.win64_64_bytes=437152652 -ndk.win64_64_checksum=df39185e6c5a4d72eb9fca3f9aaabc46 - -ndk.win32_64_download=android-ndk64-r10b-windows-x86.zip -ndk.win32_64_bytes=417290468 -ndk.win32_64_checksum=0f0324cb11f04e8b2641e5422ee39c81 - -ndk.debug_info_download=android-ndk-r10b-cxx-stl-libs-with-debug-info.zip -ndk.debug_info_bytes=227302317 -ndk.debug_info_checksum=bed1bb855a41bdb572a804dbf6d45aa6 - page.title=Android NDK @jd:body @@ -407,12 +379,6 @@ injunctive remedies (or an equivalent type of urgent legal relief) in any jurisd $('#Downloads').after($('#download-table')); - -

With NDK revision 9 and higher, the release packages have been split to reduce download size. - The first download for each platform contains the default NDK toolchain. The additional download - contains legacy NDK toolchains for that platform, which is only required if you are not using - the current, recommended toolchain for your NDK builds.

-

Revisions

The following sections provide information about releases of the NDK.

@@ -422,6 +388,196 @@ $('#Downloads').after($('#download-table'));

Android NDK, Revision 10c (October 2014) +

+
+
+
Important changes:
+
+
    +
  • Made the following changes to download structure:
  • +
      +
    • Each package now contains both the 32- and the 64-bit headers, libraries, and tools for + its respective platform.
    • +
    • STL libraries with debugging info no longer need be downloaded separately.
    • +
    +
  • Changed everything previously called Android-L to the official release + designation: android-21.
  • +
  • Updated GCC 4.9 by rebasing to the google branch + of the GCC repository. Major differences from the upstream version of GCC 4.9 include:
  • + +
      +
    • The -O2 option now turns on vectorization, without loop peeling but with more + aggressive unrolling.
    • +
    • Enhancements to FDO and + LIPO
    • +

      For more detailed information, see Important bug fixes below.

      +
    + +
  • Added Clang 3.5 support to all hosts: NDK_TOOLCHAIN_VERSION=clang + now picks Clang 3.5. Note that:
  • +
      + +
    • ARM and x86 default to using the integrated assembler. If this causes issues, use + -fno-integrated-as as a workaround. +
    • Clang 3.5 issues more warnings for unused flags, such as the -finline-functions + option that GCC supports.
    • +

      When migrating from projects using GCC, you can use + -Wno-invalid-command-line-argument and -Wno-unused-command-line-argument + to ignore the unused flags until you're able decide on what to do with them longer-term.

      + +
    +
  • Made it possible to enter ART debugging mode, when debugging on an Android 5.0 device using + ART as its virtual machine, by specifying the art-on option. For more information, + see prebuilt/common/gdb/common.setup in the directory containing the NDK.
  • +
  • Removed support for Clang 3.3.
  • +
  • Deprecated GCC 4.6, and may remove it from future releases.
  • +
  • Updated mclinker to 2.8 with Identical Code Folding ("ICF") support. Specify ICF using the + --icf option.
  • +
  • Broadened arm_neon.h support in x86 and x86_64, attaining coverage of ~93% of + NEON intrinsics. For more information about NEON support: +
      +
    • Navigate to the NDK Programmer's Guide (docs/Programmers_Guide/html/), and see + Architectures and CPUs > Neon.
    • +
    • Examine the updated hello-neon sample in samples/. +
    • See Intel's guide to porting from ARM NEON to Intel SSE.
    • +
    +
  • Documented support for _FORTIFY_SOURCE in headers/libs/android-21, + which appeared in r10 (when android-21 was still called Android-L), + but had no documentation.
  • +
+
+
+ + +
Important bug fixes:
+
+ +
+ + +
Other bug fixes:
+
+
    +
  • Made the following header and library fixes to android-21: +
      + +
    • Added more TV keycodes: android/keycodes.h
    • +
    • Added more constants and six new sensor functions to android/sensor.h: + ASensorManager_getDefaultSensorEx, ASensor_getFifoMaxEventCount, + ASensor_getFifoReservedEventCount, ASensor_getStringType, + ASensor_getReportingMode, and ASensor_isWakeUpSensor.
    • +
    • Fixed stdatomic.h to improve compatibility with GCC 4.6, and provide support + for the <atomic> header.
    • +
    • Added sys/ucontext.h and sys/user.h to all API levels. The + signal.h header now includes <sys/ucontext.h>. You may + remove any existing definition of struct ucontext.
    • +
    • Added posix_memalign to API levels 17, 18, and 19.
    • +
    • Added the following functions to all architectures: + android_set_abort_message, posix_fadvise, + posix_fadvise64, pthread_gettid_np.
    • +
    • Added the required permissions to the native-media/AndroidManifest.xml + sample. + (Issue 106640)
    • +
    • Added clock_nanosleep and clock_settime to API level 21. (Issue + 77372) +
    • Removed the following symbols from all architectures: + get_malloc_leak_info, free_malloc_leak_info, + __srget, __swbuf, __srefill, __swsetup, + __sdidinit, __sflags, __sfp, + __sinit, __smakebuf, __sflush, __sread, + __swrite, __sseek, __sclose, + _fwalk, __sglue, __get_thread, __wait4, + __futex_wake, __open, __get_tls, + __getdents64, and dlmalloc.
    • +
    • Removed the following functions from the 64-bit architectures: basename_r, + dirname_r, __isthreaded, _flush_cache (mips64).
    • +
    • Removed the following function from the 32-bit architectures: + __signalfd4.
    • +
    • Changed the type of the third argument from size_t to int in + the following functions: strtoll_l, strtoull_l, + wcstoll_l, and wcstoull_l.
    • +
    • Restored the following functions to the 64-bit architecture: arc4random, + arc4random_buf, and arc4random_uniform.
    • +
    • Moved cxa_* and the new and delete operators back + to libstdc++.so. This change restores r9d behavior; previous versions of r10 + contained dummy files.
    • + +
    +
  • Restored MXU support in GCC 4.8 and 4.9 for mips. This support had been absent from + r10 and r10b because those versions of GCC had been compiled with binutils-2.24, which did + not support MXU. It now does.
  • +
  • Fixed --toolchain= in make-standalone-toolchain.sh so that it + now properly supports use of a suffix specifying a version of Clang.
  • +
  • Fixed the libc++/armeabi strtod() functions.
  • +
  • Made fixes to NDK documentation in docs/.
  • +
+
+ +
Other changes:
+
+
    +
  • Enhanced cpu-features to detect ARMv8 support for the following + instruction sets: AES, CRC32, SHA2, SHA1, and 64-bit PMULL/PMULL2. (Issue + 106360)
  • + +
  • Modified ndk-build to use *-gcc-ar, which is available in GCC 4.8, GCC 4.9, and + Clang. Clang specifies it, instead of *-ar. This setting brings improved LTO + support.
  • + +
  • Removed the include-fixed/linux/a.out.h and + include-fixed/linux/compiler.h headers from the GCC compiler. + (Issue 73728)
  • + +
  • Fixed an issue related to -flto with GCC 4.8 on Mac OS X. The error message + read:
  • + +
    +.../ld: error: .../libexec/gcc/arm-linux-androideabi/4.9/liblto_plugin.so
    +Symbol not found: _environ
    +
    + +
  • Fixed a typo in build-binary.mk. (Issue + 76992)
  • +
+
+ +
Important known issues:
+
+
    +
  • Specifying -Os (-fauto-profile) in GCC4.9 may cause crashing. + (Issue 77571)
  • +
+
+ +
+
+ + + + + + +
+

+ Android NDK, Revision 10b (September 2014)

@@ -484,20 +640,10 @@ $('#Downloads').after($('#download-table')); - -
- - - - - - - -

for the NDK, if you haven't already.

-

To install the NDK, follow these steps:

- -
    -
  1. From the table at the top of this page, select the NDK package that is appropriate for your - development computer and download the package.
  2. - -
  3. Uncompress the NDK download package using tools available on your computer. When - uncompressed, the NDK files are contained in a directory called +

    To install the NDK, first download the appropriate package from the table at the top of this + page. Then, follow the procedure for your development platform:

    +
      +
    • On Linux and Mac OS X (Darwin): +
        +
          +
        1. Download the appropriate package from this page.
        2. +
        3. Open a terminal window.
        4. +
        5. Go to the directory to which you downloaded the package.
        6. +
        7. Run chmod a+x on the downloaded package.
        8. +
        9. Execute the package. For example:
        10. +
          +ndk$ chmod a+x android-ndk-r10c-darwin-x86_64.bin
          +ndk$ ./android-ndk-r10c-darwin-x86_64.bin
          +          
          +

          The folder containing the NDK extracts itself.

          +

          Note that you can also use a program like 7z to extract the package.

          +
        +
      +
    • On Windows:
    • +
        +
          +
        1. Download the appropriate package from this page.
        2. +
        3. Navigate to the folder to which you downloaded the package.
        4. +
        5. Double-click the downloaded file. The folder containing the NDK extracts itself.
        6. +
        +
      +
    When uncompressed, the NDK files are contained in a directory called android-ndk-<version>. You can rename the NDK directory if necessary and you can move it to any location on your computer. This documentation refers to the NDK directory as - <ndk>.
  4. -
+ <ndk>. +

You are now ready to start working with the NDK.

@@ -3689,7 +3855,7 @@ also build for

Development tools

-

The NDK includes a set of cross-toolchains (compilers, linkers, etc..) that can generate +

The NDK includes a set of cross-toolchains (compilers, linkers, etc.) that can generate native ARM binaries on Linux, OS X, and Windows (with Cygwin) platforms.

It provides a set of system headers for stable native APIs that are guaranteed to be supported -- cgit v1.1