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

Side by Side Diff: tools/relocation_packer/BUILD.gn

Issue 650933003: GN: make relocation packing work (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gn-parse-error
Patch Set: Extract some relocation packer config to //tools/relocation_packer/config.gni 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 unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import("config.gni")
6
7 assert(relocation_packing_supported)
8
9 if (target_arch == "arm") {
10 target_define = "TARGET_ARM"
11 } else if (target_arch == "arm64") {
12 target_define = "TARGET_ARM64"
13 }
simonb (inactive) 2014/10/20 13:06:09 Would it make any sense to move target_define sett
14
15 if (current_toolchain == host_toolchain) {
16 # GYP: //tools/relocation_packer/relocation_packer.gyp:lib_relocation_packer
17 source_set("lib_relocation_packer") {
18 defines = [ target_define ]
19 deps = [ "//third_party/elfutils:libelf" ]
20 configs -= [ "//build/config/compiler:chromium_code" ]
21 configs += [ "//build/config/compiler:no_chromium_code" ]
22 sources = [
23 "src/debug.cc",
24 "src/delta_encoder.cc",
25 "src/elf_file.cc",
26 "src/leb128.cc",
27 "src/packer.cc",
28 "src/sleb128.cc",
29 "src/run_length_encoder.cc",
30 ]
31 }
32
33 # GYP: //tools/relocation_packer/relocation_packer.gyp:relocation_packer
34 executable("relocation_packer") {
35 defines = [ target_define ]
36 deps = [
37 ":lib_relocation_packer",
38 "//third_party/elfutils:libelf",
39 ]
40 sources = [ "src/main.cc" ]
41 }
42
43 # GYP: //tools/relocation_packer/relocation_packer.gyp:relocation_packer_unitt ests
44 test("relocation_packer_unittests") {
45 sources = [
46 "src/debug_unittest.cc",
47 "src/delta_encoder_unittest.cc",
48 "src/elf_file_unittest.cc",
49 "src/leb128_unittest.cc",
50 "src/packer_unittest.cc",
51 "src/sleb128_unittest.cc",
52 "src/run_length_encoder_unittest.cc",
53 "src/run_all_unittests.cc",
54 ]
55 rebased_test_data = rebase_path("test_data", root_build_dir)
56 data = [
57 "test_data/elf_file_unittest_relocs_arm32.so",
58 "test_data/elf_file_unittest_relocs_arm32_packed.so",
59 "test_data/elf_file_unittest_relocs_arm64.so",
60 "test_data/elf_file_unittest_relocs_arm64_packed.so",
61 ]
62 defines = [
63 target_define,
64 "INTERMEDIATE_DIR=\"$rebased_test_data\""
65 ]
66 include_dirs = [ "//" ]
67 deps = [
68 ":lib_relocation_packer",
69 ":relocation_packer_test_data",
70 "//testing:gtest",
71 ]
72 }
73 }
74
75 if (current_toolchain == default_toolchain &&
76 (target_arch == "arm" || target_arch == "arm64")) {
77 # Targets to build test data. These participate only in building test
78 # data for use with elf_file_unittest.cc, and are not part of the main
79 # relocation packer build. Unit test data files are checked in to the
80 # source tree as 'golden' data, and are not generated 'on the fly' by
81 # the build.
82 #
83 # See test_data/generate_elf_file_unittest_relocs.sh for instructions.
84
85 # GYP: //tools/relocation_packer/relocation_packer.gyp:relocation_packer_test_ data
86 shared_library("relocation_packer_test_data") {
87 cflags = [ "-O0", "-g0" ]
88 sources = [
89 "test_data/elf_file_unittest_relocs.cc"
90 ]
91 }
92
93 # GYP: //tools/relocation_packer/relocation_packer.gyp:relocation_packer_unitt ests_test_data
94 action("relocation_packer_unittests_test_data") {
95 script = "test_data/generate_elf_file_unittest_relocs.py"
96 test_file = "$root_build_dir/librelocation_packer_test_data.so"
97 if (target_arch == "arm") {
98 added_section = ".android.rel.dyn"
99 packed_output = "elf_file_unittest_relocs_arm32_packed.so"
100 unpacked_output = "elf_file_unittest_relocs_arm32.so"
101 } else if (target_arch == "arm64") {
102 added_section = ".android.rela.dyn"
103 packed_output = "elf_file_unittest_relocs_arm64_packed.so"
104 unpacked_output = "elf_file_unittest_relocs_arm64.so"
105 } else {
106 assert(false, "Unsupported target arch for relocation packer")
107 }
108
109 packed_output = "$root_build_dir/$packed_output"
110 unpacked_output = "$root_build_dir/$unpacked_output"
111
112 inputs = [
113 test_file,
114 ]
115
116 deps = [
117 ":relocation_packer_test_data",
118 ":relocation_packer($host_toolchain)",
119 ]
120
121 outputs = [
122 packed_output,
123 unpacked_output,
124 ]
125
126 args = [
127 "--android-pack-relocations", rebase_path(relocation_packer_exe, root_buil d_dir),
128 "--android-objcopy", rebase_path(android_objcopy, root_build_dir),
129 "--added-section=$added_section",
130 "--test-file", rebase_path(test_file, root_build_dir),
131 "--packed-output", rebase_path(packed_output, root_build_dir),
132 "--unpacked-output", rebase_path(unpacked_output, root_build_dir),
133 ]
134 }
135 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698