)]}' { "commit": "f4c419ec4240247ae75aa222293b2dbd2876849b", "tree": "1f0dd580afc1ee8099541845eb99bfb651150860", "parents": [ "b5432c918e92a7a0f1a8b012df8459079897cdc8" ], "author": { "name": "Dan Willemsen", "email": "dwillemsen@google.com", "time": "Fri Apr 07 14:13:06 2017 -0700" }, "committer": { "name": "Steven Moreland", "email": "smoreland@google.com", "time": "Tue Apr 11 18:24:56 2017 +0000" }, "message": "Mark as vendor_available\n\nBy setting vendor_available, the following may become true:\n\n* a prebuilt library from this release may be used at runtime by\n in a later releasse (by vendor code compiled against this release).\n so this library shouldn\u0027t depend on runtime state that may change\n in the future.\n* this library may be loaded twice into a single process (potentially\n an old version and a newer version). The symbols will be isolated\n using linker namespaces, but this may break assumptions about 1\n library in 1 process (your singletons will run twice).\n\nBackground:\n\nThis means that these modules may be built and installed twice --\nonce for the system partition and once for the vendor partition. The\nsystem version will build just like today, and will be used by the\nframework components on /system. The vendor version will build\nagainst a reduced set of exports and libraries -- similar to, but\nseparate from, the NDK. This means that all your dependencies must\nalso mark vendor_available.\n\nAt runtime, /system binaries will load libraries from /system/lib*,\nwhile /vendor binaries will load libraries from /vendor/lib*. There\nare some exceptions in both directions -- bionic(libc,etc) and liblog\nare always loaded from /system. And SP-HALs (OpenGL, etc) may load\n/vendor code into /system processes, but the dependencies of those\nlibraries will load from /vendor until it reaches a library that\u0027s\nalways on /system. In the SP-HAL case, if both framework and vendor\nlibraries depend on a library of the same name, both versions will be\nloaded, but they will be isolated from each other.\n\nIt\u0027s possible to compile differently -- reducing your source files,\nexporting different include directories, etc. For details see:\n\nhttps://android-review.googlesource.com/368372\n\nNone of this is enabled unless the device opts into the system/vendor\nsplit with BOARD_VNDK_VERSION :\u003d current.\n\nBug: 36426473\nBug: 36079834\nTest: Android-aosp_arm.mk is the same before/after\nTest: build.ninja is the same before/after\nTest: build-aosp_arm.ninja is the same before/after\nTest: attempt to compile with BOARD_VNDK_VERSION :\u003d current\nMerged-In: Ic1c1cfdab14bb24dfb93b6a1ba3d6443e1e3e67e\nChange-Id: Ic1c1cfdab14bb24dfb93b6a1ba3d6443e1e3e67e\n", "tree_diff": [ { "type": "modify", "old_id": "1ced88e3324512eeeba8a8b76f21ce040cd9da22", "old_mode": 33188, "old_path": "Android.bp", "new_id": "2c2c8e65f8da433ba512e8d22e1c9bf6e6809ab4", "new_mode": 33188, "new_path": "Android.bp" } ] }