readonly CLOBBER=${CLOBBER:-yes}
readonly SCONS_TRUSTED="./scons --mode=opt-host -j8"
readonly SCONS_NACL="./scons --mode=opt-host,nacl -j8"
-readonly SPEC_HARNESS=${SPEC_HARNESS:-${HOME}/cpu2000-redhat64-ia32}/
+readonly SPEC_HARNESS=${SPEC_HARNESS:-$(pwd)/out/cpu2000}/
readonly TRYBOT_TESTS="176.gcc 179.art 181.mcf 197.parser 252.eon 254.gap"
readonly TRYBOT_X86_64_ZERO_BASED_SANDBOX_TESTS="176.gcc"
# Note: the tool for updating the canned nexes lives at:
# tools/canned_nexe_tool.sh
-readonly CANNED_NEXE_REV=1001
+readonly CANNED_NEXE_REV=1002
# If true, terminate script when first error is encountered.
readonly FAIL_FAST=${FAIL_FAST:-false}
# SCRIPT ACTION
######################################################################
-clobber() {
+clobber-scons() {
if [ "${CLOBBER}" == "yes" ] ; then
rm -rf scons-out
fi
}
+clobber-harness() {
+ if [ "${CLOBBER}" == "yes" ] ; then
+ rm -rf out
+ fi
+}
+
+clobber() {
+ clobber-scons
+ clobber-harness
+}
+
+download-spec2k-harness() {
+ echo "@@@BUILD_STEP Download spec2k harness@@@"
+ mkdir -p out
+ ${NATIVE_PYTHON} ${GSUTIL} cp -a public-read \
+ gs://nativeclient-private/cpu2000.tar.bz2 out/cpu2000.tar.bz2
+ tar xvj -C out -f out/cpu2000.tar.bz2
+}
+
# Make up for the toolchain tarballs not quite being a full SDK
# Also clean the SPEC dir (that step is here because it should
# not be run on hw bots which download rather than build binaries)
"${arch}_giant" giant_nexe.tar.bz2
# This generates "CannedNexes/" in the current directory
rm -rf CannedNexes
- tar jxf giant_nexe.tar.bz2
+ tar jxf giant_nexe.tar.bz2
}
get-validator() {
pnacl-trybot-arm-buildonly() {
clobber
+ download-spec2k-harness
build-prerequisites "arm" "bitcode" "arm-ncval-core"
${BUILDBOT_PNACL} archive-for-hw-bots "${NAME_ARM_TRY_UPLOAD}" try
build-tests SetupPnaclPexeOpt "${TRYBOT_TESTS}" 0 1
pnacl-trybot-x8632() {
clobber
+ download-spec2k-harness
build-prerequisites "x86-32" "bitcode"
build-tests SetupPnaclX8632Opt "${TRYBOT_TESTS}" 1 1
run-tests SetupPnaclX8632Opt "${TRYBOT_TESTS}" 1 1
}
pnacl-x86-64-zero-based-sandbox() {
- clobber
+ # Clobber scons and rebuild sel_ldr with zero-based sandbox support.
+ # If sel_ldr was built to a different directory and the test
+ # runner knew where to find that separate sel_ldr, then we wouldn't
+ # need to clobber here.
+ clobber-scons
export NACL_ENABLE_INSECURE_ZERO_BASED_SANDBOX=1
build-prerequisites "x86-64" "bitcode" "x86_64_zero_based_sandbox=1"
build-tests SetupPnaclX8664ZBSOpt \
pnacl-trybot-x8664() {
clobber
+ download-spec2k-harness
build-prerequisites "x86-64" "bitcode"
build-tests SetupPnaclX8664Opt "${TRYBOT_TESTS}" 1 1
run-tests SetupPnaclX8664Opt "${TRYBOT_TESTS}" 1 1
pnacl-arm-buildonly() {
clobber
+ download-spec2k-harness
build-prerequisites "arm" "bitcode"
${BUILDBOT_PNACL} archive-for-hw-bots "${NAME_ARM_UPLOAD}" regular
build-tests SetupPnaclPexeOpt all 0 1
pnacl-x8664() {
clobber
+ download-spec2k-harness
build-prerequisites "x86-64" "bitcode"
local setups="SetupPnaclX8664Opt \
SetupPnaclTranslatorX8664Opt \
pnacl-x8632() {
clobber
+ download-spec2k-harness
build-prerequisites "x86-32" "bitcode"
local setups="SetupPnaclX8632Opt \
SetupPnaclTranslatorX8632Opt \
nacl-x8632() {
clobber
+ download-spec2k-harness
build-prerequisites "x86-32" ""
local setups="SetupNaclX8632 \
SetupNaclX8632Opt"
nacl-x8664() {
clobber
+ download-spec2k-harness
build-prerequisites "x86-64" ""
local setups="SetupNaclX8664 \
SetupNaclX8664Opt"