| 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', { | 
|  |