OLD | NEW |
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 Loading... |
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 patch -p1 <<EOF |
| 63 diff -u -r1.103 -r1.103.2.1 |
| 64 --- src/gold/object.h» 2010/09/08 23:54:51» 1.103 |
| 65 +++ src/gold/object.h» 2011/02/10 01:15:28» 1.103.2.1 |
| 66 @@ -1,6 +1,6 @@ |
| 67 // object.h -- support for an object file for linking in gold -*- C++ -*- |
| 68 |
| 69 -// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
| 70 +// Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. |
| 71 // Written by Ian Lance Taylor <iant@google.com>. |
| 72 |
| 73 // This file is part of gold. |
| 74 @@ -2165,15 +2165,6 @@ |
| 75 » » Output_symtab_xindex*, |
| 76 » » Output_symtab_xindex*); |
| 77 |
| 78 - // Clear the local symbol information. |
| 79 - void |
| 80 - clear_local_symbols() |
| 81 - { |
| 82 - this->local_values_.clear(); |
| 83 - this->local_got_offsets_.clear(); |
| 84 - this->local_plt_offsets_.clear(); |
| 85 - } |
| 86 - |
| 87 // Record a mapping from discarded section SHNDX to the corresponding |
| 88 // kept section. |
| 89 void |
| 90 diff -u -r1.60 -r1.60.2.1 |
| 91 --- src/gold/reloc.cc» 2010/10/14 22:10:22» 1.60 |
| 92 +++ src/gold/reloc.cc» 2011/02/10 01:15:28» 1.60.2.1 |
| 93 @@ -1,6 +1,6 @@ |
| 94 // reloc.cc -- relocate input files for gold. |
| 95 |
| 96 -// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
| 97 +// Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. |
| 98 // Written by Ian Lance Taylor <iant@google.com>. |
| 99 |
| 100 // This file is part of gold. |
| 101 @@ -685,9 +685,6 @@ |
| 102 // Write out the local symbols. |
| 103 this->write_local_symbols(of, layout->sympool(), layout->dynpool(), |
| 104 » » » layout->symtab_xindex(), layout->dynsym_xindex()); |
| 105 - |
| 106 - // We should no longer need the local symbol values. |
| 107 - this->clear_local_symbols(); |
| 108 } |
| 109 |
| 110 // Sort a Read_multiple vector by file offset. |
| 111 EOF |
| 112 ./configure --prefix=/usr/local/gold --enable-gold --enable-threads |
63 make maybe-all-binutils maybe-all-gold -j4 | 113 make maybe-all-binutils maybe-all-gold -j4 |
64 if sudo make maybe-install-binutils maybe-install-gold | 114 if sudo make maybe-install-binutils maybe-install-gold |
65 then | 115 then |
66 # Still need to figure out graceful way of pointing gyp to use | 116 # Still need to figure out graceful way of pointing gyp to use |
67 # /usr/local/gold/bin/ld without requiring him to set environment | 117 # /usr/local/gold/bin/ld without requiring him to set environment |
68 # variables. That will go into bootstrap-linux.sh when it's ready. | 118 # variables. That will go into bootstrap-linux.sh when it's ready. |
69 echo "Installing gold as /usr/bin/ld." | 119 echo "Installing gold as /usr/bin/ld." |
70 echo "To uninstall, do 'cd /usr/bin; sudo rm ld; sudo mv ld.orig ld'" | 120 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 && \ | 121 test -f /usr/bin/ld && test ! -f /usr/bin/ld.orig && \ |
72 sudo mv /usr/bin/ld /usr/bin/ld.orig | 122 sudo mv /usr/bin/ld /usr/bin/ld.orig |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 yes n | $new_list_cmd || true | 283 yes n | $new_list_cmd || true |
234 echo | 284 echo |
235 echo "You will have to install the above packages yourself." | 285 echo "You will have to install the above packages yourself." |
236 echo | 286 echo |
237 exit 100 | 287 exit 100 |
238 fi | 288 fi |
239 | 289 |
240 # Some operating systems already ship gold (on recent Debian and | 290 # Some operating systems already ship gold (on recent Debian and |
241 # Ubuntu you can do "apt-get install binutils-gold" to get it), but | 291 # 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 | 292 # older releases didn't. Additionally, gold 2.20 (included in Ubuntu |
243 # Lucid) makes binaries that just segfault. | 293 # Lucid) makes binaries that just segfault, and 2.20.1 does not support |
| 294 # --map-whole-files. |
244 # So install from source if we don't have a good version. | 295 # So install from source if we don't have a good version. |
245 | 296 |
246 case `ld --version` in | 297 case `ld --version` in |
247 *gold*2.20.1*) ;; | 298 *gold*2.2[1-9].*) ;; |
248 *gold*2.2[1-9]*) ;; | |
249 * ) | 299 * ) |
250 if test "$do_inst_gold" = "" | 300 if test "$do_inst_gold" = "" |
251 then | 301 then |
252 echo "Gold is a new linker that links Chrome 5x faster than ld." | 302 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)" | 303 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) " | 304 echo -n "REPLACE SYSTEM LINKER ld with gold and back up ld? (y/N) " |
255 if yes_no 1; then | 305 if yes_no 1; then |
256 do_inst_gold=1 | 306 do_inst_gold=1 |
257 fi | 307 fi |
258 fi | 308 fi |
259 if test "$do_inst_gold" = "1" | 309 if test "$do_inst_gold" = "1" |
260 then | 310 then |
261 # If the system provides a good version of gold, just install it. | 311 # 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 | 312 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." | 313 echo "Installing binutils-gold. Backing up ld as ld.single." |
264 sudo apt-get install binutils-gold | 314 sudo apt-get install binutils-gold |
265 else | 315 else |
266 # FIXME: avoid installing as /usr/bin/ld | 316 # FIXME: avoid installing as /usr/bin/ld |
267 echo "Building binutils. Backing up ld as ld.orig." | 317 echo "Building binutils. Backing up ld as ld.orig." |
268 install_gold || exit 99 | 318 install_gold || exit 99 |
269 fi | 319 fi |
270 else | 320 else |
271 echo "Not installing gold." | 321 echo "Not installing gold." |
272 fi | 322 fi |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 sed -e 's/[.]so[.][0-9].*/.so/' | | 499 sed -e 's/[.]so[.][0-9].*/.so/' | |
450 sort -u); do | 500 sort -u); do |
451 [ "x${i##*/}" = "xld-linux.so" ] && continue | 501 [ "x${i##*/}" = "xld-linux.so" ] && continue |
452 [ -r "$i" ] && continue | 502 [ -r "$i" ] && continue |
453 j="$(ls "$i."* | sed -e 's/.*[.]so[.]\([^.]*\)$/\1/;t;d' | | 503 j="$(ls "$i."* | sed -e 's/.*[.]so[.]\([^.]*\)$/\1/;t;d' | |
454 sort -n | tail -n 1)" | 504 sort -n | tail -n 1)" |
455 [ -r "$i.$j" ] || continue | 505 [ -r "$i.$j" ] || continue |
456 sudo ln -s "${i##*/}.$j" "$i" | 506 sudo ln -s "${i##*/}.$j" "$i" |
457 done | 507 done |
458 fi | 508 fi |
OLD | NEW |