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

Side by Side Diff: build/toolchain/nacl/BUILD.gn

Issue 1341143002: Refactor NaCl IRT toolchains, use arm-nacl-clang (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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
« no previous file with comments | « build/config/compiler/BUILD.gn ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2014 The Native Client Authors. All rights reserved. 1 # Copyright (c) 2014 The Native Client Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/sysroot.gni") 5 import("//build/config/sysroot.gni")
6 import("//build/toolchain/nacl_toolchain.gni") 6 import("//build/toolchain/nacl_toolchain.gni")
7 7
8 nacl_toolchain_dir = rebase_path("//native_client/toolchain", root_build_dir) 8 nacl_toolchain_dir = rebase_path("//native_client/toolchain", root_build_dir)
9 os_toolchain_dir = "${nacl_toolchain_dir}/${current_os}_x86" 9 os_toolchain_dir = "${nacl_toolchain_dir}/${current_os}_x86"
10 10
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 toolchain_cpu = "x64" 132 toolchain_cpu = "x64"
133 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/x86_64-nacl-" 133 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/x86_64-nacl-"
134 is_clang = true 134 is_clang = true
135 135
136 cc = toolprefix + "clang" 136 cc = toolprefix + "clang"
137 cxx = toolprefix + "clang++" 137 cxx = toolprefix + "clang++"
138 ar = toolprefix + "ar" 138 ar = toolprefix + "ar"
139 ld = cxx 139 ld = cxx
140 } 140 }
141 141
142 link_irt = rebase_path("//native_client/build/link_irt.py", root_build_dir) 142 template("nacl_irt_toolchain") {
143 toolchain_cpu = target_name
144 assert(defined(invoker.toolchain_tuple), "Must define toolchain_tuple")
143 145
144 nacl_toolchain("irt_x86") {
145 toolchain_package = "pnacl_newlib" 146 toolchain_package = "pnacl_newlib"
146 toolchain_revision = pnacl_newlib_rev 147 toolchain_revision = pnacl_newlib_rev
147 toolchain_cpu = "x86" 148 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/" +
148 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/i686-nacl-" 149 invoker.toolchain_tuple + "-"
149 is_clang = true
150 150
151 cc = toolprefix + "clang" 151 link_irt = rebase_path("//native_client/build/link_irt.py", root_build_dir)
152 cxx = toolprefix + "clang++"
153 ar = toolprefix + "ar"
154 readelf = toolprefix + "readelf"
155 152
156 tls_edit_label = 153 tls_edit_label =
157 "//native_client/src/tools/tls_edit:tls_edit($host_toolchain)" 154 "//native_client/src/tools/tls_edit:tls_edit($host_toolchain)"
158 host_toolchain_out_dir = 155 host_toolchain_out_dir =
159 rebase_path(get_label_info(tls_edit_label, "root_out_dir"), 156 rebase_path(get_label_info(tls_edit_label, "root_out_dir"),
160 root_build_dir) 157 root_build_dir)
158 tls_edit = "${host_toolchain_out_dir}/tls_edit"
161 159
162 # Some IRT implementations (notably, Chromium's) contain C++ code, 160 nacl_toolchain("irt_" + toolchain_cpu) {
163 # so we need to link w/ the C++ linker. 161 is_clang = true
164 ld = "${python_path} ${link_irt} --tls-edit=${host_toolchain_out_dir}/tls_edit --link-cmd=${cxx} --readelf-cmd=${readelf}" 162 cc = toolprefix + "clang"
163 cxx = toolprefix + "clang++"
164 ar = toolprefix + "ar"
165 readelf = toolprefix + "readelf"
165 166
166 # TODO(ncbray): depend on link script 167 # Some IRT implementations (notably, Chromium's) contain C++ code,
167 deps = [ 168 # so we need to link w/ the C++ linker.
168 tls_edit_label, 169 ld = "${python_path} ${link_irt} --tls-edit=${tls_edit} --link-cmd=${cxx} -- readelf-cmd=${readelf}"
169 ] 170
171 # TODO(ncbray): depend on link script
172 deps = [
173 tls_edit_label,
174 ]
175 }
170 } 176 }
171 177
172 nacl_toolchain("irt_x64") { 178 nacl_irt_toolchain("x86") {
173 toolchain_package = "pnacl_newlib" 179 toolchain_tuple = "i686-nacl"
174 toolchain_revision = pnacl_newlib_rev
175 toolchain_cpu = "x64"
176 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/x86_64-nacl-"
177 is_clang = true
178
179 cc = toolprefix + "clang"
180 cxx = toolprefix + "clang++"
181 ar = toolprefix + "ar"
182 readelf = toolprefix + "readelf"
183
184 # Some IRT implementations (notably, Chromium's) contain C++ code,
185 # so we need to link w/ the C++ linker.
186 ld = "${python_path} ${link_irt} --tls-edit=tls_edit --link-cmd=${cxx} --reade lf-cmd=${readelf}"
187
188 # TODO(ncbray): depend on link script
189 deps = [
190 "//native_client/src/tools/tls_edit:tls_edit($host_toolchain)",
191 ]
192 } 180 }
193 181
194 # Uses newlib to match the Chrome build. 182 nacl_irt_toolchain("x64") {
195 nacl_toolchain("irt_arm") { 183 toolchain_tuple = "x86_64-nacl"
196 toolchain_package = "nacl_arm_newlib" 184 }
197 toolchain_revision = nacl_arm_newlib_rev
198 toolchain_cpu = "arm"
199 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/arm-nacl-"
200 is_clang = false
201 185
202 cc = toolprefix + "gcc" 186 nacl_irt_toolchain("arm") {
203 cxx = toolprefix + "g++" 187 toolchain_tuple = "arm-nacl"
204 ar = toolprefix + "ar"
205 readelf = toolprefix + "readelf"
206
207 # Some IRT implementations (notably, Chromium's) contain C++ code,
208 # so we need to link w/ the C++ linker.
209 ld = "${python_path} ${link_irt} --tls-edit=tls_edit --link-cmd=${cxx} --reade lf-cmd=${readelf}"
210
211 # TODO(ncbray): depend on link script
212 deps = [
213 "//native_client/src/tools/tls_edit:tls_edit($host_toolchain)",
214 ]
215 } 188 }
OLDNEW
« no previous file with comments | « build/config/compiler/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698