Age | Commit message (Collapse) | Author |
|
Test: used clang from the app bundle on macOS Catalina
Bug: https://github.com/android/ndk/issues/1060
Change-Id: I995e69cb0a5825f1d79a39baf19bed269749be08
|
|
Test: None
Bug: None
Change-Id: Ib23dee97aaf9cfce7b6b7d05f73ff5fc62ac19ea
|
|
The fix itself is in libc++abi.
Test: This is the test
Bug: https://github.com/android/ndk/issues/1200
Change-Id: If1c75e80b051e2a2e9316745e671a4e81ada6fbf
|
|
Test: N/A
Change-Id: Ic16114a9181340f33d8ac3b65c2d34a8c5313ed8
|
|
|
|
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
|
|
Test: None, doc only
Bug: https://github.com/android/ndk/issues/1176
Change-Id: I13a77f24e2c755126595d5d4da15d7e2211e12e7
|
|
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
|
|
This reverts commit fed0a4058d786dcc73ee4d625388f9f416b719cc.
Reason for revert: Broke Darwin again
Change-Id: I0e432102934a3fb2ab659924b461a23a0eb64c44
|
|
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
|
|
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
|
|
Test: treehugger, some manual inspection of linker flags for sanity
Bug: None
Change-Id: Ib8b371cc932b46fddb623165c17d77757be9de2d
|
|
These were deprecated in r19. Removing these saves 600MB in the
installed NDK.
Test: treehugger
Bug: None
Change-Id: I6c127ade030b9c580e57b3a4695831fab14cfb78
|
|
Bug: https://github.com/android/ndk/issues/1173
Change-Id: I1748371baf4aea5952436864b9d217e668d856d4
|
|
Test: readelf -A
Bug: https://github.com/android/ndk/issues/1203
Change-Id: If7081925d7923a3f6085ee2e060b26696e756e71
|
|
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
|
|
Test: readelf
Bug: https://github.com/android/ndk/issues/1166
Change-Id: I28b64492e5a66a66608874133ddd955ea2f53d7f
|
|
Bug: http://b/144102122
Test: N/A
Change-Id: I2d990f0863f1ea2c9a4743619cd7aefe49c4157e
|
|
This reverts commit 4ef2278397cfdbeadcc3714ddd5ef2ed917461cd.
Reason for revert: broke GCC build
Change-Id: I407129bc9131f82e1c50b2aaa655b788d7bfa416
|
|
Test: treehugger
Bug: None
Change-Id: I4e61f79974179baa2776bd90fd9a2ca33b1e7634
|
|
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
|
|
Test: None
Bug: None
Change-Id: I00e2ef9631ebecea998c762b4e8fdc68f5a19f7c
|
|
|
|
Test: None
Bug: None
Change-Id: Id9c15e7e9b52a0fe313d83eb27a70deea3e34c48
|
|
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
|
|
|
|
The bug referenced here was fixed in r21.
Test: None
Bug: https://github.com/android/ndk/issues/1083
Change-Id: Ifef3f3aeacfdd7bf91dbd01556e6563a36eb4053
|
|
This reverts commit 9f292c26c475f9983394b923cef5a7618041b8ff.
Test: ./checkbuild.py && ./run_tests.py
Bug: https://github.com/android/ndk/issues/843
Change-Id: Iefb6108bc61ed24cd911860b1f75b266574ddd2d
|
|
Test: None
Bug: None
Change-Id: I79fa0a45305245a58c76bdb5e6bf39630ec75f14
|
|
Reword in case anyone was scared off by the first sentence in the
note.
Test: None
Bug: None
Change-Id: I3569cb21c60081ef15380f32e5d2c3aaaa985a5c
|
|
For LLD these are equivalent, but we ought to be consistent either
way.
Test: treehugger
Bug: None
Change-Id: Iecfb7b2d533d9a6fc1254cb726fc3b755827447b
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
Test: ./checkbuild.py
Bug: None
Change-Id: I695235f70d3c7ddd709b95627b5eea907ed505f0
|
|
|
|
Also warn them about the current behavior of the gradle plugin:
https://issuetracker.google.com/14175824
Test: None
Bug: None
Change-Id: Ib040a4e26b15c1279cc97e91d272eac0b054a04f
|
|
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
|
|
Test: None
Bug: None
Change-Id: I92f2194c4834f25b172e871098531f313554ab65
|
|
This reverts commit e043c269d3c0090954f2f405bfe9f6bffcdf6b9a.
Test: ./checkbuild.py && ./run_tests.py
Bug: https://github.com/android/ndk/issues/1083
Change-Id: Ida9b868112d4ef2ca00f6e9aa9e12c6845021289
|
|
This reverts commit 762957c4e2aab2cf5b2bec4c4d820dd9dd0225cd.
Reason for revert: Broke darwin again
Change-Id: Ie610753004c09d0fc2b908708574f95c21ae57a9
|
|
Test: None
Bug: None
Change-Id: If6f93d7382e5c636e58458964781b1ba4422a959
|
|
Test: ./checkbuild.py && ./run_tests.py
Bug: https://github.com/android/ndk/issues/976
Change-Id: Ic14955978abb0045a6bdac3e8a91ed5d12693057
|
|
This reverts commit 0bb683e8c79290d0b0f5e46ca4c3a13baf582389.
Reason for revert: Bug this was triggering should be fixed.
Change-Id: Ib621efa8566215a4dff469ab2dbab1ec3d886300
|
|
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
|
|
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
|
|
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
|
|
This reverts commit 956d55335e056e3e9597c858e80923e2e5871f88.
Reason for revert: Broke the mac build.
Change-Id: I27af9d69eb1b0f9744cf4f038f5adbc4f779e2b3
|