User Details
- User Since
- Aug 7 2017, 9:53 PM (330 w, 2 d)
Oct 19 2023
Moved to GitHub:
Moved to GitHub, https://github.com/llvm/llvm-project/pull/69273.
Abandoned in favor of GitHub PR, https://github.com/llvm/llvm-project/pull/69272.
Oct 10 2023
Cache the LIBCXX_ABI_VERSION variable in AndroidNDK.cmake.
I can switch this review to a GitHub PR if needed.
Use stdin=subprocess.DEVNULL for adb_run.py subprocesses, except for the main adb shell invocation where we want to forward stdin. This change was necessary to fix stdin forwarding on a Pixel 6 (oriole) device. (However, the API 33 emulator tests passed even without this change. Not sure why.)
Rebase.
Rebase. Remove _ZNSt3__16locale2id6__initEv.
Rebase.
Sep 15 2023
Sep 12 2023
Aug 31 2023
This change looks like an improvement to me. The NDK currently puts the libc++ headers into the sysroot, but putting it in the usual toolchain include location seems better.
Aug 28 2023
Aug 23 2023
further confirmation if android_get_device_api_level should work from ifunc_resolver
Aug 17 2023
The last rebase accounted for about a month's worth of changes in LLVM. Fix the Android tests that were broken by the rebase:
Rebase.
Aug 16 2023
Rebase.
Rebase.
Restore the buildkite-agent.cfg setting. I confirmed that the tags from this config file can be overridden using the BUILDKITE_AGENT_TAGS environment variable.
Aug 15 2023
Address review comments.
Add the Android team's current Clang build to the libcxx-builder Dockerfile.
Aug 14 2023
Disable flaky notify_one.pass.cpp test for Android, and remove the unnecessary adb socat workaround now that adb -a start-server works.
Mark some of the comments as Done.
Address some of the review comments.
Jul 23 2023
Jul 22 2023
Jul 19 2023
Jul 17 2023
Now that D155271 and D155341 are parent revisions of this revision, remove their edits from this revision. I expect this change to break the Android testing because the Android abilist files will be missing.
Jul 14 2023
Fix indentation in libcxx/test/support/filesystem_test_helper.h to make git-clang-format happy.
I copied the two ABI lists into D155341. I think this patch is ready for review now.
These files are a part of D139147.
utils/adb_run.py: Print syncing command lines with -v.
In _job_limit_socket_thread, discard the address returned from accept.
This change was copied from the larger D139147 change.
I split off duplicated the Dockerfile changes to D155271.
rebase
Switch adb_run's job limiting from POSIX semaphore to a Unix domain socket. Instead of needing a SIGINT handler in adb_run.py to release the semaphore, we can instead rely on the OS to close the socket connection.
Jul 8 2023
Run 'docker info' before 'docker image inspect ...' to make sure that Docker is working.
Switch Android testing to using the existing copies of Clang in ldionne/libcxx-builder. Add a recent Android sysroot and the platform-tools (e.g. adb) to libcxx-builder. Start an Android emulator in a sibling container to the libcxx-builder container. Use one Docker image per emulator OS image.
Jun 20 2023
Jun 12 2023
Switch the Android run-buildbot-container from --device /dev/kvm back to --privileged, but add an option to switch it back to --device /dev/kvm.
Jun 11 2023
Rebase the commit.
Jun 7 2023
Jun 5 2023
Android apps aren't generally allowed to access /data/local/tmp, but they are able to access the app-specific cache dir. (/data/data/${APP_ID}/cache or /data/user/0/$APP_ID}/cache). New-enough versions of Android set TMPDIR to this cache dir for apps. I wonder if it'd make sense for libc++ to use the app cache as fallback for std::filesystem::temp_directory_path(), when running in an app context (app UID?). I suspect the answer is "no", because it's not feasible to determine the path to the app cache. Not sure though.
Rebase this commit.
Jun 1 2023
May 31 2023
I reported a kernel bug related to this issue, https://bugzilla.kernel.org/show_bug.cgi?id=216834.
I was wondering whether I can land this patch adding Android testing to buildkite-pipeline.yml while the Android libc++ tests are still failing, or if the buildbot isn't set up yet. e.g. I wouldn't want non-Android-related LLVM patches to be affected. (Maybe I should land all the Android-related work first, and only then add the entry to the yml file.)
May 30 2023
Add a comment explaning why we don't just check __ANDROID_API__.
I still haven't added anything to libcxx/utils/ci/buildkite-pipeline.yml. It's not clear to me whether that should be part of this patch, because there are several things that must happen first before CI tests will work:
- I need to create a new docker image to add the Android stuff to it, and host it somewhere.
- I need to setup a special buildbot on a VM somewhere that uses the new docker image.
- There are a bunch of patches I have uploaded to Phabricator currently that are required to get tests running cleanly.
- There are a few other fixes for tests that I don't have uploaded, because I'm not quite sure what we want to do (need to disable certain filesystem tests, and there are a couple of demangler problems involving floating-point).
Various updates:
- Use the std::__ndk1 namespace to match how the NDK libc++ is built.
- Use a POSIX semaphore to limit concurrent adb jobs (libcxx/utils/semaphore_tool.py, --job-limit-semaphore) more than host jobs are limited.
- Define android and LIBCXX-ANDROID-FIXME features in features.py.
- Add a android_libcxx_kind={ndk,platform} param to libcxx[abi]/test/configs/llvm-libc++[abi]-android.cfg.in, which allows for testing either the NDK build of libc++ or the platform (/system/lib[64]/libc++.so) build of libc++ for Android.
Apr 10 2023
nit: In the description/commit message, the "when the API level is > 29" should be "when the API level is >= 29".
Jan 10 2023
Dec 21 2022
Dec 20 2022
Dec 19 2022
Dec 15 2022
Dec 12 2022
Reword a comment.
Dec 9 2022
Dec 7 2022
Add feature LIBCXX-ANDROID-FIXME.
Use XFAIL instead of UNSUPPORTED.
Bump BuildKite again.
No change.
I'm definitely not ruling out adding Android/Bionic support for modules later on. They might be needed to fix things like the user namespace pollution in D139380. At the moment, the goal is to update the libc++ used on Android, which is a few years out of date.