Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0aa3df58 authored by Scott Main's avatar Scott Main Committed by Android Git Automerger
Browse files

am c3261bd8: am 76f7774d: am f6e55123: Merge "docs: NDK r8d Release Notes" into jb-mr1-dev

* commit 'c3261bd8':
  docs: NDK r8d Release Notes
parents 38dd88ef c3261bd8
Loading
Loading
Loading
Loading
+173 −10
Original line number Diff line number Diff line
ndk=true

ndk.win_download=android-ndk-r8c-windows.zip
ndk.win_bytes=233787657
ndk.win_checksum=3ff1570fa4ea865b7702507ea43dbae4
ndk.win_download=android-ndk-r8d-windows.zip
ndk.win_bytes=327014028
ndk.win_checksum=d78ec3d4ec15ad3b18b9f488a5763c23

ndk.mac_download=android-ndk-r8c-darwin-x86.tar.bz2
ndk.mac_bytes=214270840
ndk.mac_checksum=74a23e9e058512121835e0d6932e72d5
ndk.mac_download=android-ndk-r8d-darwin-x86.tar.bz2
ndk.mac_bytes=308328942
ndk.mac_checksum=5cd9ef9fb7e03943ee8c9e147e42e571

ndk.linux_download=android-ndk-r8c-linux-x86.tar.bz2
ndk.linux_bytes=179945337
ndk.linux_checksum=b0851346ff90c9266bc050016a228319
ndk.linux_download=android-ndk-r8d-linux-x86.tar.bz2
ndk.linux_bytes=254644383
ndk.linux_checksum=e1fa0379a3feb59f2f0865f1a90bd382

page.title=Android NDK

@jd:body


@@ -250,6 +249,170 @@ the NDK, as denoted by revision number. </p>
<div class="toggle-content opened">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
      alt="">Android NDK, Revision 8d</a> <em>(December 2012)</em>
  </p>

  <div class="toggle-content-toggleme">
    <dl>
      <dt>Important changes:</dt>
      <dd>
        <ul>
          <li>Added the GNU Compiler Collection (GCC) 4.7 compiler to the NDK. The GCC 4.6 compiler
            is still the default, so you must to explicitly enable the new version as follows:
            <ul>
              <li>For {@code ndk-build}, export the {@code NDK_TOOLCHAIN_VERSION=4.7} variable
                <em>or</em> add it to {@code Application.mk}.</li>
              <li>For standalone builds, add the {@code --toolchain=} option to
                {@code make-standalone-toolchain.sh}, for example:
                <pre>--toolchain=arm-linux-androideabi-4.7</pre></li>
            </ul>
            <p class="note">
              <strong>Note:</strong> This feature is experimental. Please try it and
              <a href="http://code.google.com/p/android/issues/list">report any issues</a>.</p>
          </li>
          <li>Added {@code stlport} exception support via gabi++.  Note that the new gabi++
            depends on {@code dlopen} and related code, meaning that:
            <ul>
              <li>You can no longer build a <em>static</em> executable using the {@code -static}
                option or include {@code libstlport_static.a} using
                {@code APP_STL := stlport_static}. (You can still use the {@code -static} option
                with a standalone toolchain.) Compiling a <em>dynamic</em> executable using
                {@code include $(BUILD_EXECUTABLE)} continues to work because the compiler
                automatically adds the {@code -ldl} option.</li>
              <li>If your project links using {@code -nostdlib} and {-Wl,--no-undefined}, you
                must manually include the {@code -ldl} option.</li>
            </ul>
              For more information, see {@code CPLUSPLUS-SUPPORT.html}.

              <p class="note">
                <strong>Note:</strong> This feature is experimental and works better with the GCC
                4.6/4.7 compilers than with GCC 4.4.3 or Clang 3.1. Please try it and
                <a href="http://code.google.com/p/android/issues/list">report any issues</a>.</p>
          </li>
          <li>Added a {@code -mstack-protector-guard=} option for x86 to choose between a
            <em>global</em> default path which is compatible with older Android C library (bionic)
            and a new <em>tls</em> path (%gs:20) for {@code -fstack-protector},
            {@code -fstack-protector-all} and {@code -fstack-protector-strong} using the GCC 4.6
            and higher compilers.

            <p class="note">
              <strong>Note:</strong> The {@code -mstack-protector-guard} setting itself does not
              enable any {@code -fstack-protector*} options.</p>
          </li>
          <li>Added {@code android_setCpu()} function to
            {@code sources/android/cpufeatures/cpu-features.c} for use when auto-detection via
            {@code /proc} is not possible in Android 4.1 and higher.
            (<a href="http://code.google.com/p/chromium/issues/detail?id=164154">Chromium Issue
            164154</a>)</li>
        </ul>
      </dd>

      <dt>Important bug fixes:</dt>
      <dd>
        <ul>
          <li>Fixed unnecessary rebuild of object files when using the {@code ndk-build} script.
            (<a href="http://code.google.com/p/android/issues/detail?id=39810">Issue 39810</a>)</li>
          <li>Fixed a linker failure with the NDK 8c release for Mac OS X 10.6.x that produced the
            following error:
            <pre>
dyld: lazy symbol binding failed: Symbol not found: _memmem
Referenced from: ...../arm-linux-androideabi/bin/ld
Expected in: /usr/lib/libSystem.B.dylib</pre>
            This problem was caused by building on Mac OS X 10.7, which produced binaries that were
            not compatible with Mac OS 10.6.x and the NDK.
          </li>
          <li>Removed the {@code -x c++} options from the Clang++ standalone build script.
          (<a href="http://code.google.com/p/android/issues/detail?id=39089">Issue 39089</a>)</li>
          <li>Fixed issues using the {@code NDK_TOOLCHAIN_VERSION=clang3.1} option in Cygwin.
           (<a href="http://code.google.com/p/android/issues/detail?id=39585">Issue 39585</a>)</li>
          <li>Fixed the {@code make-standalone-toolchain.sh} script to allow generation of a
            standalone toolchain using the Cygwin or MinGW environments. The resulting toolchain
            can be used in Cygwin, MingGW or CMD.exe environments.
            (<a href="http://code.google.com/p/android/issues/detail?id=39915">Issue 39915</a>,
            <a href="http://code.google.com/p/android/issues/detail?id=39585">Issue 39585</a>)</li>
          <li>Added missing {@code SL_IID_ANDROIDBUFFERQUEUESOURCE} option in android-14 builds for
            ARM and X86.
            (<a href="http://code.google.com/p/android/issues/detail?id=40625">Issue 40625</a>)</li>
          <li>Fixed x86 CPU detection for the {@code ANDROID_CPU_X86_FEATURE_MOVBE} feature.
            (<a href="http://code.google.com/p/android/issues/detail?id=39317">Issue 39317</a>)</li>
          <li>Fixed an issue preventing the Standard Template Library (STL) from using C++
            sources that do not have a {@code .cpp} file extension.</li>
          <li>Fixed GCC 4.6 ARM internal compiler error <em>at reload1.c:1061</em>.
            (<a href="http://code.google.com/p/android/issues/detail?id=20862">Issue 20862</a>)</li>
          <li>Fixed GCC 4.4.3 ARM internal compiler error <em>at emit-rtl.c:1954</em>.
            (<a href="http://code.google.com/p/android/issues/detail?id=22336">Issue 22336</a>)</li>
          <li>Fixed GCC 4.4.3 ARM internal compiler error <em>at postreload.c:396</em>.
            (<a href="http://code.google.com/p/android/issues/detail?id=22345">Issue 22345</a>)</li>
          <li>Fixed problem with GCC 4.6/4.7 skipping lambda functions.
            (<a href="http://code.google.com/p/android/issues/detail?id=35933">Issue 35933</a>)</li>
        </ul>
      </dd>

      <dt>Other bug fixes:</dt>
      <dd>
        <ul>
          <li>NDK header file fixes:
            <ul>
              <li>Fixed {@code __WINT_TYPE__} and {@code wint_t} to be the same type.</li>
              <li>Corrected typo in {@code android/bitmap.h}.
                (<a href="http://code.google.com/p/android/issues/detail?id=15134">Issue 15134</a>)
              </li>
              <li>Corrected typo in {@code errno.h}.</li>
              <li>Added check for the presence of {@code __STDC_VERSION__} in {@code sys/cdefs.h}.
                (<a href="http://code.google.com/p/android/issues/detail?id=14627">Issue 14627</a>)
              </li>
              <li>Reorganized headers in {@code byteswap.h} and {@code dirent.h}.</li>
              <li>Fixed {@code limits.h} to include {@code page.h} which provides {@code PAGE_SIZE}
                settings.
                (<a href="http://code.google.com/p/android/issues/detail?id=39983">Issue 39983</a>)
              </li>
              <li>Fixed return type of {@code glGetAttribLocation()} and
                {@code glGetUniformLocation()} from {@code int} to {@code GLint}.</li>
              <li>Fixed {@code __BYTE_ORDER} constant for x86 builds.
                (<a href="http://code.google.com/p/android/issues/detail?id=39824">Issue 39824</a>)
              </li>
            </ul>
          </li>
          <li>Fixed {@code ndk-build} script to not overwrite {@code -Os} with {@code -O2} for ARM
            builds.</li>
          <li>Fixed build scripts to allow overwriting of {@code HOST_AWK}, {@code HOST_SED}, and
            {@code HOST_MAKE} settings.</li>
          <li>Fixed issue for {@code ld.gold} on {@code fsck_msdos} builds linking objects built by
            the Intel C/C++ compiler (ICC).</li>
          <li>Fixed ARM EHABI support in Clang to conform to specifications.</li>
          <li>Fixed GNU Debugger (GDB) to shorten the time spent on walking the target's link map
            during {@code solib} events.
            (<a href="http://code.google.com/p/android/issues/detail?id=38402">Issue 38402</a>)</li>
          <li>Fixed missing {@code libgcc.a} file when linking shared libraries.</li>
        </ul>
      </dd>

      <dt>Other changes:</dt>
      <dd>
        <ul>
          <li>Backported 64-bit built-in atomic functions for ARM to GCC 4.6.</li>
          <li>Added documentation for audio output latency, along with other documentation and
            fixes.</li>
          <li>Fixed debug builds with Clang so that non-void functions now raise a {@code SIGILL}
            signal for paths without a return statement.</li>
          <li>Updated {@code make-standalone-toolchain.sh} to accept the suffix {@code -clang3.1}
            which is equivalent to adding {@code --llvm-version=3.1} to the GCC 4.6 toolchain.</li>
          <li>Updated GCC and Clang bug report URL to:
            <a href="http://source.android.com/source/report-bugs.html">http://source.android.com/source/report-bugs.html</a></li>
          <li>Added ARM ELF support to {@code llvm-objdump}.</li>
          <li>Suppressed <em>treating c input as c++</em> warning for Clang builds.</li>
          <li>Updated build so that only the 32-bit version of {@code libiberty.a} is built and
            placed in {@code lib32/}.</li>
        </ul>
      </dd>
    </dl>
  </div>
</div>


<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt="">Android NDK, Revision 8c</a> <em>(November 2012)</em>
  </p>