| 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 13 matching lines...) Expand all Loading... |
| 24 BINUTILS=binutils-2.19.1 | 24 BINUTILS=binutils-2.19.1 |
| 25 BINUTILS_URL=http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2 | 25 BINUTILS_URL=http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2 |
| 26 BINUTILS_SHA1=88c91e36cde93433e4c4c2b2e3417777aad84526 | 26 BINUTILS_SHA1=88c91e36cde93433e4c4c2b2e3417777aad84526 |
| 27 | 27 |
| 28 test -f $BINUTILS.tar.bz2 || wget $BINUTILS_URL | 28 test -f $BINUTILS.tar.bz2 || wget $BINUTILS_URL |
| 29 if `sha1sum $BINUTILS.tar.bz2` != $BINUTILS_SHA1 | 29 if `sha1sum $BINUTILS.tar.bz2` != $BINUTILS_SHA1 |
| 30 then | 30 then |
| 31 echo Bad sha1sum for $BINUTILS.tar.bz2 | 31 echo Bad sha1sum for $BINUTILS.tar.bz2 |
| 32 exit 1 | 32 exit 1 |
| 33 fi | 33 fi |
| 34 |
| 34 cat > binutils-fix.patch <<__EOF__ | 35 cat > binutils-fix.patch <<__EOF__ |
| 35 --- binutils-2.19.1/gold/reduced_debug_output.h.orig 2009-05-10 14:44:52.0000
00000 -0700 | 36 --- binutils-2.19.1/gold/reduced_debug_output.h.orig 2009-05-10 14:44:52.0000
00000 -0700 |
| 36 +++ binutils-2.19.1/gold/reduced_debug_output.h 2009-05-10 14:46:51.000000000 -0
700 | 37 +++ binutils-2.19.1/gold/reduced_debug_output.h 2009-05-10 14:46:51.000000000 -0
700 |
| 37 @@ -64,7 +64,7 @@ | 38 @@ -64,7 +64,7 @@ |
| 38 void | 39 void |
| 39 failed(std::string reason) | 40 failed(std::string reason) |
| 40 { | 41 { |
| 41 - gold_warning(reason.c_str()); | 42 - gold_warning(reason.c_str()); |
| 42 + gold_warning("%s", reason.c_str()); | 43 + gold_warning("%s", reason.c_str()); |
| 43 failed_ = true; | 44 failed_ = true; |
| 44 } | 45 } |
| 45 | 46 |
| 46 @@ -110,7 +110,7 @@ | 47 @@ -110,7 +110,7 @@ |
| 47 void | 48 void |
| 48 failed(std::string reason) | 49 failed(std::string reason) |
| 49 { | 50 { |
| 50 - gold_warning(reason.c_str()); | 51 - gold_warning(reason.c_str()); |
| 51 + gold_warning("%s", reason.c_str()); | 52 + gold_warning("%s", reason.c_str()); |
| 52 this->failed_ = true; | 53 this->failed_ = true; |
| 53 } | 54 } |
| 54 | 55 |
| 56 diff -u -r1.3 -r1.4 |
| 57 --- binutils-2.19.1/gold/descriptors.h 2009/01/15 01:29:25 1.3 |
| 58 +++ binutils-2.19.1/gold/descriptors.h 2009/02/28 03:05:08 1.4 |
| 59 @@ -69,6 +69,8 @@ |
| 60 bool inuse; |
| 61 // Whether this is a write descriptor. |
| 62 bool is_write; |
| 63 + // Whether the descriptor is on the stack. |
| 64 + bool is_on_stack; |
| 65 }; |
| 66 |
| 67 bool |
| 68 --- binutils-2.19.1/gold/descriptors.cc 2009/01/15 01:29:25 1.3 |
| 69 +++ binutils-2.19.1/gold/descriptors.cc 2009/02/28 03:05:08 1.4 |
| 70 @@ -75,6 +75,12 @@ |
| 71 { |
| 72 gold_assert(!pod->inuse); |
| 73 pod->inuse = true; |
| 74 + if (descriptor == this->stack_top_) |
| 75 + { |
| 76 + this->stack_top_ = pod->stack_next; |
| 77 + pod->stack_next = -1; |
| 78 + pod->is_on_stack = false; |
| 79 + } |
| 80 return descriptor; |
| 81 } |
| 82 } |
| 83 @@ -114,6 +120,7 @@ |
| 84 pod->stack_next = -1; |
| 85 pod->inuse = true; |
| 86 pod->is_write = (flags & O_ACCMODE) != O_RDONLY; |
| 87 + pod->is_on_stack = false; |
| 88 |
| 89 ++this->current_; |
| 90 if (this->current_ >= this->limit_) |
| 91 @@ -158,10 +165,11 @@ |
| 92 else |
| 93 { |
| 94 pod->inuse = false; |
| 95 - if (!pod->is_write) |
| 96 + if (!pod->is_write && !pod->is_on_stack) |
| 97 { |
| 98 pod->stack_next = this->stack_top_; |
| 99 this->stack_top_ = descriptor; |
| 100 + pod->is_on_stack = true; |
| 101 } |
| 102 } |
| 103 } |
| 104 @@ -193,6 +201,8 @@ |
| 105 this->stack_top_ = pod->stack_next; |
| 106 else |
| 107 this->open_descriptors_[last].stack_next = pod->stack_next; |
| 108 + pod->stack_next = -1; |
| 109 + pod->is_on_stack = false; |
| 110 return true; |
| 111 } |
| 112 last = i; |
| 55 __EOF__ | 113 __EOF__ |
| 56 | 114 |
| 57 tar -xjvf $BINUTILS.tar.bz2 | 115 tar -xjvf $BINUTILS.tar.bz2 |
| 58 cd $BINUTILS | 116 cd $BINUTILS |
| 59 patch -p1 < ../binutils-fix.patch | 117 patch -p1 < ../binutils-fix.patch |
| 60 ./configure --prefix=/usr/local/gold --enable-gold | 118 ./configure --prefix=/usr/local/gold --enable-gold |
| 61 make -j3 | 119 make -j3 |
| 62 if sudo make install | 120 if sudo make install |
| 63 then | 121 then |
| 64 # Still need to figure out graceful way of pointing gyp to use | 122 # Still need to figure out graceful way of pointing gyp to use |
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 sed -e 's/[.]so[.][0-9].*/.so/' | | 420 sed -e 's/[.]so[.][0-9].*/.so/' | |
| 363 sort -u); do | 421 sort -u); do |
| 364 [ "x${i##*/}" = "xld-linux.so" ] && continue | 422 [ "x${i##*/}" = "xld-linux.so" ] && continue |
| 365 [ -r "$i" ] && continue | 423 [ -r "$i" ] && continue |
| 366 j="$(ls "$i."* | sed -e 's/.*[.]so[.]\([^.]*\)$/\1/;t;d' | | 424 j="$(ls "$i."* | sed -e 's/.*[.]so[.]\([^.]*\)$/\1/;t;d' | |
| 367 sort -n | tail -n 1)" | 425 sort -n | tail -n 1)" |
| 368 [ -r "$i.$j" ] || continue | 426 [ -r "$i.$j" ] || continue |
| 369 sudo ln -s "${i##*/}.$j" "$i" | 427 sudo ln -s "${i##*/}.$j" "$i" |
| 370 done | 428 done |
| 371 fi | 429 fi |
| OLD | NEW |