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

Side by Side Diff: build/install-build-deps.sh

Issue 9317085: linux: don't build gold as part of install-build-deps.sh (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: up Created 8 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | 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 #!/bin/bash -e 1 #!/bin/bash -e
2 2
3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 # Script to install everything needed to build chromium (well, ideally, anyway) 7 # Script to install everything needed to build chromium (well, ideally, anyway)
8 # See http://code.google.com/p/chromium/wiki/LinuxBuildInstructions 8 # See http://code.google.com/p/chromium/wiki/LinuxBuildInstructions
9 # and http://code.google.com/p/chromium/wiki/LinuxBuild64Bit 9 # and http://code.google.com/p/chromium/wiki/LinuxBuild64Bit
10 10
11 usage() { 11 usage() {
12 echo "Usage: $0 [--options]" 12 echo "Usage: $0 [--options]"
13 echo "Options:" 13 echo "Options:"
14 echo "--[no-]syms: enable or disable installation of debugging symbols" 14 echo "--[no-]syms: enable or disable installation of debugging symbols"
15 echo "--[no-]gold: enable or disable installation of gold linker"
16 echo "--[no-]lib32: enable or disable installation of 32 bit libraries" 15 echo "--[no-]lib32: enable or disable installation of 32 bit libraries"
17 echo "--[no-]restore-usr-bin-ld: enable or disable restoring /usr/bin/ld to"
18 echo " ld.bfd if it is currently gold"
19 echo "Script will prompt interactively if options not given." 16 echo "Script will prompt interactively if options not given."
20 exit 1 17 exit 1
21 } 18 }
22 19
23 while test "$1" != "" 20 while test "$1" != ""
24 do 21 do
25 case "$1" in 22 case "$1" in
26 --syms) do_inst_syms=1;; 23 --syms) do_inst_syms=1;;
27 --no-syms) do_inst_syms=0;; 24 --no-syms) do_inst_syms=0;;
28 --gold) do_inst_gold=1;;
29 --no-gold) do_inst_gold=0;;
30 --lib32) do_inst_lib32=1;; 25 --lib32) do_inst_lib32=1;;
31 --no-lib32) do_inst_lib32=0;; 26 --no-lib32) do_inst_lib32=0;;
32 --restore-usr-bin-ld) do_restore_usr_bin_ld=1;;
33 --no-restore-usr-bin-ld) do_restore_usr_bin_ld=0;;
34 *) usage;; 27 *) usage;;
35 esac 28 esac
36 shift 29 shift
37 done 30 done
38 31
39 install_gold() {
40 # Gold is optional; it's a faster replacement for ld,
41 # and makes life on 2GB machines much more pleasant.
42
43 # First make sure root can access this directory, as that's tripped
44 # up some folks.
45 if sudo touch xyz.$$
46 then
47 sudo rm xyz.$$
48 else
49 echo root cannot write to the current directory, not installing gold
50 return
51 fi
52
53 BINUTILS=binutils-2.21.1
54 BINUTILS_URL=http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2
55 BINUTILS_SHA1=525255ca6874b872540c9967a1d26acfbc7c8230
56
57 test -f $BINUTILS.tar.bz2 || wget $BINUTILS_URL
58 if test "`sha1sum $BINUTILS.tar.bz2|cut -d' ' -f1`" != "$BINUTILS_SHA1"
59 then
60 echo Bad sha1sum for $BINUTILS.tar.bz2
61 exit 1
62 fi
63
64 tar -xjvf $BINUTILS.tar.bz2
65 cd $BINUTILS
66 ./configure --prefix=/usr/local/gold --enable-gold=default --enable-threads \
67 --enable-bfd=yes
68 NCPU=`cat /proc/cpuinfo |grep ^processor|wc -l`
69 make maybe-all-binutils maybe-all-gold maybe-all-ld -j${NCPU}
70 if sudo make maybe-install-binutils maybe-install-gold maybe-install-ld
71 then
72 # Still need to figure out graceful way of pointing gyp to use
73 # /usr/local/gold/bin/ld without requiring him to set environment
74 # variables.
75 sudo strip /usr/local/gold/bin/ld.gold
76 sudo strip /usr/local/gold/bin/ld.bfd
77 else
78 echo "make install failed, not installing gold"
79 fi
80 }
81
82 if ! egrep -q \ 32 if ! egrep -q \
83 'Ubuntu (10\.04|10\.10|11\.04|11\.10|lucid|maverick|natty|oneiric)' \ 33 'Ubuntu (10\.04|10\.10|11\.04|11\.10|lucid|maverick|natty|oneiric)' \
84 /etc/issue; then 34 /etc/issue; then
85 echo "Only Ubuntu 10.04 (lucid) through 11.10 (oneiric) are currently" \ 35 echo "Only Ubuntu 10.04 (lucid) through 11.10 (oneiric) are currently" \
86 "supported" >&2 36 "supported" >&2
87 exit 1 37 exit 1
88 fi 38 fi
89 39
90 if ! uname -m | egrep -q "i686|x86_64"; then 40 if ! uname -m | egrep -q "i686|x86_64"; then
91 echo "Only x86 architectures are currently supported" >&2 41 echo "Only x86 architectures are currently supported" >&2
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 echo "The following command failed: " ${new_list_cmd} 189 echo "The following command failed: " ${new_list_cmd}
240 echo 190 echo
241 echo "It produces the following output:" 191 echo "It produces the following output:"
242 yes n | $new_list_cmd || true 192 yes n | $new_list_cmd || true
243 echo 193 echo
244 echo "You will have to install the above packages yourself." 194 echo "You will have to install the above packages yourself."
245 echo 195 echo
246 exit 100 196 exit 100
247 fi 197 fi
248 198
249 # Some operating systems already ship gold (on recent Debian and
250 # Ubuntu you can do "apt-get install binutils-gold" to get it), but
251 # older releases didn't. Additionally, gold 2.20 (included in Ubuntu
252 # Lucid) makes binaries that just segfault, and 2.20.1 does not support
253 # --map-whole-files.
254 # So install from source if we don't have a good version.
255
256 case `ld --version` in
257 *gold*2.2[1-9].*)
258 echo "*** Warning ***"
259 echo "If the default linker is gold, linking may fail for:"
260 echo "the Linux kernel, kernel modules, Valgrind, and Wine."
261 echo "If you previously installed gold as the default linker,"
262 echo "you can restore the original linker by running:"
263 echo "'cd /usr/bin; sudo rm ld; sudo mv ld.orig ld'"
264 echo
265 if [ "$do_restore_usr_bin_ld" = "" ]
266 then
267 echo -n "Restore /usr/bin/ld to the original linker? (Y/n) "
268 if yes_no 0
269 then
270 do_restore_usr_bin_ld=1
271 fi
272 echo
273 fi
274 if [ "$do_restore_usr_bin_ld" = "1" ]
275 then
276 if sudo mv /usr/bin/ld.orig /usr/bin/ld
277 then
278 echo "Restored /usr/bin/ld.orig as /usr/bin/ld"
279 else
280 echo "Failed to restore /usr/bin/ld.orig as /usr/bin/ld"
281 fi
282 echo
283 fi
284 ;;
285 esac
286
287 # Check the gold version first.
288 gold_up_to_date="1"
289 if [ -x "/usr/local/gold/bin/ld" ]
290 then
291 case `/usr/local/gold/bin/ld --version` in
292 *gold*2.2[1-9].*) ;;
293 * )
294 gold_up_to_date="0"
295 esac
296 fi
297
298 # Then check and make sure ld.bfd exists.
299 if [ "$gold_up_to_date" = "1" ] && [ ! -x "/usr/local/gold/bin/ld.bfd" ]
300 then
301 gold_up_to_date="0"
302 fi
303
304 if [ "$gold_up_to_date" = "0" ]
305 then
306 if test "$do_inst_gold" = ""
307 then
308 echo "Gold is a new linker that links Chrome 5x faster than GNU ld."
309 echo -n "*** To use the gold linker, "
310 echo "you must pass -B/usr/local/gold/bin/ to g++ ***"
311 echo -n "Install the gold linker? (y/N) "
312 if yes_no 1; then
313 do_inst_gold=1
314 fi
315 fi
316 if test "$do_inst_gold" = "1"
317 then
318 echo "Building binutils with gold..."
319 install_gold || exit 99
320 else
321 echo "Not installing gold."
322 fi
323 fi
324
325 # Install 32bit backwards compatibility support for 64bit systems 199 # Install 32bit backwards compatibility support for 64bit systems
326 if [ "$(uname -m)" = "x86_64" ]; then 200 if [ "$(uname -m)" = "x86_64" ]; then
327 if test "$do_inst_lib32" = "" 201 if test "$do_inst_lib32" = ""
328 then 202 then
329 echo "Installing 32bit libraries not already provided by the system" 203 echo "Installing 32bit libraries not already provided by the system"
330 echo 204 echo
331 echo "This is only needed to build a 32-bit Chrome on your 64-bit system." 205 echo "This is only needed to build a 32-bit Chrome on your 64-bit system."
332 echo 206 echo
333 echo "While we only need to install a relatively small number of library" 207 echo "While we only need to install a relatively small number of library"
334 echo "files, we temporarily need to download a lot of large *.deb packages" 208 echo "files, we temporarily need to download a lot of large *.deb packages"
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 sed -e 's/[.]so[.][0-9].*/.so/' | 378 sed -e 's/[.]so[.][0-9].*/.so/' |
505 sort -u); do 379 sort -u); do
506 [ "x${i##*/}" = "xld-linux.so" ] && continue 380 [ "x${i##*/}" = "xld-linux.so" ] && continue
507 [ -r "$i" ] && continue 381 [ -r "$i" ] && continue
508 j="$(ls "$i."* | sed -e 's/.*[.]so[.]\([^.]*\)$/\1/;t;d' | 382 j="$(ls "$i."* | sed -e 's/.*[.]so[.]\([^.]*\)$/\1/;t;d' |
509 sort -n | tail -n 1)" 383 sort -n | tail -n 1)"
510 [ -r "$i.$j" ] || continue 384 [ -r "$i.$j" ] || continue
511 sudo ln -s "${i##*/}.$j" "$i" 385 sudo ln -s "${i##*/}.$j" "$i"
512 done 386 done
513 fi 387 fi
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698