buildcmds/Android.mk is only meant to be used by mm from run-tests.py,
add an empty Android.mk at the top level to hide it.
Change-Id: Ib608e908f5fd0630f91b355635501bde8803a000
These directories all have Android.bp files that are always used now,
delete the Android.mk files.
Change-Id: I6fd065955a97c90768b3ccf46d24bf0f8c871199
There used to be a check for `__has_include(<cxxabi.h>)`, but it
was removed because it is a clang extension. This adds
-DLIBCXX_BUILDING_LIBCXXABI to the mk and bp files to fix this.
Change-Id: Ife2f93ace8c2766c0140fba88bf74a941ed8e57e
The build system does not use headers or directories in LOCAL_SRC_FILES.
To prevent typos, it's becoming a warning to add something to
LOCAL_SRC_FILES that is not used.
Change-Id: I1cf232bce556a92847d700af37f534c7d71deae7
Now prebuilt libc++ in prebuilts/sdk/tools isn't exposed as a prebult
module by default, so the conditional isn't necessary.
This fixed apps build target in internal master.
Bug: 26166064
Change-Id: Id4043b0e425b42744bae65facb879e54ebf08c05
Add src/any.cpp for std::experimental::any.
Update test executor for extra return value.
Make the adb code more tolerant of surprise failures.
Mark local.time.put.members.put2 as XFAIL for Android. I think this
might just be needed because it is no longer marked XFAIL for linux.
Should definitely dig in to what is broken here though.
Change-Id: I044e1a8bd3830dadb80fcb964abba39d3ee40702
Invoking these from make was pretty gross, and apparently I was
getting it wrong for the buildbot (was running mmm buildcmds without
running configtests).
This makes a single entry point of run-tests.py. The ugly hacks for
cflags/ldflags detection is still there, but it's at least not *as*
bad.
Change-Id: I0157700d83f6a38a209751a03a00dc9a8e708744
Export our includes, and use exported includes.
Also drop the symlink to cxxabi.h since we can get that from libc++abi
without pulling in the unwind headers now.
Change-Id: I2f9a5f7bdad6613433022f4e3888ef9336c8ebfb
Enable sized deallocation (disabled by clang by the default) so those
tests pass.
Bug: http://b/23043421
Change-Id: I347fa9a5653eb1ed0102d42234ba2de41616de39
The change in how we link the unwinder/libgcc seems to have broken
exception handling for targets using libunwind, but it now works using
the libgcc unwinder.
Change-Id: Id7e92423eff1066933b3a4a15fab13bad81c4935
The build system handles the reasons we used to do this now, and doing
this commonly causes multiple symbol definition problems when it
collides with libgcc.
Bug: 18389856
Change-Id: Ife74d66c2327751ca47630216bea9a08b8270c89
We want to make linking the unwinder the responsibility of the build
system rather than bundling it here (so we can link it with
--exclude-libs to prevent cross-talk between unwinders). Since these
unwinders will be linked if using libc++, we need to manually link it
in this case.
Bug: 18471342
Bug: 19958712
Change-Id: I351da9e7cd940887a60149b3e448d342833769d8
This depends on Bionic's NDK compatibility library, which is still a
WIP.
We should probably consider adding both compatlib and non-compatlib
flows to the NDK so that users who only care about the latest versions
can avoid using the compatblib (there are probably going to be bugs
for a while).
Bug: 19149083
Change-Id: I76907cc6cfb1960a4dbd144974ce20cdd9b94777
LOCAL_ADDITIONAL_DEPENDENCIES := $(THIS_MAKEFILE) is no longer
necessary.
The ifneq ARM block for libdl not only isn't correct (broken for
32-bit arm on an aarch64 device), but is already linked for all
architectures just above.
Change-Id: Ie2ad80b22dbf73e5834be26bccecd4a811ad5ac7
This adds all the permutations for tests as make targets of the form
test-libcxx-(host|target)-(clang|gcc)-(32|64).
This also changes the host tests to use the Android build system (like
I had done with https://android-review.googlesource.com/#/c/111924/).
This probably should have been a separate patch, but I got carried
away (and wanted to make sure this new approach would work for both),
and now they're non-trivial to split.
Change-Id: Ie99caf6c3ff21c833408f99d37299d966ee7bc94
The build system's LOCAL_CXX_STL relies on a difference in name
(libc++_static) to decide whether to use the static or dynamic STL.
Change-Id: I59545435770d11579d04fb0ff6f101f0ec1ea23c
Now that test/lit.cfg can handle running tests on Android devices, we
can move testing over to LIT so that it's easier to stay in sync with
upstream (no longer have to run test/makemake.py to regenerate makefiles
for each test). Also, we can now actually run all of the xfail tests
(tests that are considered passing if compilation fails).
The libc++ tests can be run with:
$ mm test-libcxx # run all tests
$ mm test-libcxx-host # host only
$ mm test-libcxx-device # device only (uses current lunch target)
Actually generating the cppflags and ldflags is done in test/device.cfg.
It's a little ugly, but it does a decent job of approximating our build
system while still allowing us to finish a test run in less than 7
hours. Additional devices can be added to the config as needed.
Change-Id: Ieba38912a213c43e54e03ab9b8c4e25f019b0305
Bug: 14296739
Updates to LLVM and libc++ have removed the remaining spurious shared text
relocations from the MIPS build of libc++. We no longer need to disable
linker warnings as errors, since we don't trigger the warning.
Change-Id: I82ec8c76decc92d93a5ce87d9a172e8cbcdb82b8
Bug: 14296739
Updates to LLVM and libc++ have removed the remaining spurious shared text
relocations from the MIPS build of libc++. We no longer need to disable
linker warnings as errors, since we don't trigger the warning.
Change-Id: I82ec8c76decc92d93a5ce87d9a172e8cbcdb82b8
ARM EHABI recently became available in the libc++abi unwinder, so we
finally have a solution to exception handling on ARM.
Change-Id: Id188e1debb61f09fb4ec64be9a26a08dd8de2118
libc++abi wasn't catching exceptions out of the box, libcxxrt does. libc++abi is
still used for Darwin.
Change-Id: I93b2a45a515c17e5f219ce8648660313db3971ef
Bug: 14296739
Clang is emitting a text relocation for __gxx_personality_v0 on MIPS, and
the linker is treating this as an error (converted from a warning initially).
The warning appears harmless in this case, so the temporary solution is to
disable it until the LLVM bug is fixed.
Change-Id: I87dd41e7e2247d5b64ba8e2c5ad03db6716871de