Age | Commit message (Collapse) | Author |
|
Change-Id: I9bee76d86fb9ef498434e6db9eb81c9627cd737e
|
|
Change-Id: I6f7b7f79c40d81df8a28e1d1995236aaf96b8648
|
|
Change-Id: I45e9a25d155144772a0e19118645a56921454241
|
|
am: 324bc2a10c
Change-Id: I371c21096a630a466029e2b2207676f99fc798ca
|
|
am: 6705962b2b
Change-Id: Ibce370423c7dd1824950fc607e5a5435d67b14c4
|
|
am: 6f23fe49ee
Change-Id: Ie88bdb4ed64fa68ee019fbc604e3e3cb89bd36b1
|
|
am: 70a7b267a0
Change-Id: I41b486be718e8de755ebde9fe9cc6c92b54ef5b2
|
|
am: 198d844558
Change-Id: Ic7c11030401cdec1645b2b3a8fde0ad42c6420a4
|
|
am: c41479a1d7
Change-Id: I04b541c90fb43dc3dc3a1f1ab4ffe6206b2af17f
|
|
By setting vendor_available, the following may become true:
* a prebuilt library from this release may be used at runtime by
in a later releasse (by vendor code compiled against this release).
so this library shouldn't depend on runtime state that may change
in the future.
* this library may be loaded twice into a single process (potentially
an old version and a newer version). The symbols will be isolated
using linker namespaces, but this may break assumptions about 1
library in 1 process (your singletons will run twice).
Background:
This means that these modules may be built and installed twice --
once for the system partition and once for the vendor partition. The
system version will build just like today, and will be used by the
framework components on /system. The vendor version will build
against a reduced set of exports and libraries -- similar to, but
separate from, the NDK. This means that all your dependencies must
also mark vendor_available.
At runtime, /system binaries will load libraries from /system/lib*,
while /vendor binaries will load libraries from /vendor/lib*. There
are some exceptions in both directions -- bionic(libc,etc) and liblog
are always loaded from /system. And SP-HALs (OpenGL, etc) may load
/vendor code into /system processes, but the dependencies of those
libraries will load from /vendor until it reaches a library that's
always on /system. In the SP-HAL case, if both framework and vendor
libraries depend on a library of the same name, both versions will be
loaded, but they will be isolated from each other.
It's possible to compile differently -- reducing your source files,
exporting different include directories, etc. For details see:
https://android-review.googlesource.com/368372
None of this is enabled unless the device opts into the system/vendor
split with BOARD_VNDK_VERSION := current.
Bug: 36426473
Bug: 36079834
Test: Android-aosp_arm.mk is the same before/after
Test: build.ninja is the same before/after
Test: build-aosp_arm.ninja is the same before/after
Test: attempt to compile with BOARD_VNDK_VERSION := current
Merged-In: If1f75688d3fd42aaaf6b150771573d0d6f3afb34
Change-Id: If1f75688d3fd42aaaf6b150771573d0d6f3afb34
|
|
By setting vendor_available, the following may become true:
* a prebuilt library from this release may be used at runtime by
in a later releasse (by vendor code compiled against this release).
so this library shouldn't depend on runtime state that may change
in the future.
* this library may be loaded twice into a single process (potentially
an old version and a newer version). The symbols will be isolated
using linker namespaces, but this may break assumptions about 1
library in 1 process (your singletons will run twice).
Background:
This means that these modules may be built and installed twice --
once for the system partition and once for the vendor partition. The
system version will build just like today, and will be used by the
framework components on /system. The vendor version will build
against a reduced set of exports and libraries -- similar to, but
separate from, the NDK. This means that all your dependencies must
also mark vendor_available.
At runtime, /system binaries will load libraries from /system/lib*,
while /vendor binaries will load libraries from /vendor/lib*. There
are some exceptions in both directions -- bionic(libc,etc) and liblog
are always loaded from /system. And SP-HALs (OpenGL, etc) may load
/vendor code into /system processes, but the dependencies of those
libraries will load from /vendor until it reaches a library that's
always on /system. In the SP-HAL case, if both framework and vendor
libraries depend on a library of the same name, both versions will be
loaded, but they will be isolated from each other.
It's possible to compile differently -- reducing your source files,
exporting different include directories, etc. For details see:
https://android-review.googlesource.com/368372
None of this is enabled unless the device opts into the system/vendor
split with BOARD_VNDK_VERSION := current.
Bug: 36426473
Bug: 36079834
Test: Android-aosp_arm.mk is the same before/after
Test: build.ninja is the same before/after
Test: build-aosp_arm.ninja is the same before/after
Test: attempt to compile with BOARD_VNDK_VERSION := current
Change-Id: If1f75688d3fd42aaaf6b150771573d0d6f3afb34
|
|
am: 80aa93fba4
Change-Id: I38d12b22ef92171afc974afade0e1222f7f1d4f3
|
|
am: 72c474b3d4
Change-Id: I1752c3a84311767cd9dea2f7d4ee51f6262bd3ca
|
|
am: 714425abe0
Change-Id: If8cbaf672d3188315488b6f43765636d52fc1cb9
|
|
am: 838ac37536
Change-Id: Ifad782f0eb70b3080b6c8e745339890a6c3f9b98
|
|
am: 8d9a316d1f
Change-Id: Icb0d38ee6a09d6ae0f55df2777e7780aeb22afae
|
|
am: 444d5607de
Change-Id: Id4afc32692cbd67eea2f16353c2c4d5c6d6eb1f1
|
|
am: 9dd52f4300
Change-Id: I427e66958539a7cddee95a2cb07055c3b80c1b9b
|
|
am: 467bf41d66
Change-Id: I43b79df2cd36b39e8942f17aa6b2efedbde5d6f0
|
|
Test: make checkbuild && external/libcxx/run_tests.py # sailfish
Bug: http://b/34740564
Change-Id: I5efb90de72aac013de04f7d4099ea2a0ecdd6e7f
|
|
There are some demangler bugfixes included here that are needed for
passing the libc++ tests.
Bug: http://b/34740564
Test: make checkbuild && external/libcxx/run_tests.py # saifish
Change-Id: I2f102126d532a18f1ad26d87f8e3915bb50f1bb9
|
|
Pull the dependency on pthread_mach_thread_np() back into libcxxabi.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@293166 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
When checking if the type is a r-value ref, we would not do a complete
check. This would result in us treating a trailing parameter reference
`&)` as a r-value ref, and improperly inject the cv qualifier on the
type. We now correctly demangle the type `KFvRmE` as a constant
function rather than a constant reference.
Fixes PR31741!
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@292973 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Fix an off-by-one case which would destroy the final parameter in a
CV-qualified function type with a reference. We still get the CV
qualification incorrect, but at least we do not clobber the type name
any longer.
Partially fixes PR31741.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@292963 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Pending LIT changes are about to remove the REQUIRES-ANY keyword
in place of supporting boolean && and || within "REQUIRES". This
patch prepares libc++ for that change so that when applied
the bots don't lose their mind.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@292906 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
This test contained an implicit conversion from nullptr to bool.
Clang warns about this but the test had supressed that warning.
However GCC diagnoses the same code as an error and requires
-fpermissive to accept it.
This patch fixes both the warning and the error by explicitly
converting the pointer to bool.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@292638 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
The Itanium ABI [1] specifies that __cxa_demangle accept either:
1) symbol names, which start with "_Z"
2) type manglings, which do not start with "_Z"
r286788 erroneously assumes that it should only handle symbols, so this patch
reverts it and adds a counterexample to the testcase.
1: https://mentorembedded.github.io/cxx-abi/abi.html#demangler
Reviewers: zygoloid, EricWF
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@292418 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
dynamic-exception specs. Also, remove a FIXME workaround from the config that allowed these tests to work under C++17. This addresses PR#31621.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@292135 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Add LIBUNWIND_* directories to include path only if they were actually
found, in order to fix the CMake error. Both of the directories are
usually unnecessary since libcxxabi uses only the common part of
unwind.h that is supplied both by GCC and Clang.
Differential Revision: https://reviews.llvm.org/D25314
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@292018 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
This patch adjusts the out-of-tree CMake configuration so that
the stderr output is ignored when an old llvm-config is found
that doesn't support --cmakedir.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@291993 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
The current std::terminate_handler pulls in some string code, some I/O
code, and more. Since it is automatically setup as the default, this
means that any trivial binary linking against libcxxabi will get this
extra bloat.
This patch allows disabling it as a build-time option, if you want to
avoid the extra bloat.
Patch by Tom Rybka!
Reviewers: EricWF
Subscribers: danalbert, llvm-commits, mgorny
Differential Revision: https://reviews.llvm.org/D28497
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@291946 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@291829 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Use the new --cmakedir option to obtain LLVM_CMAKE_PATH straight from
llvm-config. Fallback to local reconstruction if llvm-config does not
support this option.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@291506 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
+ Now that libcxxabi shares the same threading API as libcxx, a whole
chunk of code in src/config.h is made redundant (I missed this earlier).
+ r291275 split off the externalized-thread-api libcxx configuration from the
external-thread-library libcxx configuration. libcxxabi should follow the
same approach.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@291440 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Tests targets will now be enabled by default when building libcxxabi out of tree
(unless turned off with LIBCXXABI_INCLUDE_TESTS=OFF).
Differential Revision: https://reviews.llvm.org/D28450
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@291378 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Differential Revision: https://reviews.llvm.org/D28449
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@291367 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Use an `extern "C" { }` block around the definition rather than doing
the inline definition. This avoids a GCC warning about a declaration
being extern and having a definition. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@290937 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
r281179 Introduced an externally threaded variant of the libc++ library. This
patch adds support for a similar library variant for libc++abi.
Differential revision: https://reviews.llvm.org/D27575
Reviewers: EricWF
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@290888 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@290877 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@290847 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Clean up the misleading indentation warning from GCC 6. NFC
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@290788 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Summary:
All easy-to-find bugs in cxa_demangle where fixed now
(https://bugs.chromium.org/p/chromium/issues/detail?id=606626)
except for one (https://llvm.org/bugs/show_bug.cgi?id=31031).
Now I'd like to properly integrate this fuzzer with the source tree
and then run the fuzzer continuously on https://github.com/google/oss-fuzz
Reviewers: compnerd, mclow.lists, mehdi_amini
Subscribers: cfe-commits, mgorny
Differential Revision: https://reviews.llvm.org/D28133
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@290650 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@290487 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@290471 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
The macOS thread-local variable finalizer routines do not handle the
case where a termination function registers another termination function
correctly, causing this test to fail. I've filed a radar for this;
mark the test XFAIL in the meantime. See [1] for more details.
[1] http://lists.llvm.org/pipermail/cfe-dev/2016-November/051376.html
Differential Revision: https://reviews.llvm.org/D27434
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@289513 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@289365 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@289353 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
It's useful to be able to disable visibility annotations entirely; for
example, if we're building libc++abi static to include in another library,
and we don't want any libc++abi functions getting exported out of that
library. This is a generalization of _LIBCXXABI_DISABLE_DLL_IMPORT_EXPORT.
Differential Revision: https://reviews.llvm.org/D26950
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@288692 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
available, rather than #ifdef'ing away the relevant tests if it's unavailable.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@288543 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
disable the test entirely for those cases. This is a quick patch, I'll look at
a proper feature flag next.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@288539 91177308-0d34-0410-b5e6-96231b3b80d8
|