Age | Commit message (Collapse) | Author |
|
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: Ic1c1cfdab14bb24dfb93b6a1ba3d6443e1e3e67e
Change-Id: Ic1c1cfdab14bb24dfb93b6a1ba3d6443e1e3e67e
|
|
am: f4f32399ac
Change-Id: I59593e600d6fbf5b6b4d837ca8cb5e4dfa640b2a
|
|
am: b9d4549100
Change-Id: I8e3542d04c42e3d22cd7c2b2ca216c52d3c14cc6
|
|
am: 1b47da733e
Change-Id: I39329e0ba582b8f949c4743385a8534b27ca7b4b
|
|
Bug: 34468756
Test: Wrote a new test in system/core/libbacktrace that passes with
Test: this fix. Ran all of the other backtrace unit tests.
Change-Id: I0be65192f85f05593738a4d3f00c3a2b95d69df5
|
|
am: a51e64dfde
Change-Id: Ic7130d8ff4a487571a6953c84d845fcb1f099acf
|
|
am: f7eef920b5
Change-Id: I626d94bcfeee703f9c783c0f8eced9d11666995d
|
|
The struct unw_addr_space is very large (at least 13624 bytes on arm),
but is on the stack in the function map_create_list.
Allocate this function when needed instead of putting it on the stack.
Bug: 33293182
Test: Built and ran backtrace_test on an angler. Stepped through the
Test: modified code and verified it is called and allocated properly.
Test: Ran valgrind on the backtrace_test.local_trace to verify that
Test: the memory is not leaked.
Change-Id: I298e72d6b87d2701111c4659c46246b308f275e9
(cherry picked from commit 50270d3ef2127372c0ae6aefd9be255ab901f573)
|
|
am: 591a2eb3f3
Change-Id: Iefda17599fdb15481510536bd0d1bc3d103b763e
|
|
am: 2a286501e6
Change-Id: Ib5c82ce3b35ae8fce54619f14dc1c4bbf1edb3f1
|
|
am: de858ed3a4
Change-Id: I71229f73fd10d8ffeee6322fd81738a9c1e6900a
|
|
am: 50270d3ef2
Change-Id: Ic8b2336685c848287defe0826b73875f849ba2a5
|
|
The struct unw_addr_space is very large (at least 13624 bytes on arm),
but is on the stack in the function map_create_list.
Allocate this function when needed instead of putting it on the stack.
Bug: 33293182
Test: Built and ran backtrace_test on an angler. Stepped through the
Test: modified code and verified it is called and allocated properly.
Test: Ran valgrind on the backtrace_test.local_trace to verify that
Test: the memory is not leaked.
Change-Id: I298e72d6b87d2701111c4659c46246b308f275e9
|
|
am: 67b6f15b0c
Change-Id: Ic0614304a19441ac1ed81eda77f11eec233e1af4
|
|
am: c81f74d7b7
Change-Id: I262c5dacf0245359d15bac334babd05edaae2b6a
|
|
am: 69229f6988
Change-Id: Ie2cb38f162d70eba1762e3e6c34a51e5bf908470
|
|
am: 2c73b4baa1
Change-Id: I20bca5fdcee3dc4887ac772f2a5784e6f9168417
|
|
Bug: 31559095
Test: Test linux_bionic compile
Change-Id: If024f482d6f4ff1ef260f48c1d58f552a5904e18
|
|
d4224da9ac
am: c8a2edac89
Change-Id: Iac4215adb7552002cb056fa887cebac2983895a9
|
|
am: d4224da9ac
Change-Id: Idb1f6789d06dc524ce72c48cc1be4cbe78905661
|
|
am: 949328874a
Change-Id: I20518e3c9e670a41f82859f32090e7bd5f6a4d40
|
|
am: e1069f1eb1
Change-Id: I995bf15888e0eae6671d7fbf6cf06f2412b462d1
|
|
I had forgotten that I never properly recorded the pc correctly for
aarch64. I was simply using the lr value and assuming it would be
good enough. In many cases it was, but if the sp was not the same,
then an unwind of the currently executing thread would go off into
the weeds.
Actually, record the pc using the adr instruction.
Test: Run backtrace unit tests on angler.
Change-Id: I2df2dea77608f87c82bcf086dce75be1d34e86d1
|
|
am: 12a8cea75d
Change-Id: I8ea91a3c64200f5ab9b66f1e8b33157973f6c62d
|
|
am: 279c2c4c35
Change-Id: I67bb1578d55d8cf9dce0f73d887c05065ac9d762
|
|
am: 697523f2c1
Change-Id: I422231e244e7edd8bdf6bc2fb55b9e4c1b180bd7
|
|
am: 9724d2448e
Change-Id: Ie35ba7c5ef643d22cf70c1378a3dd20c98ed65df
|
|
This avoids the unnecessary dependency on libstdc++.so.
Test: make checkbuild
Bug: None
Change-Id: I8c04e364b932d78494e2755a30d2a85bfcc11844
|
|
am: 452881669c
Change-Id: Ida50c4b07f9e43241bae4d04747cb2b16048341d
|
|
am: 5b0a11347a
Change-Id: Iab4e920b48726064b2f06bd4ae735338dbdf0d4f
|
|
am: 7d42205b28
Change-Id: Ia203f40d567c3020e1cc105c51b6be1ee72e9b99
|
|
am: 6c1c27f5ab
Change-Id: Ia89a40fb64dd2dfffcbde11bd65a1ff681efd148
|
|
This library is used in libcompiler_rt which is build against 21, and
the NDK does not support linking old API levels against new API
levels.
Test: make checkbuild
Change-Id: If546f3e3b2eb2ebcd654d640a3d9b671db89f007
|
|
am: 345e9ac66d
am: a6ac3511d0
Change-Id: I609ae59a77ed78f81fc85bc9b3ad03ae8bcd7173
|
|
am: 345e9ac66d
Change-Id: I83ef91e2432d80a4c69764c73cb4b85172f6964e
|
|
am: 6e5c0b7ac0
Change-Id: Ia5efa8e332d46214d59ddf7b69030a32decd5be0
|
|
am: 6073640724
Change-Id: I4447a88044dba41ca4f8b725f7a946130107cfbe
|
|
It would be preferable if this could build for API level 9, but it
depends on dl_iterate_phdr(), which only appears in API level 21 for
ARM. It also needs asm/unistd.h, which only appears in API level 23 for
x86_64.
Change-Id: I010bcc7ca1b3447b66db94505516c023f7fd3306
|
|
am: c1c473020b
* commit 'c1c473020bd7e58b30f466f393d41ca5c8b54326':
Remove deprecated Android.mk files
Change-Id: I3737fc9bdd25d7a4ff39f70a0e61a427e6afe254
|
|
am: 63f420c1d8
* commit '63f420c1d8ce60bf0169d7ea23e7f0ab85da2d3a':
Remove deprecated Android.mk files
Change-Id: I3a01a513b7a8986b5daa61904bc981bfe0afaba9
|
|
am: 82d6119a12
* commit '82d6119a124e31d671a581ace86ac86589459cfb':
Remove deprecated Android.mk files
Change-Id: Ie2e3824be90afb3ceecaa64477ec430a4f431c43
|
|
am: c47141bc23
* commit 'c47141bc23260bb3785fc47d0df0401a7103b772':
Remove deprecated Android.mk files
Change-Id: I30b392d5806e9d509bc02add07e33923c6e58625
|
|
am: 675cc5b6be
* commit '675cc5b6be38244404046195f3b20acdf753cd47':
Build unit tests
Change-Id: I950ab7826d172579dfee6da56c5542545de8d775
|
|
am: b19954297b
* commit 'b19954297b8b10f3d34e2f7afd62a9373bee07c3':
Build unit tests
Change-Id: I4c6e4fb53fd4c3b3edc64913cf20136216dbce03
|
|
am: 8ac4b709aa
* commit '8ac4b709aa6e2bf743c77832d554d9452770890d':
Build unit tests
Change-Id: Ib4c415870760c01cf4f42ac4ef3313ba14c13e6b
|
|
am: cb56a2c6ff
* commit 'cb56a2c6ff3b1ab34e3556a7385a3030c30ea0fb':
Build unit tests
Change-Id: Id0417443b9025f6d48debf2022e8be2ef725c382
|
|
These directories all have Android.bp files that are always used now,
delete the Android.mk files.
Change-Id: I274d27064478b7e5d740a32998a61186843b989c
|
|
Add the module definition for the unit tests that the autotranslator
couldn't translate.
Change-Id: I22c336727528e37695fe60d5a1b7ced8749ea30d
|
|
am: 9a2f796b54
am: 62a020d2c1
* commit '62a020d2c1a5461c4b87778b50cae078b14346da':
Use zero offset when getting bias from memory.
Change-Id: I31d7e8b2f7d3c0f104957819a8425b61b056ad26
|
|
am: 9a2f796b54
* commit '9a2f796b54f4e4394e5588230ae78d46c1eb3940':
Use zero offset when getting bias from memory.
Change-Id: I63fd81a1bf3a799ee152ff450696dd9bc0060029
|