Commit graph

350 commits

Author SHA1 Message Date
Justin Yun
2e887ef819 Implement system namespace for vendor process
am: 24c29f1be4

Change-Id: Ie5358aea408aaf817a1f0a76bf6907051cb207e4
2017-08-22 07:52:54 +00:00
Justin Yun
24c29f1be4 Implement system namespace for vendor process
For vendor process default namespace searches as following order:
1. /vendor/lib/(hw|egl), /vendor/lib: Vendor libs + VNDK-vnd-ext
2. /system/lib/vndk-$(ver): VNDK libs
3. /vendor/lib/vndk-sp-$(ver): VNDK-SP-vnd-ext
4. /system/lib/vndk-sp-$(ver): VNDK-SP
and searches system namespace (/system/lib) only for LL-NDK libs.
This configuarion is used only with BOARD_VNDK_VERSION is defined.

Bug: 37192038
Test: build with 'BOARD_VNDK_VERSION=current' and boot

Change-Id: If9778b9266a084846ba8fe73e6bff25828359d33
2017-08-22 13:40:22 +09:00
Jiyong Park
b62e979d72 Merge "Make the rs namespace visible" into oc-mr1-dev
am: f34814e06c

Change-Id: I194fb3044998a8f02ff80caefae283a765594417
2017-08-18 03:15:40 +00:00
Jiyong Park
421a5e46b7 Make the rs namespace visible
This allows us to dlopen libRS_internal.so directly from the rs
namespace, not from the sphal namespace.

Bug: 64747884
Test: VtsHalRenderscriptV1_0TargetTest successful on the device built
with BOARD_VNDK_VERSION=current and [system] namespace config is applied
to /data/nativetest[64]/* processes.

Change-Id: I0b441791e395798e80a84592ca01e771bb1c201a
2017-08-16 23:32:54 +09:00
Justin Yun
27e501f100 Merge "Add libft2.so to ll-ndk for rs namespace" into oc-mr1-dev
am: acda9cba2e

Change-Id: I6835036af67f2328c8ad807b68de2970f2a99fb3
2017-08-15 10:23:08 +00:00
Justin Yun
513f76394a Add libft2.so to ll-ndk for rs namespace
libft2.so is changed to ll-ndk that is available only for rs
namespace.

Bug: 64425518
Test: build and boot with BOARD_VNDK_VERSION=current
Change-Id: I991dc774ca9b92fb6e95a7656243a6a4ecdc0ab9
2017-08-14 12:18:29 +09:00
Justin Yun
53ed5e4729 Merge "Move libz vndk-sp from ll-ndk" into oc-mr1-dev
am: 28d4818037

Change-Id: Ic058ced0f22045c7141c312537c1c37816868b68
2017-08-11 15:20:44 +00:00
Justin Yun
dadd3a846f Move libz vndk-sp from ll-ndk
The ABI of libz is not as stable as it is for ll-ndk.

Bug: 37617391
Test: build and boot
Change-Id: I883bc6fda268e98cc7cdd5888264170c58688794
2017-08-10 17:39:30 +09:00
Jiyong Park
4220c1ab53 Merge "Permit /system/lib/vndk-sp/hw/ for 'sphal' namespace" into oc-mr1-dev
am: 42a2f5c992

Change-Id: Ifad4a6062b24db1a56994eae4776096f94cf3d07
2017-08-09 05:15:48 +00:00
Jiyong Park
7d4cf3fd33 Permit /system/lib/vndk-sp/hw/ for 'sphal' namespace
android.hidl.memory@1.0-impl.so is a SP-HAL located in
/system/lib/vndk-sp/hw. This can't be moved to /vendor/lib since it is a
framework HAL.

Bug: 62930720
Test: 2017 pixel builds and boots with BOARD_VNDK_VERSION on
Change-Id: I9c456983ef68120c5e8c629efc6dd66a26220ecb
2017-08-04 16:38:39 +09:00
Elliott Hughes
6a8cb78acb Merge "Add comments to "public.libraries.*.txt"." am: e7b8fc22af am: 601e5ac55b am: 3cdb21a8c7
am: 54f2e52ab5

Change-Id: Id4b155e157da0c18f2cddebf4085366ae2d0afe0
2017-08-02 19:57:29 +00:00
Elliott Hughes
54f2e52ab5 Merge "Add comments to "public.libraries.*.txt"." am: e7b8fc22af am: 601e5ac55b
am: 3cdb21a8c7

Change-Id: I049c98243b522b8c3fcb64d917ff64a1e6d576c0
2017-08-02 19:52:26 +00:00
Elliott Hughes
601e5ac55b Merge "Add comments to "public.libraries.*.txt"."
am: e7b8fc22af

Change-Id: I8519a128238758433d194f35f6090633aeb85f0a
2017-08-02 19:43:01 +00:00
Jean-Luc Brouillet
24d43899cd Merge "Make the Neural Networks library loadable by apps." into oc-mr1-dev 2017-08-01 02:26:10 +00:00
Elliott Hughes
bd0ad88202 Add comments to "public.libraries.*.txt".
Folks don't know how to add public native API. Point them in the right
direction.

Bug: 63905942
Test: boots
Change-Id: I5e1f04fb852348255a2f7f87aa961948c41c47fd
2017-07-28 18:07:44 -07:00
Justin Yun
90a2487776 Add system/${LIB}/vndk to default namespace for vendor.
With BOARD_VNDK_VERSION=current, vndk libs will be installed in
system/${LIB}/vndk. To make them available for vendor, it must be
added to default namespace.

Bug: 63866913
Test: build and boot with BOARD_VNDK_VERSION=current
Change-Id: I9e467a6125fc89513754b56a2420975559144f98
2017-07-25 15:24:28 +09:00
Jean-Luc Brouillet
12f81dfdff Make the Neural Networks library loadable by apps.
Add to the whitelist the NN API lib.

Bug: 63905942
Test: Ran an app that uses the NN API.
Change-Id: I83c1acdff58b8fe99fbd7a8fbfb5444fe77b7902
2017-07-21 20:16:35 -07:00
Jiyong Park
342e022547 Add [test] section for /data/[nativetest|benchmarktest]
am: c034a43d44

Change-Id: I11b98ea29bbba4c3bc29f28fe7ba9864306245dd
2017-07-20 17:34:30 +00:00
Jiyong Park
c034a43d44 Add [test] section for /data/[nativetest|benchmarktest]
We have both system and vendor tests in the same directory
/data/nativetest. Since we can't distinguish system and vendor tests at
runtime, we choose to run all of them with the legacy namespace
configuration where /system/lib and /vendor/lib are both accessible
without any restriction. Furthermore, /system/lib/vndk-sp is added to
the list of accessible directories for tests since some libs (such as
libion.so) exist only in the directory but not in /system/lib.

This will change in the future when we install system and vendor tests
into different directories (vendor tests goes into ./vendor subdir).
Then, we will run the tests with [system] or [vendor] configurations
depending on their paths.

Bug: 63597267
Test: run bionic-unit-tests
Test: run linker-unit-tests
Change-Id: I810003b2da0b30335200c130f484ea7b041f9f80
2017-07-20 15:28:00 +09:00
Jiyong Park
5dcd83c6a0 Merge "/data/nativetest[64] processes are running with the new ns config" into oc-dr1-dev am: c5aba9702e
am: df13c1473d

Change-Id: I42d01009bef11774a3a1c7e22771d9ef72f8f39d
2017-07-19 00:42:15 +00:00
Jiyong Park
9d1e50b809 /data/nativetest[64] processes are running with the new ns config
Native tests under /data/nativetest[64] directory is now running with
the same linker namespace configuration as /system/bin/* processes.

This allows us to stop mimicing the linker namespace configuration of the
/system/bin/* processes using LD_LIBRARY_PATH.

Bug: 63597267
Test: run bionic-unit-tests
Test: run linker-unit-tests
Change-Id: If8e2ed0b8016e4e07bf6829735b8e02f952042d0
2017-07-18 16:45:05 +09:00
Logan Chien
bee0ff2524 Revert "Move libz to vndk-sp" am: f499bcdde7
am: b0bff4a55c

Change-Id: I30ff5acb75c0e6f8c4285703f9a8b4f5ce44bf70
2017-07-05 13:20:23 +00:00
Logan Chien
f499bcdde7 Revert "Move libz to vndk-sp"
This commit removes libz.so from the exported libs of "vndk" linker
namespace and export libz.so from "default" linker namespace instead.

We have to remove libz.so from vndk-sp because we don't have a good
mechanism to stop "classloader" linker namespace from loading
/system/lib[64]/vndk-sp/libz.so.  Other alternatives require significant
changes to dynamic linker or CTS test cases.

Let's temporarily revert the commit to fix b/62195853 for oc-dr1-dev.
The long-term solution will be discussed in b/37617391.

This reverts commit 63226400f3.

Bug: 62195853
Bug: 37617391
Test: Boot sailfish to home screen.
Change-Id: I4a97819b080f7091b633152d4a11353b24c463ee
2017-07-05 11:18:13 +08:00
Logan Chien
0821c9c4e0 ld-config: Export android.hidl.memory@1.0-impl am: bd7503dae7
am: 6db67ddca3

Change-Id: Ifeda019991f85a45e4d938d80a82f2940c0a0952
2017-06-23 05:21:07 +00:00
Logan Chien
735a32e30e ld-config: Export android.hidl.memory@1.0-impl
am: fb2a4f0874

Change-Id: Ib23a91581514f275642cb05afddbfc5324bca3bb
2017-06-23 05:07:34 +00:00
Logan Chien
fb2a4f0874 ld-config: Export android.hidl.memory@1.0-impl
This commit exports android.hidl.memory@1.0-impl.so from default linker
namespace to vndk (VNDK-SP) linker namespace.  This fixes
libhidlmemory.so failure.

Note: Exposing android.hidl.memory@1.0-impl.so from default linker
namespace to vndk (VNDK-SP) linker namespace shall be fine because its
APIs are frozen and won't be changed in the future.

Note: android.hidl.memory@1.0-impl.so is NOT exported to sphal linker
namespace.

Bug: 35107583
Bug: 62778280
Test: Write a test SP-HAL lib which links libhidlmemory.so, load that
SP-HAL lib into system executable, and make sure mapMemory() works.
Test: sailfish boots w/o problems.

Merged-In: Ia36350dcf1f8c8dc6d7bf2c7a6ae65e0ebaef578
Merged-In: Iddb723558c3a814a905cd42797594a707bc651da
Change-Id: I69034595b2cd355e786ce7943fed7dddf1b12525
(cherry picked from commit bd7503dae7)
(cherry picked from commit 3251e582f2)
2017-06-22 20:13:01 +08:00
Logan Chien
bd7503dae7 ld-config: Export android.hidl.memory@1.0-impl
This commit exports android.hidl.memory@1.0-impl.so from default linker
namespace to vndk (VNDK-SP) linker namespace.  This fixes
libhidlmemory.so failure.

Note: Exposing android.hidl.memory@1.0-impl.so from default linker
namespace to vndk (VNDK-SP) linker namespace shall be fine because its
APIs are frozen and won't be changed in the future.

Note: android.hidl.memory@1.0-impl.so is NOT exported to sphal linker
namespace.

Bug: 35107583
Bug: 62778280
Test: Write a test SP-HAL lib which links libhidlmemory.so, load that
SP-HAL lib into system executable, and make sure mapMemory() works.
Test: sailfish boots w/o problems.

Change-Id: Ia36350dcf1f8c8dc6d7bf2c7a6ae65e0ebaef578
2017-06-22 20:12:21 +08:00
Logan Chien
34d0b91b15 ld-config: Add HIDL memory libs to VNDK-SP am: d7a6fb9383
am: 78daf5696d

Change-Id: I2f0d1f2d74acb74a9defb6ef0f7bec9c955152a4
2017-06-21 17:55:23 +00:00
Logan Chien
7b66b21773 ld-config: Add HIDL memory libs to VNDK-SP
This commit adds libhidlmemory.so and android.hidl.memory@1.0.so to the
exported libs of the `vndk` linker namespace (aka. VNDK-SP).  This is
necessary because some vendors' GLES implementation uses
libhidlmemory.so.  Check http://b/35107583#comment15 for the context.

Bug: 35107583
Test: sailfish boots

Merged-In: Idb5ba4ed4a89795e0e6105d55a84e7f6bbffff51
Change-Id: I1556b7499bd981af995f000519b7a314c70567d1
2017-06-21 20:15:36 +08:00
Logan Chien
d7a6fb9383 ld-config: Add HIDL memory libs to VNDK-SP
This commit adds libhidlmemory.so and android.hidl.memory@1.0.so to the
exported libs of the `vndk` linker namespace (aka. VNDK-SP).  This is
necessary because some vendors' GLES implementation uses
libhidlmemory.so.  Check http://b/35107583#comment15 for the context.

Bug: 35107583
Test: sailfish boots
Change-Id: Idb5ba4ed4a89795e0e6105d55a84e7f6bbffff51
2017-06-21 20:13:08 +08:00
Logan Chien
ea2719f9f1 ld-config: Add HIDL memory libs to VNDK-SP
This commit adds libhidlmemory.so and android.hidl.memory@1.0.so to the
exported libs of the `vndk` linker namespace (aka. VNDK-SP).  This is
necessary because some vendors' GLES implementation uses
libhidlmemory.so.  Check http://b/35107583#comment15 for the context.

Bug: 35107583
Test: sailfish boots

Merged-In: Idb5ba4ed4a89795e0e6105d55a84e7f6bbffff51
Merged-In: I1556b7499bd981af995f000519b7a314c70567d1
Change-Id: I5af7c954d432a2e8de6c6b744cedbada836bbd98
2017-06-21 20:10:56 +08:00
Jiyong Park
b4929b2194 Merge "Don't allow libui.so to RS drivers." into oc-dr1-dev am: 1a7a5419d0
am: 5e4da5195f

Change-Id: I4c495f24ed4bab5fbca4f0d6432f8612ba2c6132
2017-06-12 02:11:45 +00:00
Jiyong Park
9242f68c0d Don't allow libui.so to RS drivers.
libui.so is not VNDK-SP, so it must not be allowed to RS drivers.

Bug: 37550338
Test: camerascript app works well in 2017 pixel devices
Change-Id: I34971baebdc91f11935d1eb4ddd07d89d4c38958
2017-06-09 17:38:28 +09:00
Logan Chien
ef9a611bb7 Add libion.so to vndk-sp am: 5c880b948e
am: 60c9e4486b

Change-Id: If9947f17c2af1253bef9b2d8664deaba6a222e11
2017-06-07 16:04:28 +00:00
Logan Chien
184505597f Add libion.so to vndk-sp
This commit adds libion.so to VNDK-SP so that some vendor's
gralloc.${chipset}.so can run without problems.

Bug: 62280700
Test: Boots a device from our partners
Merged-In: I2bcfe40ed9342de6d81dd310313e984a2c64964b
Change-Id: Ib745dfe52107d792296426b097e13b7c7755d88c
2017-06-07 18:31:49 +08:00
Logan Chien
40624c5d1d Add libion.so to vndk-sp
This commit adds libion.so to VNDK-SP so that some vendor's
gralloc.${chipset}.so can run without problems.

Bug: 62280700
Test: Boots a device from our partners
Merged-In: Ib745dfe52107d792296426b097e13b7c7755d88c
Merged-In: I2bcfe40ed9342de6d81dd310313e984a2c64964b
Change-Id: If30657b93157a2abea29fadcdb0004b37ad9eaf2
2017-06-07 18:13:32 +08:00
Logan Chien
5c880b948e Add libion.so to vndk-sp
This commit adds libion.so to VNDK-SP so that some vendor's
gralloc.${chipset}.so can run without problems.

Bug: 62280700
Test: Boots a device from our partners
Change-Id: I2bcfe40ed9342de6d81dd310313e984a2c64964b
2017-06-07 18:09:37 +08:00
Jiyong Park
f01b52895d vndk: remove vendor/lib from the search path of the 'vndk' namespace
'vndk' namespace is the place for VNDK-SP libs. So /vendor/lib must be
removed from its search paths. It was there just because libhardware
(which is VNDK-SP) is loading HAL libs in vendor partition from there.
However this problem has been solved by modifying the libhardware so
that HAL libs are loaded from the 'sphal' namespace and not from the
current (the 'vndk') namespace.

Bug: 37731053
Test: sailfish builds and boots
Change-Id: Ia88934a975aa8811e05b5ba408e42d132f20f4e9
2017-06-07 17:37:33 +09:00
Logan Chien
948624faca Merge "Move libz to vndk-sp" 2017-05-24 02:19:41 +00:00
Jiyong Park
ee7da4f37d Allow vndk-sp to be extended by vendors
am: eb9694a2d1

Change-Id: I35e4a6f0f7a712e01923a9e1d3456c81d5c0367a
2017-05-17 16:52:13 +00:00
Jiyong Park
eb9694a2d1 Allow vndk-sp to be extended by vendors
Exteded vndk-sp should go to /vendor/lib/vndk-sp.

Bug: 37940694
Test: sailfish builds and boots
Test: manually copying a lib from /system/lib/vndk-sp to
/vendor/lib/vndk-sp. Check that the copied one in /vendor partition is
loaded instead of the original one.

Change-Id: Ia5dd6f35bd31d4a20a794bec148e1fc3c6d7b72b
2017-05-18 01:42:27 +09:00
Jiyong Park
c9c527f81f resolve merge conflicts of fbe942724 to oc-dev-plus-aosp
Test: I solemnly swear I tested this conflict resolution.
Merged-In: I137c17d55940b783eab6d0125bc4d26b96bcc2f2
Change-Id: I90c3ff7c82a9b53ce00057fd87cf227d5faf0975
2017-05-17 14:29:44 +09:00
Logan Chien
63226400f3 Move libz to vndk-sp
This commit moves libz.so from default namespace to vndk namespace.
Accodring to b/37617391, libz.so is not as stable as we thought, thus
it should be vndk-sp instead of ll-ndk.

Bug: 37617391
Test: sailfish builds, boots, no new dynamic linker errors in log
Change-Id: I3922895a169303c33914a8a0f4b50cb993a724c9
2017-05-15 13:41:19 +08:00
Jiyong Park
15d7483bb7 add libvndksupport.so to ll-ndk
libvndksupport.so is a new member of ll-ndk.

Bug: 37323945
Test: sailfish builds and boots

Merged-In: Ic5db48292a30a6face7f263d939f27a0760240b1
Change-Id: Ic5db48292a30a6face7f263d939f27a0760240b1
(cherry picked from commit 7000859b7c)
2017-05-15 11:35:34 +09:00
Jiyong Park
abaab6ff03 libbacktrace is VNDK-SP
libbacktrace and its dependents are now VNDK-SP. Since they are in
/vendor/lib/vndk-sp directory, they are accessible directly from the
vndk namespace. Therefore, libbacktrace is removed from the exported
shared libs list of the default namespace.

Bug: 37413104
Test: sailfish builds and boots
Merged-In: I137c17d55940b783eab6d0125bc4d26b96bcc2f2
Change-Id: I137c17d55940b783eab6d0125bc4d26b96bcc2f2
(cherry picked from commit b2a4b8cd18)
2017-05-15 11:35:34 +09:00
Jiyong Park
7000859b7c add libvndksupport.so to ll-ndk
libvndksupport.so is a new member of ll-ndk.

Bug: 37323945
Test: sailfish builds and boots

Change-Id: Ic5db48292a30a6face7f263d939f27a0760240b1
2017-05-11 15:09:02 +09:00
Jiyong Park
b2a4b8cd18 libbacktrace is VNDK-SP
libbacktrace and its dependents are now VNDK-SP. Since they are in
/vendor/lib/vndk-sp directory, they are accessible directly from the
vndk namespace. Therefore, libbacktrace is removed from the exported
shared libs list of the default namespace.

Bug: 37413104
Test: sailfish builds and boots
Change-Id: I137c17d55940b783eab6d0125bc4d26b96bcc2f2
2017-05-08 10:40:14 +09:00
Steven Moreland
55337fd5cc Remove redundant dependencies
android.hidl.base@1.0 and android.hidl.manager@1.0 are built into libhidltransport.

Test: boot internal marlin
Bug: 33276472
Change-Id: I32dc22607f2df5c71555161178865900b35fc75b
(cherry picked from commit fa5ea6a81a)
2017-05-04 15:25:02 +00:00
TreeHugger Robot
04df8f456c Merge "Remove redundant dependencies" 2017-05-04 08:56:29 +00:00
Steven Moreland
fa5ea6a81a Remove redundant dependencies
android.hidl.base@1.0 and android.hidl.manager@1.0 are built into libhidltransport.

Test: boot internal marlin
Bug: 33276472
Change-Id: I32dc22607f2df5c71555161178865900b35fc75b
2017-05-03 10:24:58 -07:00