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

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

Issue 6567002: Linux: change install-build-deps.sh to install gold linker from binutils 2.21... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 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) 2009 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2009 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
(...skipping 28 matching lines...) Expand all
39 # First make sure root can access this directory, as that's tripped 39 # First make sure root can access this directory, as that's tripped
40 # up some folks. 40 # up some folks.
41 if sudo touch xyz.$$ 41 if sudo touch xyz.$$
42 then 42 then
43 sudo rm xyz.$$ 43 sudo rm xyz.$$
44 else 44 else
45 echo root cannot write to the current directory, not installing gold 45 echo root cannot write to the current directory, not installing gold
46 return 46 return
47 fi 47 fi
48 48
49 BINUTILS=binutils-2.20.1 49 BINUTILS=binutils-2.21
50 BINUTILS_URL=http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2 50 BINUTILS_URL=http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2
51 BINUTILS_SHA1=fd2ba806e6f3a55cee453cb25c86991b26a75dee 51 BINUTILS_SHA1=ef93235588eb443e4c4a77f229a8d131bccaecc6
52 52
53 test -f $BINUTILS.tar.bz2 || wget $BINUTILS_URL 53 test -f $BINUTILS.tar.bz2 || wget $BINUTILS_URL
54 if test "`sha1sum $BINUTILS.tar.bz2|cut -d' ' -f1`" != "$BINUTILS_SHA1" 54 if test "`sha1sum $BINUTILS.tar.bz2|cut -d' ' -f1`" != "$BINUTILS_SHA1"
55 then 55 then
56 echo Bad sha1sum for $BINUTILS.tar.bz2 56 echo Bad sha1sum for $BINUTILS.tar.bz2
57 exit 1 57 exit 1
58 fi 58 fi
59 59
60 tar -xjvf $BINUTILS.tar.bz2 60 tar -xjvf $BINUTILS.tar.bz2
61 cd $BINUTILS 61 cd $BINUTILS
62 ./configure --prefix=/usr/local/gold --enable-gold 62 ./configure --prefix=/usr/local/gold --enable-gold
Evan Martin 2011/02/23 19:24:20 While we're at it, do you mind checking if --enabl
Lei Zhang 2011/02/23 19:58:15 2.21 has --threads, but it also has this bug: http
63 make maybe-all-binutils maybe-all-gold -j4 63 make maybe-all-binutils maybe-all-gold -j4
64 if sudo make maybe-install-binutils maybe-install-gold 64 if sudo make maybe-install-binutils maybe-install-gold
65 then 65 then
66 # Still need to figure out graceful way of pointing gyp to use 66 # Still need to figure out graceful way of pointing gyp to use
67 # /usr/local/gold/bin/ld without requiring him to set environment 67 # /usr/local/gold/bin/ld without requiring him to set environment
68 # variables. That will go into bootstrap-linux.sh when it's ready. 68 # variables. That will go into bootstrap-linux.sh when it's ready.
69 echo "Installing gold as /usr/bin/ld." 69 echo "Installing gold as /usr/bin/ld."
70 echo "To uninstall, do 'cd /usr/bin; sudo rm ld; sudo mv ld.orig ld'" 70 echo "To uninstall, do 'cd /usr/bin; sudo rm ld; sudo mv ld.orig ld'"
71 test -f /usr/bin/ld && test ! -f /usr/bin/ld.orig && \ 71 test -f /usr/bin/ld && test ! -f /usr/bin/ld.orig && \
72 sudo mv /usr/bin/ld /usr/bin/ld.orig 72 sudo mv /usr/bin/ld /usr/bin/ld.orig
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 yes n | $new_list_cmd || true 233 yes n | $new_list_cmd || true
234 echo 234 echo
235 echo "You will have to install the above packages yourself." 235 echo "You will have to install the above packages yourself."
236 echo 236 echo
237 exit 100 237 exit 100
238 fi 238 fi
239 239
240 # Some operating systems already ship gold (on recent Debian and 240 # Some operating systems already ship gold (on recent Debian and
241 # Ubuntu you can do "apt-get install binutils-gold" to get it), but 241 # Ubuntu you can do "apt-get install binutils-gold" to get it), but
242 # older releases didn't. Additionally, gold 2.20 (included in Ubuntu 242 # older releases didn't. Additionally, gold 2.20 (included in Ubuntu
243 # Lucid) makes binaries that just segfault. 243 # Lucid) makes binaries that just segfault, and 2.20.1 does not support
244 # --map-whole-files.
244 # So install from source if we don't have a good version. 245 # So install from source if we don't have a good version.
245 246
246 case `ld --version` in 247 case `ld --version` in
247 *gold*2.20.1*) ;;
248 *gold*2.2[1-9]*) ;; 248 *gold*2.2[1-9]*) ;;
Peter Mayo 2011/02/23 15:46:47 Are we not confident enough to be happy with 2.30
Lei Zhang 2011/02/23 19:58:15 Unlike Chrome, it takes binutils roughly a decade
249 * ) 249 * )
250 if test "$do_inst_gold" = "" 250 if test "$do_inst_gold" = ""
251 then 251 then
252 echo "Gold is a new linker that links Chrome 5x faster than ld." 252 echo "Gold is a new linker that links Chrome 5x faster than ld."
253 echo "Don't use it if you need to link other apps (e.g. valgrind, wine)" 253 echo "Don't use it if you need to link other apps (e.g. valgrind, wine)"
254 echo -n "REPLACE SYSTEM LINKER ld with gold and back up ld? (y/N) " 254 echo -n "REPLACE SYSTEM LINKER ld with gold and back up ld? (y/N) "
255 if yes_no 1; then 255 if yes_no 1; then
256 do_inst_gold=1 256 do_inst_gold=1
257 fi 257 fi
258 fi 258 fi
259 if test "$do_inst_gold" = "1" 259 if test "$do_inst_gold" = "1"
260 then 260 then
261 # If the system provides a good version of gold, just install it. 261 # If the system provides a good version of gold, just install it.
262 if apt-cache show binutils-gold | grep -Eq 'Version: 2.2(0.1|[1-9]*)'; then 262 if apt-cache show binutils-gold | grep -Eq 'Version: 2.2[1-9]*'; then
263 echo "Installing binutils-gold. Backing up ld as ld.single." 263 echo "Installing binutils-gold. Backing up ld as ld.single."
264 sudo apt-get install binutils-gold 264 sudo apt-get install binutils-gold
265 else 265 else
266 # FIXME: avoid installing as /usr/bin/ld 266 # FIXME: avoid installing as /usr/bin/ld
267 echo "Building binutils. Backing up ld as ld.orig." 267 echo "Building binutils. Backing up ld as ld.orig."
268 install_gold || exit 99 268 install_gold || exit 99
269 fi 269 fi
270 else 270 else
271 echo "Not installing gold." 271 echo "Not installing gold."
272 fi 272 fi
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 sed -e 's/[.]so[.][0-9].*/.so/' | 449 sed -e 's/[.]so[.][0-9].*/.so/' |
450 sort -u); do 450 sort -u); do
451 [ "x${i##*/}" = "xld-linux.so" ] && continue 451 [ "x${i##*/}" = "xld-linux.so" ] && continue
452 [ -r "$i" ] && continue 452 [ -r "$i" ] && continue
453 j="$(ls "$i."* | sed -e 's/.*[.]so[.]\([^.]*\)$/\1/;t;d' | 453 j="$(ls "$i."* | sed -e 's/.*[.]so[.]\([^.]*\)$/\1/;t;d' |
454 sort -n | tail -n 1)" 454 sort -n | tail -n 1)"
455 [ -r "$i.$j" ] || continue 455 [ -r "$i.$j" ] || continue
456 sudo ln -s "${i##*/}.$j" "$i" 456 sudo ln -s "${i##*/}.$j" "$i"
457 done 457 done
458 fi 458 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