Commit Graph

52 Commits

Author SHA1 Message Date
Colin Cross
d04f879477 Add an empty Android.mk to shadow buildcmds/Android.mk
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
2016-07-11 19:14:43 -07:00
Colin Cross
6128e9b8c3 Remove deprecated Android.mk files
These directories all have Android.bp files that are always used now,
delete the Android.mk files.

Change-Id: I6fd065955a97c90768b3ccf46d24bf0f8c871199
2016-05-26 16:51:35 -07:00
Dan Austin
1418e4163d Add compile time define that was missing.
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
2016-05-24 16:24:42 -07:00
Dan Willemsen
ff162f079e Remove unused entries from LOCAL_SRC_FILES
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
2016-01-25 13:42:35 -08:00
Ying Wang
eb6561d602 Remove conditional of TARGET_BUILD_APPS.
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
2015-12-13 15:50:27 -08:00
Dan Albert
4b1aaf93e2 Update for new libc++ revision.
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
2015-10-20 10:24:21 -07:00
Dan Albert
b434402ea2 Move test invocation into a python script.
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
2015-10-14 14:41:54 -07:00
Dan Albert
0ad34dfe30 Export libc++abi from the static libs too.
Don't know why I thought I didn't need this before.

Change-Id: Idfcb29b7b6abc5bf9096fe82446305fbded9747b
2015-09-24 16:29:07 -07:00
Dan Albert
6029517b25 Clean up Android.mk.
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
2015-09-24 14:08:14 -07:00
Dan Albert
1f3befa2de Build and test with C++14.
Enable sized deallocation (disabled by clang by the default) so those
tests pass.

Bug: http://b/23043421
Change-Id: I347fa9a5653eb1ed0102d42234ba2de41616de39
2015-08-07 21:40:47 -07:00
Dan Albert
2ea633775b Revert "Revert "Hide symbols from the unwinder.""
Bug: 18471342
Bug: 19958712
This reverts commit d3c786591b.
2015-06-23 13:34:02 -07:00
Bart Sears
d3c786591b Revert "Hide symbols from the unwinder."
This reverts commit 41ab26aecf.

Change-Id: Ia757ca0537749716a06e27bf8685a2636270ba9b
2015-06-23 19:24:25 +00:00
Dan Albert
41ab26aecf Hide symbols from the unwinder.
Bug: 18471342
Bug: 19958712
Change-Id: I4a966262680dcf57e9d9481cb9406e1092c7f243
2015-06-22 11:02:42 -07:00
Dan Albert
a3287786b5 Use libgcc unwinder for non-ARM targets.
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
2015-04-14 14:56:46 -07:00
Dan Albert
8d0c51fdca Drop compiler-rt from WHOLE_STATIC_LIBRARIES.
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
2015-04-01 16:35:08 -07:00
Dan Albert
2cfc479c0b Manually link unwinder.
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
2015-03-31 18:27:38 -07:00
Dan Albert
94962fba20 Clean up some redundant link flags.
The build system has done this for us for some time now.

Change-Id: Idc7abf8abde086b6085c770f1b4c0dfb32500f14
2015-03-03 15:05:07 -08:00
Dan Albert
9d2b9054b5 Revert "Add the NDK's libc++ library to the build."
This broke the world for the SANITIZE_HOST build and the coverage bot.
Reverting until I have time to look in to it.

This reverts commit 1640950226.
2015-02-18 22:06:44 -08:00
Dan Albert
1640950226 Add the NDK's libc++ library to the build.
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
2015-02-17 17:03:23 -08:00
Dan Albert
79589785c5 Makefile cleanup.
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
2015-02-17 20:54:49 +00:00
Dan Albert
78f8c1981e Make it easier to run test variants.
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
2015-01-07 17:40:56 -08:00
Dan Albert
920b2af4cb am b82dd133: Explictly name static libraries.
* commit 'b82dd133946a06baa55832c389c0fdfadc0261bc':
  Explictly name static libraries.
2014-09-29 21:00:23 +00:00
Dan Albert
b82dd13394 Explictly name static libraries.
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
2014-09-26 17:20:44 -07:00
Dan Albert
680dcaab52 am c4ecec13: Use the build system\'s STL selection.
* commit 'c4ecec13b6921b9d3b4edec8cc02fd96a9c2e53b':
  Use the build system's STL selection.
2014-09-19 00:09:01 +00:00
Dan Albert
c4ecec13b6 Use the build system's STL selection.
This file is only kept around for compatibility so the change won't have
to go in as one mega-CL.

Change-Id: If712ba0ae7908d8147a69e29da5c453a183d6540
2014-09-17 14:25:27 -07:00
Ying Wang
d01477b5ee am b1300bde: Exclude only modules with prebuilt in prebuilts/sdk.
* commit 'b1300bde9cc0528ff84b91ed60ac80655218b4b0':
  Exclude only modules with prebuilt in prebuilts/sdk.
2014-08-08 22:57:10 +00:00
Ying Wang
b1300bde9c Exclude only modules with prebuilt in prebuilts/sdk.
So we can do tapas build in the full platform source tree.

Change-Id: I4c64d1007d1e295518ed6338b46d1087714b68aa
(cherry picked from commit 9dd567a7d5)
2014-08-07 15:42:50 +00:00
Dan Albert
0f81d7634f Add support for LIT to Android.mk.
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
2014-07-25 17:39:44 +00:00
Stephen Hines
3aba5bed90 Remove MIPS workaround for shared text relocations.
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
2014-07-25 00:51:54 -07:00
Stephen Hines
3873165b27 Remove MIPS workaround for shared text relocations.
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
2014-07-24 09:14:56 -07:00
Dan Albert
947f2b8e66 Clean up some bionic compatibility cruft.
Brings us closer to matching upstream.

Change-Id: Ic5c8449aae88566ecc5382a8d5d27f5095515b82
2014-07-11 20:26:40 -07:00
Dan Albert
685c63df24 Clean up some bionic compatibility cruft.
Brings us closer to matching upstream.

Change-Id: Ic5c8449aae88566ecc5382a8d5d27f5095515b82
2014-07-10 16:56:24 -07:00
Dan Albert
3bfb9441d6 Switch to using libc++abi for all platforms.
ARM EHABI recently became available in the libc++abi unwinder, so we
finally have a solution to exception handling on ARM.

Change-Id: Id188e1debb61f09fb4ec64be9a26a08dd8de2118
2014-07-02 16:42:45 -07:00
Ian Rogers
ada2964799 Build host with multilib both enabled.
Change-Id: I4ae94f247e9df8e20bf837fd7ff3e6405c7f6e85
2014-06-05 11:09:44 -07:00
Dan Albert
32ec1ea2be Adds compiler-rt to target builds
Change-Id: I4288b04944acd01b1729442fb275f02fd1ce26d4
2014-05-24 09:48:59 -07:00
Dan Albert
1721831a26 Whoops. Typo.
Change-Id: Ic29f8a8e10893384383f66e356f7d13a3a311907
2014-05-23 18:05:45 -07:00
Dan Albert
6c2fdb822e Adds static lib targets to libc++
Change-Id: I9d4e27cc3627b917e20db91bd8caa03993a036bf
2014-05-23 13:25:06 -07:00
Dan Albert
9d3a3a789b Exports symbols from libcxxrt
Change-Id: Ie2f2f660425f54999a78e922461c41262bf83f89
2014-05-22 14:43:53 -07:00
Dan Albert
e33eaba08e libcxxrt moved cxxabi.h from src/ into include/
Change-Id: I3d781b4f58bb6e2d14ad498aaac4092a48f35107
2014-05-16 14:26:41 -07:00
Dan Albert
7d57f1bbe2 Exports all symbols from libcompiler_rt
Change-Id: I18d627fecef8e5ff96fa009e7a409a199435a317
2014-05-12 14:54:53 -07:00
Brian Carlstrom
12c2891e07 Add LOCAL_ADDITIONAL_DEPENDENCIES on Android.mk
Change-Id: I46fed92c053ef7a0b8ea0ea023522ffa1875e6ed
2014-05-09 20:47:13 -07:00
Dan Albert
9569f04315 Switches ABI from libc++abi to libcxxrt
libc++abi wasn't catching exceptions out of the box, libcxxrt does. libc++abi is
still used for Darwin.

Change-Id: I93b2a45a515c17e5f219ce8648660313db3971ef
2014-05-09 14:16:17 -07:00
Dan Albert
f155054361 Enables RTTI (required by many tests)
Change-Id: I1fbc94941978c52230930ed15921900bcba1660f
2014-05-06 16:41:02 -07:00
Stephen Hines
0867076ef8 Switch from libcxxabi -> libc++abi.
Change-Id: I3a77184197ef6297abcc5d437507d979050dd905
2014-05-05 17:37:29 -07:00
Dan Albert
8a6f7b1d42 Removes unintended dependencies on libgcc/libstdc++
Change-Id: Ia50f21a2b9820a829e923c83732b297f7f7b248b
2014-05-05 11:26:27 -07:00
Stephen Hines
3486f698a3 Disable linker warnings on MIPS builds to work around relocation issue.
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
2014-04-30 01:16:20 -07:00
Stephen Hines
27ae7cb782 Don't build libc++ for unbundled projects.
It is preinstalled from prebuilts/sdk instead.

Change-Id: Ie7a85f580538e6a6730949e31b36f021ec492ba4
2014-04-25 19:13:02 -07:00
Tim Murray
d513b7a16f Add Darwin-specific fixes for host libc++.
Change-Id: I31ed8779575df16dfe52dc4f1d75a353e560dba5
2014-04-21 17:45:52 -07:00
Dan Albert
c10e7197c3 Fixes build on arm64
Change-Id: Ie2fcfccdab3081f71db3c017acad65b4b4b4a666
2014-04-16 16:38:42 -07:00
Dan Albert
1a42fce230 Disables building of libcxx on mips targets
Change-Id: I9494a11cd86312fa64e3fd84ff598815638a7c74
2014-04-16 16:29:36 -07:00