tree bb10f73456c0e0299004cb7bb0f37e48d8008b2c
parent edff23f0a22a511d9ede0cd750e5d17e9ff54df0
author asharif <asharif@p4.invalid> 1360919889 +0000
committer asharif <asharif@p4.invalid> 1360919889 +0000

Changed ExecuteCommandInChroot to take in extra parameters for additional
mount points.

 Changed the order of parameters to the same function.

Changed build_tc.py to pass --oneshot all the way down to portage.

 Changed tc_enter_chroot.py to take in toolchain_root as an optional parameter.
By default it only mounts the version_dir, which is where it resides.

 Changed uses of ExecuteCommandInChroot to the new order.

 Changed build_benchmarks.py to not take in toolchain_root. It now takes in
--third_party which is the third_party dir where CPU benchmarks reside.

 Changed tc_enter_chroot.py to take in an optional --third_party parameter.
By default it mounts __file__/../../../third_party.

 Changed build_chrome_browser.py to add a flags.txt file in the image dir.

 Fixed a bug in tc_enter_chroot.py (sys.argv[0] was used instead of __file__).

 Fixed handling of command line parameters of build_chrome_browser.py.

 build_benchmarks.py, build_chrome_browser.py, run_tests.py and run_dejagnu.py
now use argv instead of sys.argv.

 build_chromeos.py now adds a file called flags.txt in the build dir of
the image containing the cxxflags, cflags and ldflags used during the build.

 build_chromeos.py now takes an additional optional argument (label) that can be
used to label dirs containing the image.

PRESUBMIT=passed
R=bjanakiraman,raymes
DELTA=191  (104 added, 16 deleted, 71 changed)
OCL=49844-p2
RCL=50076-p2
RDATE=2011/03/16 14:53:04


P4 change: 42618812
