Chromium Code Reviews| Index: build/install-build-deps.sh |
| =================================================================== |
| --- build/install-build-deps.sh (revision 17902) |
| +++ build/install-build-deps.sh (working copy) |
| @@ -4,6 +4,59 @@ |
| # See http://code.google.com/p/chromium/wiki/LinuxBuildInstructions |
| # and http://code.google.com/p/chromium/wiki/LinuxBuild64Bit |
| +install_gold() { |
| + # Gold is optional; it's a faster replacement for ld, |
| + # and makes life on 2GB machines much more pleasant. |
| + |
| + BINUTILS=binutils-2.19.1 |
| + BINUTILS_URL=http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2 |
| + BINUTILS_SHA1=88c91e36cde93433e4c4c2b2e3417777aad84526 |
| + |
| + test -f $BINUTILS.tar.bz2 || wget $BINUTILS_URL |
| + if `sha1sum $BINUTILS.tar.bz2` != $BINUTILS_SHA1 |
| + then |
| + echo Bad sha1sum for $BINUTILS.tar.bz2 |
| + exit 1 |
| + fi |
| + cat > binutils-fix.patch <<__EOF__ |
| +--- binutils-2.19.1/gold/reduced_debug_output.h.orig 2009-05-10 14:44:52.000000000 -0700 |
| ++++ binutils-2.19.1/gold/reduced_debug_output.h 2009-05-10 14:46:51.000000000 -0700 |
| +@@ -64,7 +64,7 @@ |
| + void |
| + failed(std::string reason) |
| + { |
| +- gold_warning(reason.c_str()); |
| ++ gold_warning("%s", reason.c_str()); |
| + failed_ = true; |
| + } |
| + |
| +@@ -110,7 +110,7 @@ |
| + void |
| + failed(std::string reason) |
| + { |
| +- gold_warning(reason.c_str()); |
| ++ gold_warning("%s", reason.c_str()); |
| + this->failed_ = true; |
| + } |
| + |
| +__EOF__ |
| + |
| + tar -xjvf $BINUTILS.tar.bz2 |
| + cd $BINUTILS |
| + patch -p1 < ../binutils-fix.patch |
| + ./configure --prefix=/usr/local/gold --enable-gold |
| + make -j3 |
| + sudo make install |
| + |
| + # Still need to figure out graceful way of pointing gyp to use |
| + # /usr/local/gold/bin/ld without requiring him to set environment |
| + # variables. That will go into bootstrap-linux.sh when it's ready. |
| + echo "Installing gold as /usr/bin/ld." |
| + echo "To uninstall, do 'cd /usr/bin; sudo rm ld; sudo mv ld.orig ld'" |
| + test -f /usr/bin/ld && sudo mv /usr/bin/ld /usr/bin/ld.orig |
| + sudo ln -s /usr/local/gold/bin/ld /usr/bin/ld |
| +} |
| + |
| if ! egrep -q "Ubuntu 8.04|Ubuntu 8.10|Ubuntu 9.04" /etc/issue; then |
| echo "Only Ubuntu 8.04, 8.10, and 9.04 are currently supported" >&2 |
| exit 1 |
| @@ -24,13 +77,13 @@ |
| dev_list="bison fakeroot flex g++ g++-multilib gperf libasound2-dev |
| libcairo2-dev libgconf2-dev libglib2.0-dev libgtk2.0-dev libnspr4-dev |
| libnss3-dev libsqlite3-dev lighttpd msttcorefonts perl php5-cgi |
| - pkg-config python subversion sun-java6-fonts wdiff" |
| + pkg-config python subversion wdiff" |
| # Full list of required run-time libraries |
| lib_list="libatk1.0-0 libc6 libasound2 libcairo2 libexpat1 libfontconfig1 |
| libfreetype6 libglib2.0-0 libgtk2.0-0 libnspr4-0d libnss3-1d |
| libpango1.0-0 libpcre3 libpixman-1-0 libpng12-0 libstdc++6 |
| - libsqlite3-0 libx11-6 libxau6 libxcb-xlib0 libxcb1 libxcomposite1 |
| + libsqlite3-0 libx11-6 libxau6 libxcb1 libxcomposite1 |
| libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 |
| libxinerama1 libxrandr2 libxrender1 zlib1g" |
| @@ -38,7 +91,7 @@ |
| dbg_list="libatk1.0-dbg libc6-dbg libcairo2-dbg libfontconfig1-dbg |
| libglib2.0-0-dbg libgtk2.0-0-dbg libnspr4-0d-dbg libnss3-1d-dbg |
| libpango1.0-0-dbg libpcre3-dbg libpixman-1-0-dbg libx11-6-dbg |
| - libxau6-dbg libxcb-xlib0-dbg libxcb1-dbg libxcomposite1-dbg |
| + libxau6-dbg libxcb1-dbg libxcomposite1-dbg |
| libxcursor1-dbg libxdamage1-dbg libxdmcp6-dbg libxext6-dbg |
| libxfixes3-dbg libxi6-dbg libxinerama1-dbg libxrandr2-dbg |
| libxrender1-dbg zlib1g-dbg" |
| @@ -82,7 +135,8 @@ |
| done |
| } |
| -echo "This script installs all required libraries for building Chromium." |
| +echo "This script installs all tools and libraries needed to build Chromium." |
| +echo "" |
| echo "For most of the libraries, it can also install debugging symbols, which" |
| echo "will allow you to debug code in the system libraries. Most developers" |
| echo "won't need these symbols." |
| @@ -105,12 +159,30 @@ |
| LANG=C sudo apt-get install --reinstall \ |
| ${dev_list} ${lib_list} ${dbg_list} \ |
| $([ "$(uname -m)" = x86_64 ] && echo ${cmp_list}) \ |
| - 2>/dev/null | |
| + | |
| sed -e '1,/The following NEW packages will be installed:/d;s/^ //;t;d')" |
| echo "Installing missing packages..." |
| sudo apt-get install ${new_list} |
| +# Some operating systems already ship gold |
| +# (on Debian, you can probably do "apt-get install binutils-gold" to get it), |
| +# but though Ubuntu toyed with shipping it, they haven't yet. |
| +# So just install from source if it isn't the default linker. |
| + |
| +case `ld --version` in |
| +*gold*) ;; |
| +* ) |
| + # FIXME: avoid installing as /usr/bin/ld |
| + echo -n "Install gold from binutils-2.19.1 as ld? It's 5x faster (y/N) " |
|
agl
2009/06/10 15:44:12
echo "WARNING: this is replace your system wide li
|
| + if yes_no 1; then |
| + echo "Building binutils." |
| + install_gold || exit 99 |
| + else |
| + echo "Not installing gold." |
| + fi |
| +esac |
| + |
| # Install 32bit backwards compatibility support for 64bit systems |
| if [ "$(uname -m)" = x86_64 ]; then |
| echo "Installing 32bit libraries that are not already provided by the system" |