OLD | NEW |
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2013 The Chromium 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 toolchain("x86_newlib") { | 5 toolchain("x86_newlib") { |
6 toolprefix = "gen/sdk/toolchain/linux_x86_newlib/bin/x86_64-nacl-" | 6 toolprefix = "gen/sdk/toolchain/linux_x86_newlib/bin/x86_64-nacl-" |
7 cc = toolprefix + "gcc" | 7 cc = toolprefix + "gcc" |
8 cxx = toolprefix + "g++" | 8 cxx = toolprefix + "g++" |
9 ld = toolprefix + "g++" | 9 ld = toolprefix + "g++" |
10 | 10 |
11 tool("cc") { | 11 tool("cc") { |
12 command = | 12 command = "$cc -MMD -MF \$out.d \$defines \$includes \$cflags \$cflags_c -c
\$in -o \$out" |
13 "$cc -MMD -MF \$out.d \$defines \$includes \$cflags \$cflags_c -c \$in -
o \$out" | |
14 description = "CC(NaCl x86 Newlib) \$out" | 13 description = "CC(NaCl x86 Newlib) \$out" |
15 depfile = "\$out.d" | 14 depfile = "\$out.d" |
16 depsformat = "gcc" | 15 depsformat = "gcc" |
17 } | 16 } |
18 tool("cxx") { | 17 tool("cxx") { |
19 # cflags_pch_cc | 18 # cflags_pch_cc |
20 command = | 19 command = "$cxx -MMD -MF \$out.d \$defines \$includes \$cflags \$cflags_cc -
c \$in -o \$out" |
21 "$cxx -MMD -MF \$out.d \$defines \$includes \$cflags \$cflags_cc -c \$in
-o \$out" | |
22 description = "CXX(NaCl x86 Newlib) \$out" | 20 description = "CXX(NaCl x86 Newlib) \$out" |
23 depfile = "\$out.d" | 21 depfile = "\$out.d" |
24 depsformat = "gcc" | 22 depsformat = "gcc" |
25 } | 23 } |
26 tool("alink") { | 24 tool("alink") { |
27 command = "rm -f \$out && ${toolprefix}ar rcs \$out \$in" | 25 command = "rm -f \$out && ${toolprefix}ar rcs \$out \$in" |
28 description = "AR(NaCl x86 Newlib) \$out" | 26 description = "AR(NaCl x86 Newlib) \$out" |
29 } | 27 } |
30 tool("solink") { | 28 tool("solink") { |
31 command = | 29 command = "if [ ! -e \$lib -o ! -e \${lib}.TOC ]; then $ld -shared \$ldflags
-o \$lib -Wl,-soname=\$soname -Wl,--whole-archive \$in \$solibs -Wl,--no-whole-
archive \$libs && { readelf -d \${lib} | grep SONAME ; nm -gD -f p \${lib} | cut
-f1-2 -d' '; } > \${lib}.TOC; else $ld -shared \$ldflags -o \$lib -Wl,-soname=\
$soname -Wl,--whole-archive \$in \$solibs -Wl,--no-whole-archive \$libs && { rea
delf -d \${lib} | grep SONAME ; nm -gD -f p \${lib} | cut -f1-2 -d' '; } > \${li
b}.tmp && if ! cmp -s \${lib}.tmp \${lib}.TOC; then mv \${lib}.tmp \${lib}.TOC ;
fi; fi" |
32 "if [ ! -e \$lib -o ! -e \${lib}.TOC ]; then $ld -shared \$ldflags -o \$
lib -Wl,-soname=\$soname -Wl,--whole-archive \$in \$solibs -Wl,--no-whole-archiv
e \$libs && { readelf -d \${lib} | grep SONAME ; nm -gD -f p \${lib} | cut -f1-2
-d' '; } > \${lib}.TOC; else $ld -shared \$ldflags -o \$lib -Wl,-soname=\$sonam
e -Wl,--whole-archive \$in \$solibs -Wl,--no-whole-archive \$libs && { readelf -
d \${lib} | grep SONAME ; nm -gD -f p \${lib} | cut -f1-2 -d' '; } > \${lib}.tmp
&& if ! cmp -s \${lib}.tmp \${lib}.TOC; then mv \${lib}.tmp \${lib}.TOC ; fi; f
i" | |
33 description = "SOLINK(NaCl x86 Newlib) \$lib" | 30 description = "SOLINK(NaCl x86 Newlib) \$lib" |
34 | 31 |
35 #pool = "link_pool" | 32 #pool = "link_pool" |
36 restat = "1" | 33 restat = "1" |
37 } | 34 } |
38 tool("link") { | 35 tool("link") { |
39 command = | 36 command = "$ld \$ldflags -o \$out -Wl,--start-group \$in \$solibs -Wl,--end-
group \$libs" |
40 "$ld \$ldflags -o \$out -Wl,--start-group \$in \$solibs -Wl,--end-group
\$libs" | |
41 description = "LINK(NaCl x86 Newlib) \$out" | 37 description = "LINK(NaCl x86 Newlib) \$out" |
42 | 38 |
43 #pool = "link_pool" | 39 #pool = "link_pool" |
44 } | 40 } |
45 | 41 |
46 if (is_win) { | 42 if (is_win) { |
47 tool("stamp") { | 43 tool("stamp") { |
48 command = "$python_path gyp-win-tool stamp \$out" | 44 command = "$python_path gyp-win-tool stamp \$out" |
49 description = "STAMP \$out" | 45 description = "STAMP \$out" |
50 } | 46 } |
51 } else { | 47 } else { |
52 tool("stamp") { | 48 tool("stamp") { |
53 command = "touch \$out" | 49 command = "touch \$out" |
54 description = "STAMP \$out" | 50 description = "STAMP \$out" |
55 } | 51 } |
56 } | 52 } |
57 | 53 |
58 toolchain_args() { | 54 toolchain_args() { |
59 # Override the default OS detection. The build config will set the is_* | 55 # Override the default OS detection. The build config will set the is_* |
60 # flags accordingly. | 56 # flags accordingly. |
61 os = "nacl" | 57 os = "nacl" |
62 | 58 |
63 # Component build not supported in NaCl, since it does not support shared | 59 # Component build not supported in NaCl, since it does not support shared |
64 # libraries. | 60 # libraries. |
65 is_component_build = false | 61 is_component_build = false |
66 } | 62 } |
67 } | 63 } |
OLD | NEW |