diff options
author | simonb@chromium.org <simonb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-03 17:20:56 +0000 |
---|---|---|
committer | simonb@chromium.org <simonb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-03 17:20:56 +0000 |
commit | c635e28a3c098183e603a29b34da04aee90076bd (patch) | |
tree | 3650ad6ef20029568bd3caeb669188835e03fb34 /build/java_apk.gypi | |
parent | 24641700af8733b212ac1b8f55d2982227c6158a (diff) | |
download | chromium_src-c635e28a3c098183e603a29b34da04aee90076bd.zip chromium_src-c635e28a3c098183e603a29b34da04aee90076bd.tar.gz chromium_src-c635e28a3c098183e603a29b34da04aee90076bd.tar.bz2 |
Add gyp machinery to build with packed ARM relative relocations.
Add gypi and python files to support packing ARM relative relocations
during the build process.
Define a use_relocation_packer gyp variable to turn ARM relocation
packing on and off (currently set to 0).
BUG=385553
Review URL: https://codereview.chromium.org/358863002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281286 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'build/java_apk.gypi')
-rw-r--r-- | build/java_apk.gypi | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/build/java_apk.gypi b/build/java_apk.gypi index 4b0046b1..c860946 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', { |