Граф коммитов

137 Коммитов

Автор SHA1 Сообщение Дата
markus@chromium.org 591362eec6 Fixed a bug that was introduced when we started deprecating 32bit libraries on 64bit systems.
This needs a little bit of explanation. Normally, we would want to restructure
the code to have separate variables for "--lib32" and for the result of the
"yes_no" question. But that requires more global changes.

Instead, in this case, we want to very clearly document that we added an
early "if" statement to break out. And this is intended to be a temporary
measure until the entire feature is fully removed.

So, I instead opted for resetting the "do_inst_lib32" variable -- and a lengthy
comment explaining this decision.

BUG=233047
TEST=run with --lib32 and verify that entering "N" aborts the installation.

Review URL: https://chromiumcodereview.appspot.com/14166013

git-svn-id: http://src.chromium.org/svn/trunk/src/build@195950 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-04-24 00:11:27 +00:00
sschmitz@chromium.org a8ceceedaa Installing Chrome OS fonts fails when repo is on filer
install-build-deps.sh runs "sudo /path/to/src/build/linux/install-chromeos-fonts.py".
If the repo is on a filer, sudo fails because root is not allowed to access files on
a filer. However, installing a Repo on a Filer is not recommended.
Solution:
install-build-deps.sh attempts to detect that the Repo is not on a Filer and
in that case prints a warning with instructions.

Note: install-build-deps.sh exits immediately on failure because it uses "bash -e".

BUG=225543
R=derat@chromium.org
TEST=manual

Review URL: https://chromiumcodereview.appspot.com/13532003

git-svn-id: http://src.chromium.org/svn/trunk/src/build@192485 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-04-05 03:52:15 +00:00
victorhsieh@chromium.org da436bdfe1 More generic untar for various type of data.tar*
Sometimes .deb contains data.tar.bz2 or data.tar.xz and install-build-deps just cannot finish normally.  Fortunately modern tar supports compression type detection.


BUG=


Review URL: https://chromiumcodereview.appspot.com/12668013

git-svn-id: http://src.chromium.org/svn/trunk/src/build@188929 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-03-19 03:06:45 +00:00
xians@chromium.org 22d47c11f9 We are going to use PulseAudio IO as the default audio implementation for Chrome on Linux. We need the development header to build chromium.
This is needed for https://codereview.chromium.org/12310101/

TBR=dalecurtis@chromium.org
BUG=178101

Review URL: https://chromiumcodereview.appspot.com/12613005

git-svn-id: http://src.chromium.org/svn/trunk/src/build@186731 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-03-07 17:07:47 +00:00
bevc@chromium.org 9ea40aa5a4 Removing flashplugin-installer from install-build-deps.sh
BUG=136417


Review URL: https://chromiumcodereview.appspot.com/12381074

git-svn-id: http://src.chromium.org/svn/trunk/src/build@186063 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-03-05 02:25:23 +00:00
sschmitz@chromium.org 4dcb5c4e95 Installing ChromeOS font on developer Linux machine
Added call to a new script in:
build/install-build-deps.sh 
to download and install the ChromeOS default font
(Noto Sans UI). The installation is in:
/usr/local/share/fonts.
ChromeOS on Linux will use the font if present.
The installation creates (or recreates) a subdir:
"chromeos". In it it creates a .stamp file which is used
to avoid re-installation if it is already up to date.
It also creates a README file.

BUG=148945
TEST=manual;
One way to test is to instrument the file:
src/ui/gfx/platform_font_pango.cc
to log default_font_->GetFontName(); in ctor
PlatformFontPango::PlatformFontPango()
Expect:
W/out font installation: DejaVu Sans
With font installation: Noto Sans UI



Review URL: https://chromiumcodereview.appspot.com/12313039

git-svn-id: http://src.chromium.org/svn/trunk/src/build@184006 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-02-22 03:49:20 +00:00
erg@chromium.org 302728e852 Adds metacity to the install-build-deps.sh list so it gets installed on bots.
BUG=167114

Review URL: https://codereview.chromium.org/12194021

git-svn-id: http://src.chromium.org/svn/trunk/src/build@180517 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-02-04 21:02:20 +00:00
torne@chromium.org 380d7b1df2 Add unsupported option to install-build-deps.
Add an option --unsupported to install-build-deps.sh which allows the
installation to be attempted on a system we don't support. Omit
mentioning this in the error, in the hope that anyone who can deal with
the fallout from this will find it in the script. Also, add GCEL
(Ubuntu-derived image used by Compute Engine) to the list of supported
systems.

BUG=

Review URL: https://codereview.chromium.org/11863012

git-svn-id: http://src.chromium.org/svn/trunk/src/build@176982 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-01-15 22:11:47 +00:00
pph34r@gmail.com 7f3126fc9a Add Ubuntu 12.10 to the list of supported versions
Review URL: https://chromiumcodereview.appspot.com/11791020

git-svn-id: http://src.chromium.org/svn/trunk/src/build@175495 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-01-08 07:18:24 +00:00
sbc@chromium.org 1081492e23 Add g++-multilib build dependency when cross building for ARM.
We found that this package is needed on 64-bit systems
when cross compiling for ARM due to the requirment that
v8 host binaries be build with -m32 (they must run with
same pointer size as target platform apparently).

BUG=


Review URL: https://chromiumcodereview.appspot.com/11568038

git-svn-id: http://src.chromium.org/svn/trunk/src/build@173568 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-12-17 23:31:40 +00:00
sergeyu@chromium.org 9c9351cc85 Remove Linux host setup wizard and libwebkitgtk dependency.
Review URL: https://codereview.chromium.org/11530020

git-svn-id: http://src.chromium.org/svn/trunk/src/build@172460 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-12-11 23:58:20 +00:00
sbc@chromium.org 6110a69a9d Download arm sysroot as part of gclient hooks.
install-arm-sysroot.py is now seperated out from
install-build-deps.sh so that it can be invoked
independently by the gclient hooks.

This addresses a couple of different issues with 
configuring the arm buildbots.  Firstly it means
that they will always have an up-to-date arm
sysroot installed.  Secondly, it means the script
is always run as the user (and not as root) which
mean the expanded files that the correct ownership.


BUG=


Review URL: https://chromiumcodereview.appspot.com/11468014

git-svn-id: http://src.chromium.org/svn/trunk/src/build@171990 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-12-08 21:04:20 +00:00
sbc@chromium.org 0fe83554ff Teach "install-build-deps.sh --arm" how to install the arm root image.
The --arm argument will already install the arm cross
toolchain, but building chrome/arm also requires an
arm sysroot.  The script will now download the sysroot
to out/arm_root.

BUG=


Review URL: https://chromiumcodereview.appspot.com/11417041

git-svn-id: http://src.chromium.org/svn/trunk/src/build@171448 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-12-06 08:31:23 +00:00
phajdan.jr@chromium.org 15943f1c7d Update build/install-build-deps.sh for libspeechd.
This is needed for https://codereview.chromium.org/11415243/

BUG=162733, 164270

Review URL: https://codereview.chromium.org/11299343

git-svn-id: http://src.chromium.org/svn/trunk/src/build@171283 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-12-05 19:40:34 +00:00
sbc@chromium.org 4b6cd8b09a Add --arm option to install-build-deps.sh.
This new option will install the arm cross toolchain (which
is only currently available on Ubuntu precise).


BUG=


Review URL: https://chromiumcodereview.appspot.com/11360255

git-svn-id: http://src.chromium.org/svn/trunk/src/build@167803 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-11-15 01:06:26 +00:00
sergeyu@chromium.org b59b46199a Add libwebkit-dev in install-build-dep.sh
BUG=159752

Review URL: https://codereview.chromium.org/11368155

git-svn-id: http://src.chromium.org/svn/trunk/src/build@166840 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-11-09 02:01:55 +00:00
mmoss@chromium.org 973efb33fc Fix if/then typo.
TBR=scroggo@chromium.org

Review URL: https://codereview.chromium.org/11360134

git-svn-id: http://src.chromium.org/svn/trunk/src/build@166537 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-11-07 22:56:35 +00:00
mmoss@chromium.org b8025de8b3 Improve warnings about 32bit libs on 64bit systems.
Review URL: https://codereview.chromium.org/11360130

git-svn-id: http://src.chromium.org/svn/trunk/src/build@166488 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-11-07 19:31:52 +00:00
phajdan.jr@chromium.org 61a35df4b0 Change install-build-deps.sh to get libpci,
see https://codereview.chromium.org/11343015/

TBR=cmp

BUG=158535
TEST=none

Review URL: https://codereview.chromium.org/11348051

git-svn-id: http://src.chromium.org/svn/trunk/src/build@165040 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-10-30 22:33:20 +00:00
tfarina@chromium.org 7e2f5ca539 Remove the dependency to dbus-glib from from the remaining places.
BUG=156018
R=satorux@chromium.org
TBR=jam@chromium.org,ben@chromium.org

Review URL: https://codereview.chromium.org/11235031

git-svn-id: http://src.chromium.org/svn/trunk/src/build@163475 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-10-23 02:00:41 +00:00
toyoshim@chromium.org 7edfa19a1c 64-bit system need 32bit libstdc++.so.6 to run pnacl sdk clang
To build chromium, NaCl SDK should work for internally used NaCl library.
32bit version of clang is used as a part of pnacl sdk toolchain, and requires
libstdc++.so.6.

BUG=none


Review URL: https://chromiumcodereview.appspot.com/11141009

git-svn-id: http://src.chromium.org/svn/trunk/src/build@161831 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-10-15 06:39:53 +00:00
jochen@chromium.org 0a22e1c754 Revert 161344 - Add missing python-mod-pywebsocket dependency to install-build-deps.sh
This is required after 160782 to run the testserver

BUG=137639
TEST=none


Review URL: https://chromiumcodereview.appspot.com/11086069

TBR=jochen@chromium.org
Review URL: https://codereview.chromium.org/11098074

git-svn-id: http://src.chromium.org/svn/trunk/src/build@161350 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-10-11 15:45:51 +00:00
jochen@chromium.org 18c6f79ac7 Add missing python-mod-pywebsocket dependency to install-build-deps.sh
This is required after 160782 to run the testserver

BUG=137639
TEST=none


Review URL: https://chromiumcodereview.appspot.com/11086069

git-svn-id: http://src.chromium.org/svn/trunk/src/build@161344 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-10-11 14:47:56 +00:00
mmoss@chromium.org a9fc1dff17 Only install the 32-bit compat packages on 64-bit.
This prevents the script from failing on 32-bit Ubuntu where the 32-bit
compat packages don't exist.

BUG=138234

Review URL: https://chromiumcodereview.appspot.com/10825369

git-svn-id: http://src.chromium.org/svn/trunk/src/build@151745 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-08-15 21:00:14 +00:00
halton.huo@intel.com 2fb4a657fc Add libc6-i386 lib32gcc1 in dev_list.
Native client toolchain still need some extra 32 bit libraries belong to
packages libc6-i386 and lib32gcc1. Instead of adding all 32-bit libraries,
adding above two packages in common (64-bit and 32-bit) makes more sense.

TEST=build on 64-bit linux
BUG=138234


Review URL: https://chromiumcodereview.appspot.com/10810035

git-svn-id: http://src.chromium.org/svn/trunk/src/build@148356 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-07-25 17:41:27 +00:00
cmp@chromium.org e903cc979d Pass a potential --yes flag to an apt-get install.
TBR=petermayo@chromium.org


Review URL: https://chromiumcodereview.appspot.com/10332266

git-svn-id: http://src.chromium.org/svn/trunk/src/build@138053 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-05-20 04:55:48 +00:00
petermayo@chromium.org 37841d223a Add a --no-prompt flag to install quietly.
R=cmp@chromium.org,nsylvain@chromium.org
BUG=124546
TEST=on a victim that didn't need to change, and on one that did.

Review URL: http://codereview.chromium.org/10166023

git-svn-id: http://src.chromium.org/svn/trunk/src/build@133404 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-04-23 04:48:31 +00:00
bryeung@chromium.org f7d0899869 Add libbluetooth-dev to the list of chromeos deps
This is required for bluetooth support in ChromeOS.

BUG=none
TEST=script now installs libbluetooth-dev

Review URL: https://chromiumcodereview.appspot.com/10166005

git-svn-id: http://src.chromium.org/svn/trunk/src/build@133224 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-04-20 18:06:18 +00:00
markus@chromium.org 23abeb0659 Fixed a few more minor nitpicks:
- "apt-cache show" is more appropriate for us then
   "dpkg --print-avail"

 - the test that was supposed to find the correct name for
   the nspr and nss libraries didn't work correctly for
   distributions (e.g. natty) that for a transition period
   included both versions of the library. The new test has
   been verified to work with natty.

 - it is annoying that the "--clean" option sometimes fails
   with a hard-to-understand error message. We now always
   use "sudo" to avoid confusing users.

 - apart from dbus, some distributions apparently also keep
   rsyslogd running after installing the build dependencies.
   If this keeps popping up as a problem, we might have to
   eventually device a more generic solution.

 - when the user told us to remove an old install, try to
   remove all traces, instead of just the parts that cost
   a lot of disk space.

BUG=none
TEST=verify that we can install natty32bit (with debug symbols) and that afterwards Chrome can be built.
Review URL: https://chromiumcodereview.appspot.com/9764004

git-svn-id: http://src.chromium.org/svn/trunk/src/build@128068 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-03-21 22:09:41 +00:00
cmp@chromium.org 36daa844b3 Fix syntax error in install-build-deps.sh.
TBR=markus@chromium.org
BUG=118530

Review URL: https://chromiumcodereview.appspot.com/9701085

git-svn-id: http://src.chromium.org/svn/trunk/src/build@127038 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-03-16 00:02:20 +00:00
markus@chromium.org e222ce6807 Deprecate installing 32bit build dependencies on a 64bit
system. Instead, point the developer towards the install-chroot.sh
script, which is a cleaner way to achieve the same goal.

BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/9706076

git-svn-id: http://src.chromium.org/svn/trunk/src/build@126989 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-03-15 20:56:27 +00:00
markus@chromium.org 65b83bcff9 Lots of tweaks to the install-chroot.sh and install-build-deps.sh
script to make them more userfriendly.

In particular, we now recognize systems that have multiple filesystems
(e.g. /home on NFS) and offer to do the right thing.

We also have better support for new Ubuntu distributions (both as
host and as guest). This means, we can now test on "precise".

Added a lot of extra error handling to catch common problems and either
fix them or offer suggestions on how the user can fix them. For example,
we now detect if the user tries to re-install the same chroot environment
multiple times; and we then offer to delete or overwrite the old
installation.

We also detect if a chroot environment is still in active use, and then
refuse to damage it.

In order to help users, who accidentally left an old chroot enviroment
running, we have added a "clean up" option to the wrapper script.

We automatically invoke install-build-deps.sh from install-chroot.sh,
so users only need to run install-chroot.sh and then answer a couple
of questions.

BUG=none
TEST=run install-chroot.sh on a Ubuntu machine and install both lucid32 and precise32. Verify that afterwards, we can build Chrome inside the chroot.
Review URL: https://chromiumcodereview.appspot.com/9702047

git-svn-id: http://src.chromium.org/svn/trunk/src/build@126957 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-03-15 19:05:18 +00:00
oshima@chromium.org f5500e65cb Add git-core build dependency in preparation for merging cros.DEPS to DEPS
BUG=109475
TEST=maual: uninstalled git, run install-buid-deps.sh and gclient sync still works with cros.DEPS

Review URL: http://codereview.chromium.org/9348120

git-svn-id: http://src.chromium.org/svn/trunk/src/build@122185 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-02-15 23:38:07 +00:00
evan@chromium.org 78118da8b3 linux: don't build gold as part of install-build-deps.sh
Now that it's in the tree we don't need to force everyone to build
it.  (Especially since the code to build it didn't put it in the
path anyway.)

Review URL: https://chromiumcodereview.appspot.com/9317085

git-svn-id: http://src.chromium.org/svn/trunk/src/build@121005 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2012-02-08 18:39:53 +00:00
scottmg@chromium.org b1f5beaba5 Add libudev to install-build-deps.sh
BUG=79050


Review URL: http://codereview.chromium.org/8981007

git-svn-id: http://src.chromium.org/svn/trunk/src/build@114905 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-12-17 03:36:32 +00:00
dalecurtis@chromium.org 99cfcf4de3 Add python-cherrypy3 build dependency for CNS.
Required for the Constrained Network Server (CNS) used by video tag
testing. See code under media/tools/constrained_network_server.

BUG=104242
TEST=Installed dep, verified server ran.


Review URL: http://codereview.chromium.org/8879060

git-svn-id: http://src.chromium.org/svn/trunk/src/build@114325 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-12-14 00:50:57 +00:00
dalecurtis@chromium.org bcdf5fd673 Remove psutil from tree, install via install-build-deps.sh
Per discussion with thakis, cmp we should remove this dep from the tree and instead install it via install-build-deps.sh.

BUG=106105
TEST=Installed dep, ran tests.


Review URL: http://codereview.chromium.org/8919026

git-svn-id: http://src.chromium.org/svn/trunk/src/build@114146 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-12-13 01:42:48 +00:00
markus@chromium.org e669a5e1af Newer versions of Ubuntu rename lib32readline5-dev to lib32readline-gplv2-dev
BUG=none
TEST=Install dependencies in an "oneiric" chroot environment
Review URL: http://codereview.chromium.org/8883009

git-svn-id: http://src.chromium.org/svn/trunk/src/build@113626 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-12-08 18:32:52 +00:00
thestig@chromium.org 98dfe18792 Linux: Add a missing debug package to install-build-deps.sh.
Review URL: http://codereview.chromium.org/8374010

git-svn-id: http://src.chromium.org/svn/trunk/src/build@106797 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-10-21 22:52:38 +00:00
pph34r@gmail.com 289f7f2a3a Add Ubuntu 11.10 to the list of supported versions.
Add libxt-dev to the package list.

BUG=None
TEST=None


Review URL: http://codereview.chromium.org/8305018

git-svn-id: http://src.chromium.org/svn/trunk/src/build@105907 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-10-17 20:52:16 +00:00
mcgrathr@chromium.org b031e9acd1 Add elfutils to install-build-deps.sh package list
The elfutils package is available on every Linux variant, is not very
large, and simply adds new utilities called eu-* without affecting anything
else.  Packaging changes I hope to land later will need to have eu-strip
available on the buildbots that do official release builds.

BUG= none
TEST= none

R=bradnelson@google.com


Review URL: http://codereview.chromium.org/8083023

git-svn-id: http://src.chromium.org/svn/trunk/src/build@103589 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-09-30 23:54:55 +00:00
thestig@chromium.org 68addcc922 Linux: Don't bother trying to install gold via apt-get. Just always build our own copy.
BUG=79769
TEST=none
Review URL: http://codereview.chromium.org/8073002

git-svn-id: http://src.chromium.org/svn/trunk/src/build@103155 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-09-28 19:27:52 +00:00
thestig@chromium.org b5abd53834 Linux: add a missing check for /usr/local/bin/gold/ld.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/8036008

git-svn-id: http://src.chromium.org/svn/trunk/src/build@102860 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-09-27 01:57:09 +00:00
sievers@chromium.org b3ca002e55 Change default for install 32bit libs on 64bit Linux systems to NO.
Review URL: http://codereview.chromium.org/8004007

git-svn-id: http://src.chromium.org/svn/trunk/src/build@102582 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-09-23 21:35:18 +00:00
thakis@chromium.org 4f6249725f Add curl to build/install-build-deps.sh
tools/clang/scripts/update.sh tries to use curl to download over https (wget has
issues with this). To make sure curl is installed on new bots, add it to
install-build-deps.sh, so that we can use the https download on bots.

BUG=97288
TEST=none


Review URL: http://codereview.chromium.org/7966029

git-svn-id: http://src.chromium.org/svn/trunk/src/build@102566 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-09-23 20:42:39 +00:00
bradnelson@google.com 0912a5375f Adding libssl-dev to the list of packages required for chrome development.
Chrome uses an explicit third_party copy of this library,
however, temporarily the nacl_integration_tests require the system
version to be installed to build sel_ldr.

BUG=http://code.google.com/p/nativeclient/issues/detail?id=2265
TEST=None
R=nfullagar@google.com
Review URL: http://codereview.chromium.org/7977035

git-svn-id: http://src.chromium.org/svn/trunk/src/build@102188 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-09-21 23:14:26 +00:00
thestig@chromium.org d8c1bec166 Linux: Stop installing the gold linker as /usr/bin/ld. Ask users to pass -B/usr/local/gold/bin instead.
Also put ld.bfd next to ld so NaCl builds correctly.

BUG=79769
TEST=none
Review URL: http://codereview.chromium.org/7355033

git-svn-id: http://src.chromium.org/svn/trunk/src/build@100802 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-09-12 23:21:39 +00:00
thestig@chromium.org e68aa267ed Update binutils URL and sha1sum for gold sources
The ftp.gnu.org archive got rebuilt and changed some files in place under
the same name but with rebuilt contents. The best binutils source archive
that is now available there is the 2.21.1a file, which has a verified .sig
(GPG signature) file.

BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7841002

git-svn-id: http://src.chromium.org/svn/trunk/src/build@99781 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-09-06 19:05:56 +00:00
mcgrathr@chromium.org c1bcdda9b3 Use chain-loading for Linux nacl_helper
This replaces the nacl_helper_bootstrap program, dynamically-linked against
nacl_helper.so, with a standalone, statically-linked nacl_helper_bootstrap
program that loads the dynamic linker, instructing it in turn to load the
nacl_helper program (now a PIE rather than a DSO).

This avoids two problems with the old scheme:
1. The nacl_helper_bootstrap program remained in the dynamic linker's
   list of loaded objects, as the main executable, even though the
   memory where its .dynamic section had been was overwritten with
   the NaCl untrusted address space.  Code that traverses the list of
   all loaded objects could thus attempt to look at pointers into this
   part of memory, and be led astray.
2. nacl_helper_bootstrap's large (~1G) bss segment could cause the kernel
   to refuse to load the program because it didn't think there was enough
   free memory in the system for so large an allocation of anonymous memory.

The bootstrap program is kept very small by avoiding all use of libc
(except for memset and integer division routines needed on ARM).  It has
its own custom start-up code hand-written in assembly and its own custom
system call stubs done with hand-written GCC inline asm statements.

To avoid the second problem, the bootstrap program no longer has a large
bss.  Instead, it has a special ELF segment (i.e. PT_LOAD header) that
specifies no memory access, and a large (~1G) mapping size from the file.
This mapping is way off the end of the file, but the kernel doesn't mind
that, and since it's all a file mapping, the kernel does not do its normal
memory accounting for consuming a large amount of anonymous memory.

Unfortunately, it's impossible to get the linker to produce exactly the
right PT_LOAD header by itself.  Using a custom linker script, we get the
layout exactly how we want it and a PT_LOAD header that is almost right.
We then use a build-time helper program to munge one field of the PT_LOAD
to make it exactly what we need.

BUG= http://code.google.com/p/chromium/issues/detail?id=94147
TEST= hand-tested chromium build

R=bradchen@google.com


Review URL: http://codereview.chromium.org/7776034

git-svn-id: http://src.chromium.org/svn/trunk/src/build@99089 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-09-01 00:55:05 +00:00
abarth@chromium.org 722a3096ab Add ruby to the list of build dependencies so that WebKit's pretty diff utility
works on the buildbots.
Review URL: http://codereview.chromium.org/7809024

git-svn-id: http://src.chromium.org/svn/trunk/src/build@99031 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2011-08-31 20:33:33 +00:00