aboutsummaryrefslogtreecommitdiff
path: root/docs
AgeCommit message (Collapse)Author
2020-04-28Make a note about notarization for macOS.Dan Albert
Test: used clang from the app bundle on macOS Catalina Bug: https://github.com/android/ndk/issues/1060 Change-Id: I995e69cb0a5825f1d79a39baf19bed269749be08
2020-04-22Note the libc++ update in the changelog.Dan Albert
Test: None Bug: None Change-Id: Ib23dee97aaf9cfce7b6b7d05f73ff5fc62ac19ea
2020-04-13Add test and changelog note for #1200.Dan Albert
The fix itself is in libc++abi. Test: This is the test Bug: https://github.com/android/ndk/issues/1200 Change-Id: If1c75e80b051e2a2e9316745e671a4e81ada6fbf
2020-04-08Mention the make 4.3 upgrade in the changelog.Elliott Hughes
Test: N/A Change-Id: Ic16114a9181340f33d8ac3b65c2d34a8c5313ed8
2020-03-31Merge "Tone down the legacy toolchain removal note."Treehugger Robot
2020-03-30Tone down the legacy toolchain removal note.Dan Albert
Removing *all* of these hinges on us being able to remove binutils because a final part of the cleanup will be removing the target-specific bin directories within the LLVM toolchain, which can affect driver behavior. Since we don't know if we'll be able to get that done for next year's LTS, don't be so explicit about the timeline. We can be more specific when we know more. Test: None, doc only Bug: None Change-Id: I0ddbd948c1c45b894d417b0ef3d1bfded0eccc7a
2020-03-30Mention the binutils fix in the changelog.Dan Albert
Test: None, doc only Bug: https://github.com/android/ndk/issues/1176 Change-Id: I13a77f24e2c755126595d5d4da15d7e2211e12e7
2020-03-30Update LLVM to r365631c1.Dan Albert
This is the r21 toolchain with the cherry-picks for r21b. The following Gerrit query shows the patches it contains: https://android-review.googlesource.com/q/branch:llvm-r365631+status:merged+before:2020-03-30 Test: treehugger Bug: https://github.com/android/ndk/issues/1178 Bug: https://github.com/android/ndk/issues/1184 Bug: https://github.com/android/ndk/issues/1198 Bug: https://github.com/android/ndk/issues/1205 Bug: https://github.com/android/ndk/issues/1206 Change-Id: I223b98e96c32e0c754d9c27486d4f0ccfad32851
2020-03-26Revert "Default to lld again."Dan Albert
This reverts commit fed0a4058d786dcc73ee4d625388f9f416b719cc. Reason for revert: Broke Darwin again Change-Id: I0e432102934a3fb2ab659924b461a23a0eb64c44
2020-03-24Default to lld again.Dan Albert
Rather than trying to replace `ld` in each location, this instead relies on Clang defaulting to `ld.lld`, which it invokes from the Clang bin directory. Test: treehugger Bug: None Change-Id: I32b0655c0d89522848f044f1067b53f9214c5444
2020-03-18Revert "Switch to LLD as the default linker."Dan Albert
This reverts commit 393761d2e07461366ea456cea7f67fade95e3b4b. This broke Darwin. It seems that LLD assumes the target based on the name of the executable, so it can't be reliably used from the target-specific directory as I tried to do here. Trying to use this with Darwin results in the following: ``` ld: warning: ignoring unknown argument: -z ld: warning: ignoring unknown argument: --warn-shared-textrel ld: warning: ignoring unknown argument: -z ld: warning: ignoring unknown argument: -z ld: warning: ignoring unknown argument: --hash-style=both ld: warning: ignoring unknown argument: --enable-new-dtags ld: warning: ignoring unknown argument: --eh-frame-hdr ld: warning: ignoring unknown argument: -m ld: warning: ignoring unknown argument: -dynamic-linker ld: warning: ignoring unknown argument: -plugin ld: warning: ignoring unknown argument: -plugin-opt=mcpu=x86-64 ld: warning: ignoring unknown argument: --gc-sections ld: warning: ignoring unknown argument: -rpath-link=/Volumes/Android/danalbert/ndk/out/darwin/android-ndk-r22-canary/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/x86_64-linux-android/21 ld: warning: ignoring unknown argument: -rpath-link=./obj/local/x86_64 ld: warning: ignoring unknown argument: --exclude-libs ld: warning: ignoring unknown argument: --exclude-libs ld: warning: ignoring unknown argument: --exclude-libs ld: warning: ignoring unknown argument: --build-id ld: warning: ignoring unknown argument: --no-undefined ld: warning: ignoring unknown argument: --fatal-warnings ld: error: -arch not specified and could not be inferred clang++: error: linker command failed with exit code 1 (use -v to see invocation) ``` It's trivially fixed with `-fuse-ld=lld`, which causes Clang to pick LLD from a different directory and passes the target explicitly. We could do that in ndk-build and in the CMake toolchain to change the default for those systems, but we really need to upstream a patch to change the default in the Clang driver to affect other build systems. Bug: None Test: treehugger
2020-03-18Switch to LLD as the default linker.Dan Albert
Test: treehugger, some manual inspection of linker flags for sanity Bug: None Change-Id: Ib8b371cc932b46fddb623165c17d77757be9de2d
2020-03-17Remove platforms and sysroot directories.Dan Albert
These were deprecated in r19. Removing these saves 600MB in the installed NDK. Test: treehugger Bug: None Change-Id: I6c127ade030b9c580e57b3a4695831fab14cfb78
2020-03-10Do not strip gdb binaryHaibo Huang
Bug: https://github.com/android/ndk/issues/1173 Change-Id: I1748371baf4aea5952436864b9d217e668d856d4
2020-03-09Build device prebuilts without Neon.Dan Albert
Test: readelf -A Bug: https://github.com/android/ndk/issues/1203 Change-Id: If7081925d7923a3f6085ee2e060b26696e756e71
2020-03-06Fix API 30+ in ndk-build for LP64 ABIs.Dan Albert
Test: Targeted API 30, saw compiler get API 30. Targeted API 16, saw compiler get API 16 for LP32 and 21 for LP64. Once API 30 sysroot is submitted I can also add a test that builds against API 30. Bug: https://github.com/android/ndk/issues/1201 Change-Id: I0183d5e803234b25993944df0de9c8c88e7e2004
2020-03-06Hide unwinder symbols on all architectures.Dan Albert
Test: readelf Bug: https://github.com/android/ndk/issues/1166 Change-Id: I28b64492e5a66a66608874133ddd955ea2f53d7f
2020-03-06Document the gdb-8.3 fix.Elliott Hughes
Bug: http://b/144102122 Test: N/A Change-Id: I2d990f0863f1ea2c9a4743619cd7aefe49c4157e
2020-02-26Revert "Bump Mac from 10.9 to 10.10 to match Studio."Dan Albert
This reverts commit 4ef2278397cfdbeadcc3714ddd5ef2ed917461cd. Reason for revert: broke GCC build Change-Id: I407129bc9131f82e1c50b2aaa655b788d7bfa416
2020-02-14Bump Mac from 10.9 to 10.10 to match Studio.Dan Albert
Test: treehugger Bug: None Change-Id: I4e61f79974179baa2776bd90fd9a2ca33b1e7634
2020-02-11Update Mac OS X deployment target to 10.9.Dan Albert
Binaries built against 10.8 cannot be notarized, and thus cannot be run on Catalina. Test: None, need the build server to produce the artifacts first Bug: http://b/143105198 Bug: https://github.com/android/ndk/issues/1060 Change-Id: I205f83d61d5b5785491de233346c9ebf4fcfba42
2020-02-10Update the roadmap.Dan Albert
Test: None Bug: None Change-Id: I00e2ef9631ebecea998c762b4e8fdc68f5a19f7c
2020-01-13Merge "Warn that the legacy toolchains are being removed."Treehugger Robot
2020-01-13Warn that the legacy toolchains are being removed.Dan Albert
Test: None Bug: None Change-Id: Id9c15e7e9b52a0fe313d83eb27a70deea3e34c48
2019-12-18native_app_glue: hook up missing messages.Elliott Hughes
Also reduce duplication very slightly. Bug: https://github.com/android/ndk/issues/1139 Test: builds Test: https://github.com/android/ndk-samples/tree/master/native-activity Change-Id: I6658af95828f0532232616d621a4883d538c4c76
2019-12-05Merge "Remove obsolete note in the build system guide."Treehugger Robot
2019-12-05Remove obsolete note in the build system guide.Dan Albert
The bug referenced here was fixed in r21. Test: None Bug: https://github.com/android/ndk/issues/1083 Change-Id: Ifef3f3aeacfdd7bf91dbd01556e6563a36eb4053
2019-12-05Revert "Revert "Switch to llvm-strip, advocate its use.""Dan Albert
This reverts commit 9f292c26c475f9983394b923cef5a7618041b8ff. Test: ./checkbuild.py && ./run_tests.py Bug: https://github.com/android/ndk/issues/843 Change-Id: Iefb6108bc61ed24cd911860b1f75b266574ddd2d
2019-11-15Mention the behavioral change in `abspath`.Dan Albert
Test: None Bug: None Change-Id: I79fa0a45305245a58c76bdb5e6bf39630ec75f14
2019-11-14Clarify new ndk-build version check ability.Dan Albert
Reword in case anyone was scared off by the first sentence in the note. Test: None Bug: None Change-Id: I3569cb21c60081ef15380f32e5d2c3aaaa985a5c
2019-11-08Synchronize CMake and ndk-build build-id types.Dan Albert
For LLD these are equivalent, but we ought to be consistent either way. Test: treehugger Bug: None Change-Id: Iecfb7b2d533d9a6fc1254cb726fc3b755827447b
2019-11-08Only use explicit --build-id=tree for lld.Dan Albert
Using sha1 instead of tree turned out to have a larger build impact than the benchmarking suggested (10% regression in dolphin build time). For ndk-build, scan all the linker flags for -fuse-ld and check APP_LD to determine if lld is being used, and if it is then fallback to tree. Otherwise, use the linker default. For CMake we don't know the user's chosen ldflags, so the best we can do is work off of ANDROID_LD. If the user doesn't use ANDROID_LD and instead uses -fuse-ld=lld explicitly, they won't be able to debug. Test: inspected verbose build output for the following configurations: * No flags * APP_LD=lld * APP_LD=gold * APP_LD=lld APP_LDFLAGS=-fuse-ld=gold * APP_LD=gold APP_LDFLAGS=-fuse-ld=lld * For the first three variants, checked CMake with ANDROID_LD. Bug: http://b/143411084 Bug: https://github.com/android/ndk/issues/885 Change-Id: I62a7b6a296a61bc543c38d406bfb9f15ddb1c7fa
2019-10-04Merge "Fix unwinder visibility for most ABIs."Treehugger Robot
2019-10-04Fix unwinder visibility for most ABIs.Dan Albert
When we switched to using a linker script for libgcc in r19 we broke `-Wl,--exclude-libs,libgcc.a`, because `--exclude-libs` has no effect on the contents of linker scripts. As such, libgcc was not being hidden as expected. The good news is that on the one platform this causes the most trouble (Arm32, since it uses the LLVM unwinder for exception handling rather than libgcc) this didn't cause any issues. Since libunwind was linked first (and the `--exclude-libs` worked there, since the actual library was named), the libgcc unwind symbols did not end up in the output at all. So while this has not caused any issues, it is still a good idea for us to link libgcc hidden to guard against any future unwind ABI breaks. Test: Added a test that checks ndk-build output with readelf Bug: https://github.com/android/ndk/issues/1092 Change-Id: I5c8203afd29f0b7b272a51aadfc1a5ca6cbd33e4
2019-10-04Merge "Add ndk-major-at-least API to ndk-build."Treehugger Robot
2019-10-03Add ndk-major-at-least API to ndk-build.Dan Albert
Gives apps a standard way to check if their NDK is at least a certain version from ndk-build. CMake has had this for quite some time. Test: manual Bug: None Change-Id: I02bb2a141ede2270c71f0044e6c432097ebda4e0
2019-10-03r21 has branched, so master is now r22 canary.Dan Albert
Test: ./checkbuild.py Bug: None Change-Id: I695235f70d3c7ddd709b95627b5eea907ed505f0
2019-09-27Merge "Add advice for Java middleware vendors with JNI."Treehugger Robot
2019-09-27Add advice for Java middleware vendors with JNI.Dan Albert
Also warn them about the current behavior of the gradle plugin: https://issuetracker.google.com/14175824 Test: None Bug: None Change-Id: Ib040a4e26b15c1279cc97e91d272eac0b054a04f
2019-09-25Allow externally specified import paths.Dan Albert
Gradle needs to be able to specify a dependency import path for Prefab modules. Add NDK_GRADLE_INJECTED_IMPORT_PATH to support this. This could instead be a more generic NDK_ADDITIONAL_IMPORT_PATHS, but that's probably of limited use since Gradle will clobber the user's flags with its own. Test: ./run_tests.py --rebuild Bug: https://github.com/android-ndk/ndk/issues/916 Change-Id: I18f9ff2830846d9ea63130d6949c9d199b72db60
2019-09-24Update continuous builds doc.Dan Albert
Test: None Bug: None Change-Id: I92f2194c4834f25b172e871098531f313554ab65
2019-09-23Revert "Switch to llvm-strip, advocate its use."Dan Albert
This reverts commit e043c269d3c0090954f2f405bfe9f6bffcdf6b9a. Test: ./checkbuild.py && ./run_tests.py Bug: https://github.com/android/ndk/issues/1083 Change-Id: Ida9b868112d4ef2ca00f6e9aa9e12c6845021289
2019-09-20Revert "Revert "Revert "Switch to llvm-ar."""Dan Albert
This reverts commit 762957c4e2aab2cf5b2bec4c4d820dd9dd0225cd. Reason for revert: Broke darwin again Change-Id: Ie610753004c09d0fc2b908708574f95c21ae57a9
2019-09-19Update the roadmap.Dan Albert
Test: None Bug: None Change-Id: If6f93d7382e5c636e58458964781b1ba4422a959
2019-09-18Enable fortify by default.Dan Albert
Test: ./checkbuild.py && ./run_tests.py Bug: https://github.com/android/ndk/issues/976 Change-Id: Ic14955978abb0045a6bdac3e8a91ed5d12693057
2019-09-18Revert "Revert "Switch to llvm-ar.""Dan Albert
This reverts commit 0bb683e8c79290d0b0f5e46ca4c3a13baf582389. Reason for revert: Bug this was triggering should be fixed. Change-Id: Ib621efa8566215a4dff469ab2dbab1ec3d886300
2019-09-17Remove useless cxx-stl/system module.Dan Albert
This used to be used to export the system's basic C++ headers to projects, but that's now handled directly by the toolchain. Anyone that was explicitly linking this module will get the usual "you're linking something that doesn't exist, are you sure you meant to?" message. Anyone explicitly importing this directory will receive a less clear error message of "could not find cxx-stl/system". Both of these error cases are extremely unlikely since this has never been something user's have needed to do. Test: ./checkbuild.py && ./run_test.py Bug: https://github.com/android/ndk/issues/1081 Change-Id: I5350c05237f1851733d9a45eb1b5fd8445626fdb
2019-09-17Correct default standard version ndk-build libc++.Dan Albert
Clang has defaulted to C++14 since the version we shipped in r19. We fixed the CMake toolchain to use the default, but neglected to do so for ndk-build. Fix that. Test: ./checkbuild.py && ./run_tests.py Bug: None Change-Id: I01c04426d6333f6c5ff2024684581b260e0558da
2019-09-16Update to clang-r365631b.Dan Albert
Includes the fix for 32-bit x86 with gold, and also the `-static-openmp` driver option. Test: ./checkbuild.py && ./run_tests.py Bug: https://github.com/android/ndk/issues/1028 Bug: https://github.com/android/ndk/issues/1076 Change-Id: Ide30be0e318d861bf8491cae03e3374e1893d2bb
2019-09-16Revert "Switch to llvm-ar."Dan Albert
This reverts commit 956d55335e056e3e9597c858e80923e2e5871f88. Reason for revert: Broke the mac build. Change-Id: I27af9d69eb1b0f9744cf4f038f5adbc4f779e2b3