Skip to content
This repository has been archived by the owner on Mar 31, 2022. It is now read-only.

update NDK to r17b #126

Merged
merged 1 commit into from
Jun 13, 2018
Merged

update NDK to r17b #126

merged 1 commit into from
Jun 13, 2018

Conversation

koral--
Copy link
Contributor

@koral-- koral-- commented Jun 12, 2018

No description provided.

@trapacska
Copy link

Checked around but @ghaabor please have a strict look as well. For now it seems like that nothing serious has changed.

r17b


  • Updated Clang to build 4691093, based on r316199.
    • [Issue 313]: LTO now works on Windows.
    • [Issue 527]: [Undefined Behavior Sanitizer] now works for NDK binaries.
    • [Issue 593]: Clang now automatically passes --eh-frame-hdr to the
      linker even for static executables, fixing exception handling.
  • Updated gtest to upstream revision 0fe96607d85cf3a25ac40da369db62bbee2939a5.
  • libandroid_support is no longer used when your NDK API level is greater
    than or equal to 21 (Lollipop). Build system maintainers: be sure to update
    your build systems to account for this.
  • The platform static libraries (libc.a, libm.a, etc.) have been updated.
    • All NDK platforms now contain a modern version of these static libraries.
      Previously they were all Gingerbread (perhaps even older) or Lollipop.
    • Prior NDKs could not use the static libraries with a modern NDK API level
      because of symbol collisions between libc.a and libandroid_support. This
      has been solved by removing libandroid_support for modern API levels. A
      side effect of this is that you must now target at least android-21 to
      use the static libraries, but these binaries will still work on older
      devices.
  • Fixed parsing of the NDK revision in CMake. NDK version information is now
    available in the following CMake variables:
    • ANDROID_NDK_REVISION: The full string in the source.properties file.
    • ANDROID_NDK_MAJOR: The major revision of the NDK. For example: the 16
      in r16b.
    • ANDROID_NDK_MINOR: The minor revision of the NDK. For example: the b
      (represented as 1) in r16b.
    • ANDROID_NDK_BUILD: The build number of the NDK. This is 0 in the case
      of a local development build.
    • ANDROID_NDK_BETA: The beta version of the NDK. This is 0 for a stable
      release.
  • Added support for APP_WRAP_SH to ndk-build.
    • This variable points to a shell script (relative to your Android.mk) that
      will be installed as a [wrap.sh] file in your APK.
    • Available in both an ABI-generic form (APP_WRAP_SH), which will install
      a single script for every ABI, and an ABI-specific form
      (APP_WRAP_SH_arm64-v8a, etc) to allow for per-ABI customization of the
      wrap.sh script.
  • [Issue 540]: ndk-build now installs sanitizer runtime libraries to your out
    directory for inclusion in your APK. Coupled with [wrap.sh], this removes the
    requirement of rooting your device to use sanitizers.
  • When using ASAN, ndk-build will install a wrap.sh file to set up ASAN for
    your app if you have not specified your own wrap.sh. If you have specified
    your own wrap.sh, you can add ASAN support to it as described
    here.
  • [Issue 614]: ndk-build and CMake no longer pass -fno-integrated-as for
    arm32 by default. If your project contains hand written assembly, you may
    need to pass this flag.
  • ion.h is no longer a part of the NDK. This file defined an API that is not
    consistent across devices.
    [Undefined Behavior Sanitizer]: https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
    [wrap.sh]: https://developer.android.com/ndk/guides/wrap-script.html
    [Issue 313]: Windows, NDK r14: link time optimization does not work with Clang android/ndk#313
    [Issue 527]: ubsan support android/ndk#527
    [Issue 540]: copy ASAN library to app install directory android/ndk#540
    [Issue 593]: exception handling doesn't work with static executables android/ndk#593
    [Issue 614]: Problem cross compiling freetype with Clang (android-ndk-r16b) android/ndk#614
    Known Issues

  • This is not intended to be a comprehensive list of all outstanding bugs.
  • [Issue 360]: thread_local variables with non-trivial destructors will cause
    segfaults if the containing library is dlcloseed on devices running M or
    newer, or devices before M when using a static STL. The simple workaround is
    to not call dlclose.
  • [Issue 70838247]: Gold emits broken debug information for AArch64. AArch64
    still uses BFD by default.

Copy link
Contributor

@ghaabor ghaabor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍 thanks @koral-- !

@ghaabor ghaabor merged commit bde21b8 into bitrise-io:master Jun 13, 2018
@koral-- koral-- deleted the ndk-r17b branch June 13, 2018 15:30
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
3 participants