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

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

Issue 400029: Linux: update install-build-deps.sh to build gold from binutils 2.20.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 1 month 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
11 install_gold() { 11 install_gold() {
12 # Gold is optional; it's a faster replacement for ld, 12 # Gold is optional; it's a faster replacement for ld,
13 # and makes life on 2GB machines much more pleasant. 13 # and makes life on 2GB machines much more pleasant.
14 14
15 # First make sure root can access this directory, as that's tripped up some fo lks. 15 # First make sure root can access this directory, as that's tripped up some fo lks.
16 if sudo touch xyz.$$ 16 if sudo touch xyz.$$
17 then 17 then
18 sudo rm xyz.$$ 18 sudo rm xyz.$$
19 else 19 else
20 echo root cannot write to the current directory, not installing gold 20 echo root cannot write to the current directory, not installing gold
21 return 21 return
22 fi 22 fi
23 23
24 BINUTILS=binutils-2.19.1 24 BINUTILS=binutils-2.20
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=747e7b4d94bce46587236dc5f428e5b412a590dc
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 test "`sha1sum $BINUTILS.tar.bz2|cut -d' ' -f1`" != "$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
35 cat > binutils-fix.patch <<__EOF__ 35 cat > binutils-fix.patch <<__EOF__
36 --- binutils-2.19.1/gold/reduced_debug_output.h.orig» 2009-05-10 14:44:52.0000 00000 -0700 36 --- binutils-2.20/gold/output.cc.orig» 2009-11-17 17:40:49.000000000 -0800
37 +++ binutils-2.19.1/gold/reduced_debug_output.h»2009-05-10 14:46:51.000000000 -0 700 37 +++ binutils-2.20/gold/output.cc» 2009-11-17 18:27:21.000000000 -0800
38 @@ -64,7 +64,7 @@ 38 @@ -22,6 +22,10 @@
39 void
40 failed(std::string reason)
41 {
42 - gold_warning(reason.c_str());
43 + gold_warning("%s", reason.c_str());
44 failed_ = true;
45 }
46 39
47 @@ -110,7 +110,7 @@ 40 #include "gold.h"
48 void
49 failed(std::string reason)
50 {
51 - gold_warning(reason.c_str());
52 + gold_warning("%s", reason.c_str());
53 this->failed_ = true;
54 }
55 41
56 diff -u -r1.3 -r1.4 42 +#if !defined(__STDC_FORMAT_MACROS)
57 --- binutils-2.19.1/gold/descriptors.h» 2009/01/15 01:29:25» 1.3 43 +#define __STDC_FORMAT_MACROS
58 +++ binutils-2.19.1/gold/descriptors.h» 2009/02/28 03:05:08» 1.4 44 +#endif
59 @@ -69,6 +69,8 @@ 45 +
60 bool inuse; 46 #include <cstdlib>
61 // Whether this is a write descriptor. 47 #include <cstring>
62 bool is_write; 48 #include <cerrno>
63 + // Whether the descriptor is on the stack. 49 @@ -29,6 +33,7 @@
64 + bool is_on_stack; 50 #include <unistd.h>
65 }; 51 #include <sys/mman.h>
52 #include <sys/stat.h>
53 +#include <inttypes.h>
54 #include <algorithm>
55 #include "libiberty.h"
66 56
67 bool 57 @@ -3505,11 +3510,11 @@
68 --- binutils-2.19.1/gold/descriptors.cc»2009/01/15 01:29:25» 1.3 58 » » Output_section* os = (*p)->output_section();
69 +++ binutils-2.19.1/gold/descriptors.cc»2009/02/28 03:05:08» 1.4 59 » » if (os == NULL)
70 @@ -75,6 +75,12 @@ 60 » » gold_error(_("dot moves backward in linker script "
71 » { 61 -» » » » "from 0x%llx to 0x%llx"),
72 » gold_assert(!pod->inuse); 62 +» » » » "from 0x%"PRIx64" to 0x%"PRIx64),
73 » pod->inuse = true; 63 » » » addr + (off - startoff), (*p)->address());
74 +» if (descriptor == this->stack_top_) 64 » » else
75 +» { 65 » » gold_error(_("address of section '%s' moves backward "
76 +» this->stack_top_ = pod->stack_next; 66 -» » » » "from 0x%llx to 0x%llx"),
77 +» pod->stack_next = -1; 67 +» » » » "from 0x%"PRIx64" to 0x%"PRIx64),
Evan Martin 2009/11/18 02:42:23 Can you upstream this patch? http://sourceware.or
78 +» pod->is_on_stack = false; 68 » » » os->name(), addr + (off - startoff),
79 +» } 69 » » » (*p)->address());
80 » return descriptor; 70 » » }
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;
113 __EOF__ 71 __EOF__
114 72
115 tar -xjvf $BINUTILS.tar.bz2 73 tar -xjvf $BINUTILS.tar.bz2
116 cd $BINUTILS 74 cd $BINUTILS
117 patch -p1 < ../binutils-fix.patch 75 patch -p1 < ../binutils-fix.patch
118 ./configure --prefix=/usr/local/gold --enable-gold 76 ./configure --prefix=/usr/local/gold --enable-gold
119 make -j3 77 make -j3
120 if sudo make install 78 if sudo make install
121 then 79 then
122 # Still need to figure out graceful way of pointing gyp to use 80 # Still need to figure out graceful way of pointing gyp to use
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 sed -e 's/[.]so[.][0-9].*/.so/' | 384 sed -e 's/[.]so[.][0-9].*/.so/' |
427 sort -u); do 385 sort -u); do
428 [ "x${i##*/}" = "xld-linux.so" ] && continue 386 [ "x${i##*/}" = "xld-linux.so" ] && continue
429 [ -r "$i" ] && continue 387 [ -r "$i" ] && continue
430 j="$(ls "$i."* | sed -e 's/.*[.]so[.]\([^.]*\)$/\1/;t;d' | 388 j="$(ls "$i."* | sed -e 's/.*[.]so[.]\([^.]*\)$/\1/;t;d' |
431 sort -n | tail -n 1)" 389 sort -n | tail -n 1)"
432 [ -r "$i.$j" ] || continue 390 [ -r "$i.$j" ] || continue
433 sudo ln -s "${i##*/}.$j" "$i" 391 sudo ln -s "${i##*/}.$j" "$i"
434 done 392 done
435 fi 393 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