diff options
-rw-r--r-- | docs/html/tools/sdk/ndk/index.jd | 312 |
1 files changed, 239 insertions, 73 deletions
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')); </script> - -<p>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.</p> - <h2 id="Revisions">Revisions</h2> <p>The following sections provide information about releases of the NDK.</p> @@ -422,6 +388,196 @@ $('#Downloads').after($('#download-table')); <p> <a href="#" onclick="return toggleContent(this)"> <img src="/assets/images/triangle-opened.png" class="toggle-content-img" alt="" + >Android NDK, Revision 10c</a> <em>(October 2014)</em> + </p> + <div class="toggle-content-toggleme"> + <dl> + <dt>Important changes:</dt> + <dd> + <ul> + <li>Made the following changes to download structure:</li> + <ul> + <li>Each package now contains both the 32- and the 64-bit headers, libraries, and tools for + its respective platform.</li> + <li>STL libraries with debugging info no longer need be downloaded separately.</li> + </ul> + <li>Changed everything previously called <code>Android-L</code> to the official release + designation: <code>android-21</code>.</li> + <li>Updated GCC 4.9 by rebasing to the <code>google</code> branch + of the GCC repository. Major differences from the upstream version of GCC 4.9 include:</li> + + <ul> + <li>The <code>-O2</code> option now turns on vectorization, without loop peeling but with more + aggressive unrolling.</li> + <li>Enhancements to FDO and <a href="https://gcc.gnu.org/wiki/LightweightIpo#LIPO_-_Profile_Feedback_Based_Lightweight_IPO"> + LIPO</a></li> + <p>For more detailed information, see <em>Important bug fixes</em> below.</p> + </ul> + + <li>Added Clang 3.5 support to all hosts: <code>NDK_TOOLCHAIN_VERSION=clang</code> + now picks Clang 3.5. Note that:</li> + <ul> + + <li>ARM and x86 default to using the integrated assembler. If this causes issues, use + <code>-fno-integrated-as</code> as a workaround.</code> + <li>Clang 3.5 issues more warnings for unused flags, such as the <code>-finline-functions</code> + option that GCC supports.</li> + <p>When migrating from projects using GCC, you can use + <code>-Wno-invalid-command-line-argument</code> and <code>-Wno-unused-command-line-argument</code> + to ignore the unused flags until you're able decide on what to do with them longer-term.</p> + + </ul> + <li>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 <code>art-on</code> option. For more information, + see <code>prebuilt/common/gdb/common.setup</code> in the directory containing the NDK.</li> + <li>Removed support for Clang 3.3.</li> + <li>Deprecated GCC 4.6, and may remove it from future releases.</li> + <li>Updated mclinker to 2.8 with Identical Code Folding ("ICF") support. Specify ICF using the + <code>--icf</code> option.</li> + <li>Broadened <code>arm_neon.h</code> support in x86 and x86_64, attaining coverage of ~93% of + NEON intrinsics. For more information about NEON support: + <ul> + <li>Navigate to the NDK Programmer's Guide (<code>docs/Programmers_Guide/html/</code>), and see + Architectures and CPUs > Neon.</li> + <li>Examine the updated <code>hello-neon</code> sample in <code>samples/</code>. + <li>See Intel's guide to <a href="https://software.intel.com/en-us/blogs/2012/12/12/from-arm-neon-to-intel-mmxsse-automatic-porting-solution-tips-and-tricks"> porting from ARM NEON to Intel SSE.</a></li> + </ul> + <li>Documented support for <code>_FORTIFY_SOURCE</code> in <code>headers/libs/android-21</code>, + which appeared in r10 (when <code>android-21</code> was still called <code>Android-L</code>), + but had no documentation.</li> + </ul> + </dd> + <dl> + + + <dt>Important bug fixes:</dt> + <dd> + <ul> + <li>Fixed an internal compiler error with GCC4.9/aarch64 that was causing the following + error message (Issue <a href="http://b.android.com/77564">77564</a>):</li> +<pre> +internal compiler error: in simplify_const_unary_operation, at simplify-rtx.c:1539 +</pre> + <li>Fixed incorrect code generation from GCC4.9/arm. (Issue + <a href="http://b.android.com/77567">77567<a>)</li> + <li>Fixed an internal compiler error with GCC4.9/mips involving inline-assembly. (Issue + <a href="http://b.android.com/77568">77568</a>)</li> + <li>Fixed incorrect code that GCC4.9/arm was generating for <code>x = (cond) ? y : x</code>. + (Issue <a href="http://b.android.com/77569">77569</a>)</li> + <li>Fixed GCC4.9/aarch64 and Clang3.5/aarch64 to work around the + <a href="http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20141006/116322.html"> + Cortex-A53 erratum (835769)</a> by default. Disable the workaround by specifying + <code>-mno-fix-cortex-a53-835769</code>.</li> + </ul> + </dd> + + + <dt>Other bug fixes:</dt> + <dd> + <ul> + <li>Made the following header and library fixes to <code>android-21</code>: + <ul> + + <li>Added more TV keycodes: <code>android/keycodes.h</code></li> + <li>Added more constants and six new sensor functions to <code>android/sensor.h</code>: + <code>ASensorManager_getDefaultSensorEx</code>, <code>ASensor_getFifoMaxEventCount</code>, + <code>ASensor_getFifoReservedEventCount</code>, <code>ASensor_getStringType</code>, + <code>ASensor_getReportingMode</code>, and <code>ASensor_isWakeUpSensor</code>.</li> + <li>Fixed <code>stdatomic.h</code> to improve compatibility with GCC 4.6, and provide support + for the <code><atomic></code> header.</li> + <li>Added <code>sys/ucontext.h</code> and <code>sys/user.h</code> to all API levels. The + <code>signal.h</code> header now includes <code><sys/ucontext.h></code>. You may + remove any existing definition of <code>struct ucontext</code>.</li> + <li>Added <code>posix_memalign</code> to API levels 17, 18, and 19.</li> + <li>Added the following functions to all architectures: + <code>android_set_abort_message</code>, <code>posix_fadvise</code>, + <code>posix_fadvise64</code>, <code>pthread_gettid_np</code>.</li> + <li>Added the required permissions to the <code>native-media/AndroidManifest.xml</code> + sample. + (Issue <a href="https://android-review.googlesource.com/#/c/106640/">106640</a>)</li> + <li>Added <code>clock_nanosleep</code> and <code>clock_settime</code> to API level 21. (Issue + <a href="http://b.android.com/77372">77372</a>) + <li>Removed the following symbols from all architectures: + <code>get_malloc_leak_info</code>, <code>free_malloc_leak_info</code>, + <code>__srget</code>, <code>__swbuf</code>, <code>__srefill</code>, <code>__swsetup</code>, + <code>__sdidinit</code>, <code>__sflags</code>, <code>__sfp</code>, + <code>__sinit</code>, <code>__smakebuf</code>, <code>__sflush</code>, <code>__sread</code>, + <code>__swrite</code>, <code>__sseek</code>, <code>__sclose</code>, + <code>_fwalk</code>, <code>__sglue</code>, <code>__get_thread</code>, <code>__wait4</code>, + <code>__futex_wake</code>, <code>__open</code>, <code>__get_tls</code>, + <code>__getdents64</code>, and <code>dlmalloc</code>.</li> + <li>Removed the following functions from the 64-bit architectures: <code>basename_r</code>, + <code>dirname_r</code>, <code>__isthreaded</code>, <code>_flush_cache</code> (mips64).</li> + <li>Removed the following function from the 32-bit architectures: + <code>__signalfd4</code>.</li> + <li>Changed the type of the third argument from <code>size_t</code> to <code>int</code> in + the following functions: <code>strtoll_l</code>, <code>strtoull_l</code>, + <code>wcstoll_l</code>, and <code>wcstoull_l</code>.</li> + <li>Restored the following functions to the 64-bit architecture: <code>arc4random</code>, + <code>arc4random_buf</code>, and <code>arc4random_uniform</code>.</li> + <li>Moved <code>cxa_*</code> and the <code>new</code> and <code>delete</code> operators back + to <code>libstdc++.so</code>. This change restores r9d behavior; previous versions of r10 + contained dummy files.</li> + + </ul> + <li>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.</li> + <li>Fixed <code>--toolchain=</code> in <code>make-standalone-toolchain.sh</code> so that it + now properly supports use of a suffix specifying a version of Clang.</li> + <li>Fixed the libc++/armeabi <code>strtod()</code> functions.</li> + <li>Made fixes to NDK documentation in <code>docs/</code>.</li> + </ul> + </dd> + + <dt>Other changes:</dt> + <dd> + <ul> + <li>Enhanced <code>cpu-features</code> to detect ARMv8 support for the following + instruction sets: AES, CRC32, SHA2, SHA1, and 64-bit PMULL/PMULL2. (Issue + <a href="https://android-review.googlesource.com/#/c/106360/">106360</a>)</li> + + <li>Modified ndk-build to use <code>*-gcc-ar</code>, which is available in GCC 4.8, GCC 4.9, and + Clang. Clang specifies it, instead of <code>*-ar</code>. This setting brings improved LTO + support.</li> + + <li>Removed the <code>include-fixed/linux/a.out.h</code> and + <code>include-fixed/linux/compiler.h</code> headers from the GCC compiler. + (Issue <a href ="http://b.android.com/73728">73728</a>)</li> + + <li>Fixed an issue related to <code>-flto</code> with GCC 4.8 on Mac OS X. The error message + read:</li> + + <pre> +.../ld: error: .../libexec/gcc/arm-linux-androideabi/4.9/liblto_plugin.so +Symbol not found: _environ +</pre> + + <li>Fixed a typo in <code>build-binary.mk.</code> (Issue + <a href="http://b.android.com/76992">76992</a>)</li> + </ul> + </dd> + + <dt>Important known issues:</dt> + <dd> + <ul> + <li>Specifying -Os (<code>-fauto-profile</code>) in GCC4.9 may cause crashing. + (Issue <a href="http://b.android.com/77571">77571</a>)</li> + </ul> + </dd> + + </dl> + </div> +</div> + + + + + +<div class="toggle-content closed"> + <p> + <a href="#" onclick="return toggleContent(this)"> <img + src="/assets/images/triangle-closed.png" class="toggle-content-img" alt="" >Android NDK, Revision 10b</a> <em>(September 2014)</em> </p> <div class="toggle-content-toggleme"> @@ -484,20 +640,10 @@ $('#Downloads').after($('#download-table')); </dd> </ul> - - </dl> </div> </div> - - - - - - - - <div class="toggle-content closed"> <p> <a href="#" onclick="return toggleContent(this)"> <img @@ -3555,18 +3701,38 @@ tools. Software Requirements</a> for the NDK, if you haven't already.</p> - <p>To install the NDK, follow these steps:</p> - - <ol> - <li>From the table at the top of this page, select the NDK package that is appropriate for your - development computer and download the package.</li> - - <li>Uncompress the NDK download package using tools available on your computer. When - uncompressed, the NDK files are contained in a directory called + <p>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:</p> + <ul> + <li>On Linux and Mac OS X (Darwin): + <ul> + <ol> + <li>Download the appropriate package from this page.</li> + <li>Open a terminal window.</li> + <li>Go to the directory to which you downloaded the package.</li> + <li>Run <code>chmod a+x</code> on the downloaded package.</li> + <li>Execute the package. For example:</li> + <pre> +ndk$ chmod a+x android-ndk-r10c-darwin-x86_64.bin +ndk$ ./android-ndk-r10c-darwin-x86_64.bin + </pre> + <p>The folder containing the NDK extracts itself.</p> + <p>Note that you can also use a program like 7z to extract the package.</p> + </ol> + </ul> + <li>On Windows:</li> + <ul> + <ol> + <li>Download the appropriate package from this page.</li> + <li>Navigate to the folder to which you downloaded the package.</li> + <li>Double-click the downloaded file. The folder containing the NDK extracts itself.</li> + </ol> + </ul> + </ul>When uncompressed, the NDK files are contained in a directory called <code>android-ndk-<version></code>. 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 - <code><ndk></code>.</li> - </ol> + <code><ndk></code>. + <p>You are now ready to start working with the NDK.</p> @@ -3689,7 +3855,7 @@ also build for <h3 id="Tools">Development tools</h3> - <p>The NDK includes a set of cross-toolchains (compilers, linkers, etc..) that can generate + <p>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.</p> <p>It provides a set of system headers for stable native APIs that are guaranteed to be supported |