Index: build/java_apk.gypi |
diff --git a/build/java_apk.gypi b/build/java_apk.gypi |
index 81984472af783bf1c63be267c3f08880ceeb777d..de54c76e77f9518438a2f6cbf43449009282d2d6 100644 |
--- a/build/java_apk.gypi |
+++ b/build/java_apk.gypi |
@@ -48,7 +48,11 @@ |
# strings.xml files, if any. |
# library_manifest_paths'- Paths to additional AndroidManifest.xml files from |
# libraries. |
- |
+# use_content_linker - Enable the content dynamic linker that allows sharing the |
+# RELRO section of the native libraries between the different processes. |
+# enable_content_linker_tests - Enable the content dynamic linker test support |
+# code. This allows a test APK to inject a Linker.TestRunner instance at |
+# runtime. Should only be used by the content_linker_test_apk target!! |
{ |
'variables': { |
'additional_input_paths': [], |
@@ -116,6 +120,8 @@ |
'variables': { |
'variables': { |
'native_lib_target%': '', |
+ 'use_content_linker%': 0, |
+ 'enable_content_linker_tests%': 0, |
}, |
'conditions': [ |
['gyp_managed_install == 1 and native_lib_target != ""', { |
@@ -131,6 +137,8 @@ |
], |
}, |
'native_lib_target%': '', |
+ 'use_content_linker%': 0, |
+ 'enable_content_linker_tests%': 0, |
'emma_instrument': '<(emma_coverage)', |
'apk_package_native_libs_dir': '<(apk_package_native_libs_dir)', |
'unsigned_standalone_apk_path': '<(unsigned_standalone_apk_path)', |
@@ -164,6 +172,11 @@ |
'<(DEPTH)/build/android/setup.gyp:copy_system_libraries', |
], |
}], |
+ ['use_content_linker == 1', { |
+ 'dependencies': [ |
+ '<(DEPTH)/content/content.gyp:content_android_linker', |
+ ], |
+ }], |
['native_lib_target != ""', { |
'variables': { |
'compile_input_paths': [ '<(native_libraries_java_stamp)' ], |
@@ -190,9 +203,23 @@ |
'actions': [ |
{ |
'variables': { |
+ 'conditions': [ |
+ ['use_content_linker == 1', { |
+ 'variables': { |
+ 'linker_input_libraries': [ |
+ '<(SHARED_LIB_DIR)/libcontent_android_linker.>(android_product_extension)', |
+ ], |
+ } |
+ }, { |
+ 'variables': { |
+ 'linker_input_libraries': [], |
+ }, |
+ }], |
+ ], |
'input_libraries': [ |
'<@(native_libs_paths)', |
'<@(extra_native_libs)', |
+ '<@(linker_input_libraries)', |
], |
}, |
'includes': ['../build/android/write_ordered_libraries.gypi'], |
@@ -217,6 +244,36 @@ |
}, |
{ |
'action_name': 'native_libraries_<(_target_name)', |
+ 'variables': { |
+ 'conditions': [ |
+ ['use_content_linker == 1', { |
+ 'variables': { |
+ 'linker_gcc_preprocess_defines': [ |
+ '--defines', 'ENABLE_CONTENT_LINKER', |
+ ], |
+ } |
+ }, { |
+ 'variables': { |
+ 'linker_gcc_preprocess_defines': [], |
+ }, |
+ }], |
+ ['enable_content_linker_tests == 1', { |
+ 'variables': { |
+ 'linker_tests_gcc_preprocess_defines': [ |
+ '--defines', 'ENABLE_CONTENT_LINKER_TESTS', |
+ ], |
+ } |
+ }, { |
+ 'variables': { |
+ 'linker_tests_gcc_preprocess_defines': [], |
+ }, |
+ }], |
+ ], |
+ 'gcc_preprocess_defines': [ |
+ '<@(linker_gcc_preprocess_defines)', |
+ '<@(linker_tests_gcc_preprocess_defines)', |
+ ], |
+ }, |
'message': 'Creating NativeLibraries.java for <(_target_name).', |
'inputs': [ |
'<(DEPTH)/build/android/gyp/util/build_utils.py', |
@@ -233,6 +290,7 @@ |
'--output=<(native_libraries_java_file)', |
'--template=<(native_libraries_template)', |
'--stamp=<(native_libraries_java_stamp)', |
+ '<@(gcc_preprocess_defines)', |
], |
}, |
{ |