summaryrefslogtreecommitdiff
path: root/libnativeloader/native_loader.cpp
AgeCommit message (Collapse)Author
2016-02-29Fix locking of libnativeloaderDimitry Ivanov
This commit fixes race condition introduced in d047c925af62e1fe28fcd1c1940df4afe18d458a Bug: http://b/27189432 Bug: http://b/22548808 Change-Id: I5d94f130937f18d3443878b3521715a8f87427e0
2016-02-26Added function to explicitly initialize a namespaceDimitry Ivanov
This change replaces lazy get-or-create logic for linker namespaces with the explicit one. ApplicationLoaders.getClassLoader(..) is now resposible for the namespace initialization for PathClassLoaders. Bug: http://b/27189432 Bug: http://b/22548808 Change-Id: Ife987c3ca1db33a47c20f363a5ed61512be8b5a7 (cherry picked from commit d047c925af62e1fe28fcd1c1940df4afe18d458a)
2016-02-25Added function to explicitly initialize a namespaceDimitry Ivanov
This change replaces lazy get-or-create logic for linker namespaces with the explicit one. ApplicationLoaders.getClassLoader(..) is now resposible for the namespace initialization for PathClassLoaders. Bug: http://b/27189432 Bug: http://b/22548808 Change-Id: Ife987c3ca1db33a47c20f363a5ed61512be8b5a7
2016-02-24Add PreloadPublicNativeLibraries functionDimitry Ivanov
Shift responsibility of preloading native libraries to the user of the library. This lets applications that do not use jni but depend on libnative_loader.so to avoid unnecessary preloads of public libraries which could be expensive. Bug: http://b/27245894 Change-Id: I12a8100de5da639c068769bca21ecebff2b2d538 (cherry picked from commit 426799d77014888315233253e96277bef13158eb)
2016-02-24Add PreloadPublicNativeLibraries functionDimitry Ivanov
Shift responsibility of preloading native libraries to the user of the library. This lets applications that do not use jni but depend on libnative_loader.so to avoid unnecessary preloads of public libraries which could be expensive. Bug: http://b/27245894 Change-Id: I12a8100de5da639c068769bca21ecebff2b2d538
2016-02-24Merge "native_loader: add libvulkan.so to public native library list" into ↵Jesse Hall
nyc-dev
2016-02-23native_loader: add libvulkan.so to public native library listJesse Hall
Change-Id: I2228af5ec4b815631a9c5ca745718807d58028a3
2016-02-23nativeloader: Export FindNamespaceByClassLoaderDimitry Ivanov
Bug: http://b/27189432 Change-Id: Ib80dcce949276ee620f601c47b20f783708e8e85 (cherry picked from commit 0cd10d83e4e14300d03a60f28547b90d0c805579)
2016-02-23nativeloader: refactor FindNamespaceByClassLoader methodDimitry Ivanov
FindNamespaceByClassLoader returns android_namespace_t* to make it suitable for exporting this functionality. Bug: http://b/27189432 Change-Id: Ifef3de753192178e0184fb114596fe956fde2826 (cherry picked from commit 34fa704df45c5f74aeb5230e4bf3930585cf32fb)
2016-02-22nativeloader: Export FindNamespaceByClassLoaderDimitry Ivanov
Bug: http://b/27189432 Change-Id: Ib80dcce949276ee620f601c47b20f783708e8e85
2016-02-22nativeloader: refactor FindNamespaceByClassLoader methodDimitry Ivanov
FindNamespaceByClassLoader returns android_namespace_t* to make it suitable for exporting this functionality. Bug: http://b/27189432 Change-Id: Ifef3de753192178e0184fb114596fe956fde2826
2016-02-17Limit libart.so visibility to apps targeting <= MDimitry Ivanov
Add libart.so to the list of public libraries only for apps targeting android M and below. Bug: http://b/27210062 Bug: http://b/26436837 Change-Id: I1ed3b0335a343044a76273741ea8770dcce12ebe
2016-02-11Preload public native librariesDimitry Ivanov
Preload libraries needed by the public namespace at the earlier stage. This saves time on InitPublicNamespace and saves memory because the libraries are linked before zygote fork. Bug: http://b/26409579 Change-Id: I59153a4180b930f31b542d8d2cb17b5d63c36774 (cherry picked from commit d68c8e9f84557484ef3e8a3ee03398d22f109fa8)
2016-02-11Preload public native librariesDimitry Ivanov
Preload libraries needed by the public namespace at the earlier stage. This saves time on InitPublicNamespace and saves memory because the libraries are linked before zygote fork. Bug: http://b/26409579 Change-Id: I59153a4180b930f31b542d8d2cb17b5d63c36774
2016-02-02Merge "Include icu4c libraries to the list of public libs" am: 17e33647f0Dimitry Ivanov
am: 819da66bec * commit '819da66bec28c31d564ba695d4d32f1a4727cad1': Include icu4c libraries to the list of public libs
2016-02-02Include icu4c libraries to the list of public libsDimitry Ivanov
Note that with this change the linker will ignore icu libraries provided by an app because public libraries are always provided by system. At this point it does not affect any apps because before Marshmallow all of them were getting platform version of icu4c libs anyways (they will be getting their own copy of the library only in Marshmallow release). Bug: http://b/26217329 Bug: http://b/26929349 Change-Id: I681cab43c9f28ec22319d9f0424bd3df00743a5f
2016-01-26Add libcamera2ndk.so to the list of public librariesDimitry Ivanov
Bug: http://b/23012001 Change-Id: If5bfd9ea15fcfe508aee4731d7f84fe517bfb43e
2016-01-14Merge "Add libRS.so to the list of public libraries" am: ebe04a9b89Dimitry Ivanov
am: 108eaa1429 * commit '108eaa1429ec7cffd5aa38a97674fb3565ad581e': Add libRS.so to the list of public libraries
2016-01-13Add libRS.so to the list of public librariesDimitry Ivanov
Bug: http://b/26509995 Change-Id: I8c0ae3629928171d229a901cfc997780665e3ae8
2016-01-12Merge "Make libwebviewchromium_plat_support.so public" am: cd60e4bdd6Dimitry Ivanov
am: ce292ad06c * commit 'ce292ad06ccd38beaa2d7bf8add13dbdf01f91e5': Make libwebviewchromium_plat_support.so public
2016-01-11Add libart.so to the list of public librariesDimitry Ivanov
This is a temporary workaround for apps relying on libart internal state. Bug: http://b/26436837 Change-Id: Ibd6a766c3c8edebe885d897565a72a7a407828c3
2016-01-08Make libwebviewchromium_plat_support.so publicDimitry Ivanov
Add libwebviewchromium_plat_support.so to the list of public libraries. Bug: http://b/26461431 Change-Id: I958a1182198bf59d9b6fc818953212ce505d6bdd
2015-12-31Revert "Temporary disable linker-namespaces"Dimitry Ivanov
This reverts commit c18ac7cd2bc6214745b91d74e249962ce9ff7d26.
2015-12-19Add parameter for shared namespacesDimitry Ivanov
Shared namespaces are used for bundled app classloaders. Bug: http://b/22548808 Bug: http://b/26165097 Change-Id: I163033f70c50ef9ddb4164676c033ab30748964e (cherry picked from commit ef4639c1a5159726797dec719d84e3a88e96f8a0)
2015-12-11Temporary disable linker-namespacesDimitry Ivanov
Bug: http://b/26164393 Change-Id: If6277407a6a5a4da9e3ad01dc45f57a7fc9954e4
2015-12-09Apply permitted path to the classloader-namespaceDimitry Ivanov
Bug: http://b/25853516 Bug: http://b/22548808 Change-Id: I283e6ee8d743bc3ab41aab9f36af0abbe729943f
2015-12-08Track rename of base/ to android-base/.Elliott Hughes
Change-Id: I974d67b6568e913bfb7700d952be55b4073388ee
2015-12-07Native loader as a separate libraryDimitry Ivanov
Extracted native loader to separate library in order to be able to reuse it for NativeActivities related native code in libandroid_runtime.so Bug: http://b/22548808 Change-Id: Ibcf5ddcdc5aba22e32e4b72887840e9c171c1986