Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Unified Diff: build/config/android/rules.gni

Issue 650933003: GN: make relocation packing work (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gn-parse-error
Patch Set: rebase Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/config/android/config.gni ('k') | tools/relocation_packer/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/config/android/rules.gni
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index 76fda46bce3b2bfd517c63dbd0aff5dafa8e91d0..2db732acd73d9a99c40ac406266a22ce14444fac 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -6,10 +6,10 @@ import("//base/android/linker/config.gni")
import("//build/config/android/config.gni")
import("//build/config/android/internal_rules.gni")
import("//tools/grit/grit_rule.gni")
+import("//tools/relocation_packer/config.gni")
assert(is_android)
-
# Declare a jni target
#
# This target generates the native jni bindings for a set of .java files.
@@ -958,9 +958,6 @@ template("android_apk") {
}
_load_library_from_apk = false
- if (defined(invoker.load_library_from_apk)) {
- _load_library_from_apk = invoker.load_library_from_apk
- }
if (defined(invoker.native_libs)) {
_use_chromium_linker = false
@@ -969,6 +966,21 @@ template("android_apk") {
chromium_linker_supported)
}
+ if (defined(invoker.load_library_from_apk) &&
+ invoker.load_library_from_apk) {
+ _load_library_from_apk = true
+ assert(_use_chromium_linker, "Loading library from the apk requires use" +
+ " of the Chromium linker.")
+ }
+
+ _enable_relocation_packing = false
+ if (defined(invoker.enable_relocation_packing) &&
+ invoker.enable_relocation_packing) {
+ _enable_relocation_packing = relocation_packing_supported
+ assert(_use_chromium_linker, "Relocation packing requires use of the" +
+ " Chromium linker.")
+ }
+
_native_libs = invoker.native_libs
_native_libs_dir = base_path + "/libs"
@@ -1090,19 +1102,48 @@ template("android_apk") {
}
if (_native_libs != []) {
- copy_ex("${_template_name}__prepare_native") {
- clear_dir = true
+ action("${_template_name}__prepare_native") {
+ script = "//build/android/gyp/pack_arm_relocations.py"
+ packed_libraries_dir = "$_native_libs_dir/$android_app_abi"
+ depfile = "$target_gen_dir/$target_name.d"
+ outputs = [
+ depfile
+ ]
inputs = [
build_config
]
- dest = "$_native_libs_dir/$android_app_abi"
+ deps = []
+ skip_packing_list = [
+ "gdbserver",
+ "libchromium_android_linker.so",
+ ]
+
+ enable_packing_arg = 0
+ if (_enable_relocation_packing) {
+ enable_packing_arg = 1
+ deps += [
+ relocation_packer_target
+ ]
+ }
+
args = [
- "--files=@FileArg(${_rebased_build_config}:native:libraries)",
+ "--depfile", rebase_path(depfile, root_build_dir),
+ "--enable-packing=$enable_packing_arg",
+ "--has-relocations-with-addends=$relocations_have_addends",
+ "--exclude-packing-list=$skip_packing_list",
+ "--android-pack-relocations", rebase_path(relocation_packer_exe, root_build_dir),
+ "--android-objcopy", rebase_path(android_objcopy, root_build_dir),
+ "--stripped-libraries-dir", rebase_path(root_build_dir, root_build_dir),
+ "--packed-libraries-dir", rebase_path(packed_libraries_dir, root_build_dir),
+ "--libraries=@FileArg(${_rebased_build_config}:native:libraries)",
+ "--clear-dir"
]
+
if (is_debug) {
- rebased_gdbserver = rebase_path(android_gdbserver, root_build_dir)
+ rebased_gdbserver = rebase_path([ android_gdbserver ], root_build_dir)
+ inputs += [ android_gdbserver ]
args += [
- "--files=[\"$rebased_gdbserver\"]"
+ "--libraries=$rebased_gdbserver"
]
}
}
« no previous file with comments | « build/config/android/config.gni ('k') | tools/relocation_packer/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698