Index: build/java_apk.gypi |
diff --git a/build/java_apk.gypi b/build/java_apk.gypi |
index 4b0046b1bbccd9099fc09152159585448dbb2eae..c8609461b6214538b2d7fd272c506f7631b24934 100644 |
--- a/build/java_apk.gypi |
+++ b/build/java_apk.gypi |
@@ -48,6 +48,8 @@ |
# RELRO section of the native libraries between the different processes. |
# load_library_from_zip_file - When using the dynamic linker, load the library |
# directly out of the zip file. |
+# use_relocation_packer - Enable relocation packing. Relies on the chromium |
+# linker, so use_chromium_linker must also be enabled. |
# enable_chromium_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 chromium_linker_test_apk target!! |
@@ -95,7 +97,9 @@ |
'instr_stamp': '<(intermediate_dir)/instr.stamp', |
'jar_stamp': '<(intermediate_dir)/jar.stamp', |
'obfuscate_stamp': '<(intermediate_dir)/obfuscate.stamp', |
+ 'pack_arm_relocations_stamp': '<(intermediate_dir)/pack_arm_relocations.stamp', |
'strip_stamp': '<(intermediate_dir)/strip.stamp', |
+ 'stripped_libraries_dir': '<(SHARED_INTERMEDIATE_DIR)/stripped_libraries', |
'classes_dir': '<(intermediate_dir)/classes/2', |
'javac_includes': [], |
'jar_excluded_classes': [], |
@@ -127,6 +131,7 @@ |
'native_lib_version_name%': '', |
'use_chromium_linker%' : 0, |
'load_library_from_zip_file%' : 0, |
+ 'use_relocation_packer%' : 0, |
'enable_chromium_linker_tests%': 0, |
'is_test_apk%': 0, |
}, |
@@ -151,11 +156,13 @@ |
'native_lib_target%': '', |
'native_lib_version_name%': '', |
'use_chromium_linker%' : 0, |
- 'enable_chromium_linker_tests%': 0, |
'load_library_from_zip_file%' : 0, |
+ 'use_relocation_packer%' : 0, |
+ 'enable_chromium_linker_tests%': 0, |
'emma_instrument%': '<(emma_instrument)', |
'apk_package_native_libs_dir': '<(apk_package_native_libs_dir)', |
'unsigned_standalone_apk_path': '<(unsigned_standalone_apk_path)', |
+ 'libchromium_android_linker': 'libchromium_android_linker.>(android_product_extension)', |
'extra_native_libs': [], |
}, |
# Pass the jar path to the apk's "fake" jar target. This would be better as |
@@ -227,7 +234,7 @@ |
['use_chromium_linker == 1', { |
'variables': { |
'linker_input_libraries': [ |
- '<(SHARED_LIB_DIR)/libchromium_android_linker.>(android_product_extension)', |
+ '<(SHARED_LIB_DIR)/<(libchromium_android_linker)', |
], |
} |
}, { |
@@ -332,7 +339,7 @@ |
'action_name': 'strip_native_libraries', |
'variables': { |
'ordered_libraries_file%': '<(ordered_libraries_file)', |
- 'stripped_libraries_dir': '<(libraries_source_dir)', |
+ 'stripped_libraries_dir%': '<(stripped_libraries_dir)', |
'input_paths': [ |
'<@(native_libs_paths)', |
'<@(extra_native_libs)', |
@@ -341,6 +348,32 @@ |
}, |
'includes': ['../build/android/strip_native_libraries.gypi'], |
}, |
+ { |
+ 'action_name': 'pack_arm_relocations', |
+ 'variables': { |
+ 'conditions': [ |
+ ['use_chromium_linker == 1 and use_relocation_packer == 1', { |
+ 'enable_packing': 1, |
+ }, { |
+ 'enable_packing': 0, |
+ }], |
+ ], |
+ 'exclude_packing_list': [ |
+ '<(libchromium_android_linker)', |
+ ], |
+ 'ordered_libraries_file%': '<(ordered_libraries_file)', |
+ 'stripped_libraries_dir%': '<(stripped_libraries_dir)', |
+ 'packed_libraries_dir': '<(libraries_source_dir)', |
+ 'input_paths': [ |
+ '<(strip_stamp)', |
+ ], |
+ 'stamp': '<(pack_arm_relocations_stamp)', |
+ }, |
+ 'dependencies': [ |
+ 'strip_native_libraries', |
+ ], |
+ 'includes': ['../build/android/pack_arm_relocations.gypi'], |
+ }, |
], |
'conditions': [ |
['gyp_managed_install == 1', { |