Go to file
Steven Moreland 9990de1f64 libsync: vendor_available
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: 33241851
Test: build and flash internal marlin
Test: m -j libsync
Test: build with BOARD_VNDK_VERSION := current
(cherry picked from commit d0b26edf30)
Merged-In: I5b23d2c1f41b842e5a9b7ea257921133b80c3f98
Change-Id: I5b23d2c1f41b842e5a9b7ea257921133b80c3f98
2017-04-19 10:32:51 -07:00
adb libcutils: compile with BOARD_VNDK_VERSION current 2017-04-17 14:44:17 -07:00
adf libadfhwc: Fix adf_hwc_close 2017-03-02 17:40:16 +00:00
base libbase: make vendor_available 2017-04-19 10:32:47 -07:00
bootstat Add test config to bootstat_tests 2017-04-05 14:49:47 +00:00
cpio Possible null pointer miss on realloc 2017-03-23 22:41:14 +01:00
debuggerd Merge "crash_dump: during early boot, output to kmsg on userdebug." 2017-04-10 20:51:59 +00:00
demangle Make demangle work more like c++filt. 2017-03-28 17:38:01 -07:00
fastboot fastboot: Support larger transfers during flash 2017-04-17 09:22:49 -05:00
fingerprintd fingerprint: bump hw api version to 2.1 [DO NOT MERGE] 2017-01-27 22:11:15 +00:00
fs_mgr libcutils: compile with BOARD_VNDK_VERSION current 2017-04-17 14:44:17 -07:00
gatekeeperd Merge "liblog: use log/log.h when utilizing ALOG macros" am: 01e12b4ee7 am: c3b346ea93 2017-01-11 19:26:19 +00:00
healthd Merge "healthd: Implement scheduleUpdate" 2017-03-23 00:48:48 +00:00
include Moved include/backtrace to libbacktrace/include 2017-04-11 11:22:43 -07:00
init Merge "init: handle sys.powerctl immediately" 2017-04-18 18:14:18 +00:00
libappfuse Add test config to libappfuse_test 2017-03-31 17:11:50 -07:00
libbacktrace libbacktrace: make vendor_available 2017-04-19 10:32:43 -07:00
libbinderwrapper Convert libbinderwrapper_test_support to be a static library 2017-03-03 17:14:04 -08:00
libcrypto_utils Rely on the platform -std default. 2016-10-10 14:31:12 -07:00
libcutils Remove VNDK warning. 2017-04-19 10:32:49 -07:00
libdiskconfig liblog: use log/log.h when utilizing ALOG macros 2017-01-11 09:31:15 -08:00
libion liblog: use log/log.h when utilizing ALOG macros 2017-01-11 09:31:15 -08:00
liblog liblog: __android_logger_property_bool svelte+eng default 2017-04-18 15:36:36 -07:00
libmemtrack liblog: use log/log.h when utilizing ALOG macros 2017-01-11 09:31:15 -08:00
libmemunreachable liblog: use log/log.h when utilizing ALOG macros 2017-01-11 09:31:15 -08:00
libmetricslogger libmetricslogger: Use libBionicGtestMain instead of a custom test runner. 2017-02-13 13:41:44 -08:00
libnativebridge NativeBridge: add "linked namespace" semantic corresponding to linker 2017-03-29 17:34:11 -07:00
libnativeloader NativeBridge: add "linked namespace" semantic corresponding to linker 2017-03-29 17:34:11 -07:00
libnetutils liblog: use log/log.h when utilizing ALOG macros 2017-01-11 09:31:15 -08:00
libpackagelistparser liblog: use log/log.h when utilizing ALOG macros 2017-01-11 09:31:15 -08:00
libpixelflinger liblog: use log/log.h when utilizing ALOG macros 2017-01-11 09:31:15 -08:00
libprocessgroup add killProcessGroupOnce 2017-03-29 16:33:15 -07:00
libprocinfo Enable more modules on linux_bionic builds 2017-03-15 15:44:00 -07:00
libsparse libsparse: Fix verbose_error string usage 2017-04-18 10:53:49 -05:00
libsuspend Merge "liblog: use log/log.h when utilizing ALOG macros" am: 01e12b4ee7 2017-01-11 19:20:50 +00:00
libsync libsync: vendor_available 2017-04-19 10:32:51 -07:00
libsystem Moved all files from include/system to libsystem/include/system 2017-04-06 10:28:50 -07:00
libsysutils There's no longer a limit to property names. 2017-02-28 14:12:54 -08:00
libunwindstack Implement maps parsing. 2017-04-06 15:01:02 -07:00
libusbhost usb-bulk-transfer: Clarify sign-iy-ness of param 2016-09-21 15:51:35 +00:00
libutils libutils: mark as vendor_available 2017-04-12 08:59:41 -07:00
libziparchive ZipWriter: Keep LFH and CFH in sync 2017-04-11 01:45:25 +00:00
lmkd liblog: use log/log.h when utilizing ALOG macros 2017-01-11 09:31:15 -08:00
logcat liblog: allow event tags to include some punctuations 2017-04-14 12:56:06 -07:00
logd logd: report log reader instantiation 2017-04-18 14:59:46 -07:00
logwrapper Merge "logwrapper: add a benchmark for android_fork_execvp_ext" 2017-03-23 11:56:10 +00:00
mkbootimg mkbootimg: use int for os_version and os_patch_level 2016-03-29 16:06:37 -07:00
reboot Convert more Android.mk files to Android.bp 2016-07-13 17:41:45 -07:00
rootdir Merge "init: handle sys.powerctl immediately" 2017-04-18 18:14:18 +00:00
run-as Define range of GIDs for cached app data. 2016-12-13 13:28:08 -07:00
sdcard Merge "Switch sdcardfs over to bind mounts." 2016-11-30 05:20:40 +00:00
shell_and_utilities Add a README.md about our shell and utilities. 2017-04-14 17:59:55 -07:00
toolbox Add a reasonably full implementation of gzip/gunzip/zcat. 2017-04-10 10:56:40 -07:00
trusty trusty: keymaster: update device tests to use 2.0 API 2017-04-10 17:33:49 -07:00
tzdatacheck Update to support staging behavior 2017-03-29 10:56:45 +01:00
.clang-format Add a 2 width option of clang format. 2017-03-10 13:01:39 -08:00
.clang-format-2 Only allow short functions in class definitions. 2017-03-28 12:31:37 -07:00
.clang-format-4 Only allow short functions in class definitions. 2017-03-28 12:31:37 -07:00
.gitignore Ignore adb/*.pyc files 2015-08-11 12:59:58 -07:00
Android.bp Export android_filesystem_config.h as a filegroup 2017-01-17 18:20:28 -08:00
Android.mk Remove the simulator target from all makefiles. 2011-07-11 22:12:32 -07:00
CleanSpec.mk init.rc: have hwservicemanager start the HAL class 2016-09-26 00:23:51 -07:00
MODULE_LICENSE_APACHE2 auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
NOTICE Fix omission in NOTICE file. 2013-07-30 13:56:55 -07:00
PREUPLOAD.cfg Add a PREUPLOAD.cfg file to run git-clang-format on every commit 2017-03-08 16:51:26 +08:00