(List (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS nounset]}) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS errexit]}) (= scope= flags=0 words=[] bindings=[('PWD_ON_ENTRY', {[DQ [ComSub (Com {[LIT_CHARS pwd]})]]})]) (Com {[LIT_CHARS cd]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub 0]]})]]}) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[ComSub (Com {[LIT_CHARS basename]} {[DQ [ComSub (Com {[LIT_CHARS pwd]})]]})]} {[DQ [LIT_CHARS pnacl]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: cannot find pnacl/ directory"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) (Com {[LIT_CHARS source]} {[LIT_CHARS scripts/common-tools.sh]}) (= scope= flags=2 words=[] bindings=[('PNACL_ROOT', {[DQ [ComSub (Com {[LIT_CHARS pwd]})]]})]) (= scope= flags=2 words=[] bindings=[('NACL_ROOT', {[DQ [ComSub (Com {[LIT_CHARS GetAbsolutePath]} {[LIT_CHARS ..]})]]})]) (= scope= flags=2 words=[] bindings=[('GCLIENT_ROOT', {[DQ [ComSub (Com {[LIT_CHARS GetAbsolutePath]} {[VarSub NACL_ROOT] [LIT_CHARS /..]})]]})]) (= scope= flags=2 words=[] bindings=[('SCONS_OUT', {[DQ [VarSub NACL_ROOT][LIT_CHARS /scons-out]]})]) (Com {[LIT_CHARS SetScriptPath]} {[DQ [VarSub PNACL_ROOT][LIT_CHARS /build.sh]]}) (Com {[LIT_CHARS SetLogDirectory]} {[DQ [VarSub PNACL_ROOT][LIT_CHARS /build/log]]}) (= scope= flags=2 words=[] bindings=[('TOOLCHAIN_BUILD', {[DQ [VarSub NACL_ROOT][LIT_CHARS /toolchain_build/toolchain_build_pnacl.py]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_CONCURRENCY', {[VarSub PNACL_CONCURRENCY test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 8]}]})]) (= scope= flags=2 words=[] bindings=[('PNACL_CONCURRENCY_HOST', {[VarSub PNACL_CONCURRENCY_HOST test_op=VS_TEST_COLON_HYPHEN {[VarSub PNACL_CONCURRENCY]}]})]) (= scope= flags=0 words=[] bindings=[('PNACL_PRUNE', {[VarSub PNACL_PRUNE test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}]})]) (= scope= flags=0 words=[] bindings=[('PNACL_BUILD_ARM', {[LIT_CHARS true]})]) (= scope= flags=0 words=[] bindings=[('PNACL_BUILD_MIPS', {[VarSub PNACL_BUILD_MIPS test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}]})]) (If (AndOr OP_OR_IF (Com {[VarSub BUILD_PLATFORM_MAC]}) (Com {[VarSub BUILD_PLATFORM_WIN]}) ) (List (= scope= flags=0 words=[] bindings=[('PNACL_BUILD_ARM', {[LIT_CHARS false]})]) (= scope= flags=0 words=[] bindings=[('PNACL_BUILD_MIPS', {[LIT_CHARS false]})]) ) ) (= scope= flags=2 words=[] bindings=[('LIB_CXX_NAME', {[DQ [LIT_CHARS "libc++"]]})]) (= scope= flags=2 words=[] bindings=[('LIB_STDCPP_NAME', {[DQ [LIT_CHARS "libstdc++"]]})]) (= scope= flags=2 words=[] bindings=[('CROSS_TARGET_ARM', {[LIT_CHARS arm-none-linux-gnueabi]})]) (= scope= flags=2 words=[] bindings=[('BINUTILS_TARGET', {[LIT_CHARS arm-pc-nacl]})]) (= scope= flags=2 words=[] bindings=[('REAL_CROSS_TARGET', {[LIT_CHARS le32-nacl]})]) (= scope= flags=2 words=[] bindings=[('NACL64_TARGET', {[LIT_CHARS x86_64-nacl]})]) (= scope= flags=2 words=[] bindings=[('DRIVER_DIR', {[DQ [VarSub PNACL_ROOT][LIT_CHARS /driver]]})]) (= scope= flags=2 words=[] bindings=[('ARM_ARCH', {[LIT_CHARS armv7-a]})]) (= scope= flags=2 words=[] bindings=[('ARM_FPU', {[LIT_CHARS vfp]})]) (= scope= flags=2 words=[] bindings=[('TOOLCHAIN_ROOT', {[DQ [VarSub NACL_ROOT][LIT_CHARS /toolchain]]})]) (= scope= flags=2 words=[] bindings=[('TOOLCHAIN_BASE', {[DQ [VarSub TOOLCHAIN_ROOT][LIT_CHARS /][VarSub SCONS_BUILD_PLATFORM][LIT_CHARS _x86]]})]) (= scope= flags=2 words=[] bindings=[('NNACL_NEWLIB_ROOT', {[DQ [VarSub TOOLCHAIN_BASE][LIT_CHARS /nacl_x86_newlib]]})]) (= scope= flags=2 words=[] bindings=[('NNACL_ARM_NEWLIB_ROOT', {[DQ [VarSub TOOLCHAIN_BASE][LIT_CHARS /nacl_arm_newlib]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_MAKE_OPTS', {[DQ [VarSub PNACL_MAKE_OPTS test_op=VS_TEST_COLON_HYPHEN {}]]})]) (= scope= flags=2 words=[] bindings=[('MAKE_OPTS', {[DQ [LIT_CHARS -j][VarSub PNACL_CONCURRENCY][LIT_CHARS " VERBOSE=1 "][VarSub PNACL_MAKE_OPTS]]})]) (= scope= flags=2 words=[] bindings=[('MAKE_OPTS_HOST', {[DQ [LIT_CHARS -j][VarSub PNACL_CONCURRENCY_HOST][LIT_CHARS " VERBOSE=1 "][VarSub PNACL_MAKE_OPTS]]})]) (= scope= flags=2 words=[] bindings=[('NONEXISTENT_PATH', {[DQ [LIT_CHARS /going/down/the/longest/road/to/nowhere]]})]) (= scope= flags=0 words=[] bindings=[('SPECULATIVE_REBUILD_SET', {[DQ ]})]) (= scope= flags=2 words=[] bindings=[('PNACL_SUPPORT', {[DQ [VarSub PNACL_ROOT][LIT_CHARS /support]]})]) (= scope= flags=2 words=[] bindings=[('THIRD_PARTY', {[DQ [VarSub NACL_ROOT]] [LIT_CHARS /../third_party]})]) (= scope= flags=2 words=[] bindings=[('NACL_SRC_THIRD_PARTY', {[DQ [VarSub NACL_ROOT][LIT_CHARS /src/third_party]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_GIT_ROOT', {[DQ [VarSub NACL_ROOT][LIT_CHARS /toolchain_build/src]]})]) (= scope= flags=2 words=[] bindings=[('TC_SRC_BINUTILS', {[DQ [VarSub PNACL_GIT_ROOT][LIT_CHARS /binutils]]})]) (= scope= flags=2 words=[] bindings=[('TC_SRC_LLVM', {[DQ [VarSub PNACL_GIT_ROOT][LIT_CHARS /llvm]]})]) (= scope= flags=2 words=[] bindings=[('TC_SRC_GCC', {[DQ [VarSub PNACL_GIT_ROOT][LIT_CHARS /pnacl-gcc]]})]) (= scope= flags=2 words=[] bindings=[('TC_SRC_NEWLIB', {[DQ [VarSub PNACL_GIT_ROOT][LIT_CHARS /pnacl-newlib]]})]) (= scope= flags=2 words=[] bindings=[('TC_SRC_LIBSTDCPP', {[DQ [VarSub TC_SRC_GCC][LIT_CHARS /][VarSub LIB_STDCPP_NAME][LIT_CHARS -v3]]})]) (= scope= flags=2 words=[] bindings=[('TC_SRC_COMPILER_RT', {[DQ [VarSub PNACL_GIT_ROOT][LIT_CHARS /compiler-rt]]})]) (= scope= flags=2 words=[] bindings=[('TC_SRC_CLANG', {[DQ [VarSub PNACL_GIT_ROOT][LIT_CHARS /clang]]})]) (= scope= flags=2 words=[] bindings=[('TC_SRC_LIBCXX', {[DQ [VarSub PNACL_GIT_ROOT][LIT_CHARS /libcxx]]})]) (= scope= flags=2 words=[] bindings=[('SERVICE_RUNTIME_SRC', {[DQ [VarSub NACL_ROOT][LIT_CHARS /src/trusted/service_runtime]]})]) (= scope= flags=2 words=[] bindings=[('EXPORT_HEADER_SCRIPT', {[DQ [VarSub SERVICE_RUNTIME_SRC][LIT_CHARS /export_header.py]]})]) (= scope= flags=2 words=[] bindings=[('NACL_SYS_HEADERS', {[DQ [VarSub SERVICE_RUNTIME_SRC][LIT_CHARS /include]]})]) (= scope= flags=2 words=[] bindings=[('NEWLIB_INCLUDE_DIR', {[DQ [VarSub TC_SRC_NEWLIB][LIT_CHARS /newlib/libc/sys/nacl]]})]) (= scope= flags=2 words=[] bindings=[('TC_BUILD', {[DQ [VarSub PNACL_ROOT][LIT_CHARS /build]]})]) (= scope= flags=2 words=[] bindings=[('TC_BUILD_LLVM', {[DQ [VarSub TC_BUILD][LIT_CHARS /llvm_][VarSub HOST_ARCH]]})]) (= scope= flags=2 words=[] bindings=[('TC_BUILD_BINUTILS', {[DQ [VarSub TC_BUILD][LIT_CHARS /binutils_][VarSub HOST_ARCH]]})]) (= scope= flags=2 words=[] bindings=[('TC_BUILD_BINUTILS_LIBERTY', {[DQ [VarSub TC_BUILD][LIT_CHARS /binutils-liberty]]})]) (= scope= flags=0 words=[] bindings=[('TC_BUILD_NEWLIB', {[DQ [VarSub TC_BUILD][LIT_CHARS /newlib]]})]) (= scope= flags=2 words=[] bindings=[('TC_BUILD_COMPILER_RT', {[DQ [VarSub TC_BUILD][LIT_CHARS /compiler_rt]]})]) (= scope= flags=2 words=[] bindings=[('TC_BUILD_GCC', {[DQ [VarSub TC_BUILD][LIT_CHARS /gcc]]})]) (= scope= flags=2 words=[] bindings=[('NACL_HEADERS_TS', {[DQ [VarSub TC_BUILD][LIT_CHARS /nacl.sys.timestamp]]})]) (= scope= flags=2 words=[] bindings=[('TIMESTAMP_FILENAME', {[DQ [LIT_CHARS make-timestamp]]})]) (= scope= flags=2 words=[] bindings=[('INSTALL_ROOT', {[DQ [VarSub TOOLCHAIN_BASE][LIT_CHARS /pnacl_newlib]]})]) (= scope= flags=2 words=[] bindings=[('INSTALL_BIN', {[DQ [VarSub INSTALL_ROOT][LIT_CHARS /bin]]})]) (= scope= flags=0 words=[] bindings=[('INSTALL_LIB', {[DQ [VarSub INSTALL_ROOT][LIT_CHARS /lib]]})]) (= scope= flags=2 words=[] bindings=[('INSTALL_LIB_NATIVE', {[DQ [VarSub INSTALL_ROOT][LIT_CHARS /translator/]]})]) (= scope= flags=2 words=[] bindings=[('INSTALL_LIB_ARM', {[DQ [VarSub INSTALL_LIB_NATIVE][LIT_CHARS arm/lib]]})]) (= scope= flags=2 words=[] bindings=[('INSTALL_LIB_X8632', {[DQ [VarSub INSTALL_LIB_NATIVE][LIT_CHARS x86-32/lib]]})]) (= scope= flags=2 words=[] bindings=[('INSTALL_LIB_X8664', {[DQ [VarSub INSTALL_LIB_NATIVE][LIT_CHARS x86-64/lib]]})]) (= scope= flags=2 words=[] bindings=[('INSTALL_LIB_MIPS32', {[DQ [VarSub INSTALL_LIB_NATIVE][LIT_CHARS mips32/lib]]})]) (= scope= flags=2 words=[] bindings=[('INSTALL_TRANSLATOR', {[DQ [VarSub TOOLCHAIN_BASE][LIT_CHARS /pnacl_translator]]})]) (= scope= flags=2 words=[] bindings=[('INSTALL_HOST', {[DQ [VarSub INSTALL_ROOT]]})]) (= scope= flags=2 words=[] bindings=[('LLVM_INSTALL_DIR', {[DQ [VarSub INSTALL_HOST]]})]) (= scope= flags=2 words=[] bindings=[('BINUTILS_INSTALL_DIR', {[DQ [VarSub INSTALL_HOST]]})]) (= scope= flags=2 words=[] bindings=[('BFD_PLUGIN_DIR', {[DQ [VarSub BINUTILS_INSTALL_DIR][LIT_CHARS /lib/bfd-plugins]]})]) (= scope= flags=2 words=[] bindings=[('FAKE_INSTALL_DIR', {[DQ [VarSub INSTALL_HOST][LIT_CHARS /fake]]})]) (= scope= flags=0 words=[] bindings=[('NEWLIB_INSTALL_DIR', {[DQ [VarSub INSTALL_ROOT][LIT_CHARS /usr]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_CC', {[DQ [VarSub INSTALL_BIN][LIT_CHARS /pnacl-clang]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_CXX', {[DQ [VarSub INSTALL_BIN][LIT_CHARS "/pnacl-clang++"]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_LD', {[DQ [VarSub INSTALL_BIN][LIT_CHARS /pnacl-ld]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_PP', {[DQ [VarSub INSTALL_BIN][LIT_CHARS "/pnacl-clang -E"]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_AR', {[DQ [VarSub INSTALL_BIN][LIT_CHARS /pnacl-ar]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_RANLIB', {[DQ [VarSub INSTALL_BIN][LIT_CHARS /pnacl-ranlib]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_AS', {[DQ [VarSub INSTALL_BIN][LIT_CHARS /pnacl-as]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_DIS', {[DQ [VarSub INSTALL_BIN][LIT_CHARS /pnacl-dis]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_FINALIZE', {[DQ [VarSub INSTALL_BIN][LIT_CHARS /pnacl-finalize]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_NM', {[DQ [VarSub INSTALL_BIN][LIT_CHARS /pnacl-nm]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_TRANSLATE', {[DQ [VarSub INSTALL_BIN][LIT_CHARS /pnacl-translate]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_READELF', {[DQ [VarSub INSTALL_BIN][LIT_CHARS /pnacl-readelf]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_SIZE', {[DQ [VarSub BINUTILS_INSTALL_DIR][LIT_CHARS /bin/][VarSub REAL_CROSS_TARGET][LIT_CHARS -size]]})]) (= scope= flags=2 words=[] bindings=[('PNACL_STRIP', {[DQ [VarSub INSTALL_BIN][LIT_CHARS /pnacl-strip]]})]) (= scope= flags=2 words=[] bindings=[('ILLEGAL_TOOL', {[DQ [VarSub INSTALL_BIN]] [LIT_CHARS /pnacl-illegal]})]) (= scope= flags=2 words=[] bindings=[('HOST_CLANG_PATH', {[DQ [VarSub GCLIENT_ROOT][LIT_CHARS "/third_party/llvm-build/Release+Asserts/bin"]]})]) (= scope= flags=2 words=[] bindings=[('HOST_CLANG', {[DQ [VarSub HOST_CLANG_PATH][LIT_CHARS /clang]]})]) (= scope= flags=2 words=[] bindings=[('HOST_LIBCXX', {[DQ [VarSub NACL_ROOT][LIT_CHARS /toolchain_build/out/libcxx_x86_64_linux_install]]})]) (= scope= flags=0 words=[] bindings=[('SBTC_PRODUCTION', {[VarSub SBTC_PRODUCTION test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS true]}]})]) (= scope= flags=0 words=[] bindings=[('SBTC_ARCHES_ALL', {[VarSub SBTC_ARCHES_ALL test_op=VS_TEST_COLON_HYPHEN {[DQ [LIT_CHARS "armv7 i686 x86_64"]]}]})]) (FunctionDef get-sbtc-llvm-arches [] (Pipeline (Com {[LIT_CHARS echo]} {[VarSub SBTC_ARCHES_ALL]}) (Com {[LIT_CHARS sed]} {[SQ ]}) (Com {[LIT_CHARS sed]} {[SQ ]}) ) ) (= scope= flags=0 words=[] bindings=[('SBTC_ARCHES_LLVM', {[ComSub (Com {[LIT_CHARS get-sbtc-llvm-arches]})]})]) (= scope= flags=0 words=[] bindings=[('CC', {[VarSub CC test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS gcc]}]})]) (= scope= flags=0 words=[] bindings=[('CXX', {[VarSub CXX test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS "g++"]}]})]) (= scope= flags=0 words=[] bindings=[('AR', {[VarSub AR test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS ar]}]})]) (= scope= flags=0 words=[] bindings=[('RANLIB', {[VarSub RANLIB test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS ranlib]}]})]) (If (Com {[VarSub HOST_ARCH_X8632]}) (List (= scope= flags=0 words=[] bindings=[('CC', {[DQ [VarSub PNACL_ROOT][LIT_CHARS /scripts/mygcc32]]})]) (= scope= flags=0 words=[] bindings=[('CXX', {[DQ [VarSub PNACL_ROOT][LIT_CHARS "/scripts/myg++32"]]})]) ) ) (FunctionDef ArgumentToAbsolutePath [] (List (= scope= flags=0 words=[] bindings=[('relpath', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('savepwd', {[DQ [ComSub (Com {[LIT_CHARS pwd]})]]})]) (Com {[LIT_CHARS cd]} {[DQ [VarSub PWD_ON_ENTRY]]}) (Com {[LIT_CHARS GetAbsolutePath]} {[DQ [VarSub relpath]]}) (Com {[LIT_CHARS cd]} {[DQ [VarSub savepwd]]}) ) ) (FunctionDef translator-clean-all [] (List (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS TRANSLATOR]]} {[DQ [LIT_CHARS "Clean all"]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub TC_BUILD]] [LIT_CHARS /translator] [LIT_OTHER "*"]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub INSTALL_TRANSLATOR]] [LIT_OTHER "*"]}) ) ) (FunctionDef translator-all [] (List (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS "SANDBOXED TC [prod="][VarSub SBTC_PRODUCTION][LIT_CHARS "] [arches="][VarSub SBTC_ARCHES_ALL][LIT_CHARS "]"]]}) (Com {[LIT_CHARS sdk]}) (Com {[LIT_CHARS sdk-private-libs]}) (If (Com {[VarSub SBTC_PRODUCTION]}) (List (= scope= flags=0 words=[{[LIT_CHARS arch]}] bindings=[]) (For arch [{[VarSub SBTC_ARCHES_LLVM]}]) (Com {[LIT_CHARS llvm-sb]} {[VarSub arch]}) ) (For arch [{[VarSub SBTC_ARCHES_ALL]}]) (Com {[LIT_CHARS binutils-gold-sb]} {[VarSub arch]}) ) ) (ElseTrue) (List (Com {[LIT_CHARS llvm-sb]} {[LIT_CHARS universal]}) (Com {[LIT_CHARS binutils-gold-sb]} {[LIT_CHARS universal]}) (If (Com {[VarSub PNACL_PRUNE]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorInstallDir]} {[LIT_CHARS universal]})]]}) ) ) ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub INSTALL_TRANSLATOR] [LIT_CHARS /translator]}) (Com {[LIT_CHARS cp]} {[LIT_CHARS -a]} {[VarSub INSTALL_LIB_NATIVE] [LIT_OTHER "*"]} {[VarSub INSTALL_TRANSLATOR] [LIT_CHARS /translator]}) (Com {[LIT_CHARS driver-install-translator]}) (If (Com {[VarSub PNACL_PRUNE]}) (Com {[LIT_CHARS sdk-clean]}) ) ) ) (FunctionDef translator-prune [] (Com {[LIT_CHARS find]} {[DQ [VarSub INSTALL_TRANSLATOR]]} {[LIT_CHARS -name]} {[DQ [LIT_CHARS "*.pexe"]]} {[LIT_CHARS -exec]} {[DQ [LIT_CHARS rm]]} {[LIT_LBRACE "{"] [LIT_RBRACE "}"]} {[LIT_OTHER "+"]}) ) (FunctionDef translator-clean [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS TRANSLATOR]]} {[DQ [LIT_CHARS "Clean "][VarSub arch]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorInstallDir]} {[VarSub arch]})]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorBuildDir]} {[VarSub arch]})]]}) ) ) (FunctionDef speculative-add [] (List (= scope= flags=0 words=[] bindings=[('mod', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('SPECULATIVE_REBUILD_SET', {[DQ [VarSub SPECULATIVE_REBUILD_SET][LIT_CHARS " "][VarSub mod]]})]) ) ) (FunctionDef speculative-check [] (List (= scope= flags=0 words=[] bindings=[('mod', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('search', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub SPECULATIVE_REBUILD_SET]]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -F]} {[DQ [VarSub mod]]}) )]})]) (Com {[LIT_OTHER "["]} {[VarSub search transform_ops=[(#len)]]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[VarSub ?]}) ) ) (FunctionDef clean [] (List (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS CLEAN]]} {[DQ [LIT_CHARS "Cleaning build, log, and install directories."]]}) (Com {[LIT_CHARS clean-logs]}) (Com {[LIT_CHARS clean-build]}) (Com {[LIT_CHARS clean-install]}) (Com {[LIT_CHARS clean-scons]}) ) ) (FunctionDef fast-clean [] (List (= scope= flags=0 words=[] bindings=[('did_backup', {[LIT_CHARS false]})]) (= scope= flags=0 words=[] bindings=[('backup_dir', {[DQ [VarSub PNACL_ROOT][LIT_CHARS /fast-clean-llvm-backup]]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -d]} {[DQ [VarSub TC_BUILD_LLVM]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub backup_dir]]}) (Com {[LIT_CHARS mv]} {[DQ [VarSub TC_BUILD_LLVM]]} {[DQ [VarSub backup_dir]]}) (= scope= flags=0 words=[] bindings=[('did_backup', {[LIT_CHARS true]})]) ) ) (Com {[LIT_CHARS clean]}) (If (Com {[VarSub did_backup]}) (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub TC_BUILD]]}) (Com {[LIT_CHARS mv]} {[DQ [VarSub backup_dir]]} {[DQ [VarSub TC_BUILD_LLVM]]}) ) ) ) ) (FunctionDef clean-scons [] (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub SCONS_OUT]]}) ) (FunctionDef clean-build [] (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub TC_BUILD]]}) ) (FunctionDef clean-install [] (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub INSTALL_ROOT]]}) ) (FunctionDef libs-clean [] (List (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS LIBS-CLEAN]]} {[DQ [LIT_CHARS "Cleaning "][VarSub INSTALL_ROOT][LIT_CHARS "/libs-*"]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub INSTALL_LIB]] [LIT_CHARS /] [LIT_OTHER "*"]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub INSTALL_LIB_NATIVE]] [LIT_OTHER "*"]}) ) ) (FunctionDef prune-host [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "stripping binaries (binutils)"]]}) (Com {[LIT_CHARS strip]} {[DQ [VarSub BINUTILS_INSTALL_DIR]] [LIT_CHARS /bin/] [LIT_OTHER "*"]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "stripping binaries (llvm)"]]}) (If (Pipeline! (Com {[LIT_CHARS strip]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/] [LIT_OTHER "*"]}) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NOTE: some failures during stripping are expected"]]}) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "removing unused clang shared lib"]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /] [VarSub SO_DIR] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS clang] [VarSub SO_EXT]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "removing unused binutils binaries"]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/le32-nacl-elfedit]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/le32-nacl-gprof]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/le32-nacl-objcopy]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "removing unused LLVM/Clang binaries"]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/bc-wrap]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/bugpoint]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/c-index-test]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/clang-] [LIT_OTHER "*"]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llc]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/lli]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-ar]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-bcanalyzer]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-config]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-cov]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-diff]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-dwarfdump]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-extract]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-mcmarkup]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-prof]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-ranlib]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-readobj]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-rtdyld]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-size]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-stress]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/llvm-symbolizer]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/macho-dump]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/pso-stub]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /bin/] [LIT_OTHER "*"] [LIT_CHARS -tblgen]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "removing llvm & clang headers"]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /include]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "removing docs/ and share/"]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /docs]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /share]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "removing unused libs"]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /lib/] [LIT_OTHER "*"] [LIT_CHARS .a]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /lib/bfd-plugins]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /lib/BugpointPasses.so]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub LLVM_INSTALL_DIR]] [LIT_CHARS /lib/LLVMHello.so]}) ) ) (FunctionDef prune [] (List (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS PRUNE]]} {[DQ [LIT_CHARS "Pruning toolchain"]]}) (= scope= flags=0 words=[] bindings=[('dir_size_before', {[ComSub (Com {[LIT_CHARS get_dir_size_in_mb]} {[VarSub INSTALL_ROOT]})]})]) (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "Size before: "][VarSub INSTALL_ROOT][LIT_CHARS " "][VarSub dir_size_before][LIT_CHARS MB]]}) (Com {[LIT_CHARS prune-host]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "removing .pyc files"]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub INSTALL_BIN]] [LIT_CHARS /pydir/] [LIT_OTHER "*"] [LIT_CHARS .pyc]}) (= scope= flags=0 words=[] bindings=[('dir_size_after', {[ComSub (Com {[LIT_CHARS get_dir_size_in_mb]} {[DQ [VarSub INSTALL_ROOT]]})]})]) (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "Size after: "][VarSub INSTALL_ROOT][LIT_CHARS " "][VarSub dir_size_after][LIT_CHARS MB]]}) ) ) (FunctionDef tarball [] (List (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -n]} {[DQ [VarSub 1 test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Error: tarball needs a tarball name."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('tarball', {[DQ [ComSub (Com {[LIT_CHARS ArgumentToAbsolutePath]} {[DQ [VarSub 1]]})]]})]) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS TARBALL]]} {[DQ [LIT_CHARS "Creating tar ball "][VarSub tarball]]}) (Com {[LIT_CHARS tar]} {[LIT_CHARS zcf]} {[DQ [VarSub tarball]]} {[LIT_CHARS -C]} {[DQ [VarSub INSTALL_ROOT]]} {[LIT_CHARS .]}) (Com {[LIT_CHARS ls]} {[LIT_CHARS -l]} {[VarSub tarball]}) ) ) (FunctionDef translator-tarball [] (List (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -n]} {[DQ [VarSub 1 test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Error: tarball needs a tarball name."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('tarball', {[DQ [ComSub (Com {[LIT_CHARS ArgumentToAbsolutePath]} {[DQ [VarSub 1]]})]]})]) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS TARBALL]]} {[DQ [LIT_CHARS "Creating translator tar ball "][VarSub tarball]]}) (Com {[LIT_CHARS tar]} {[LIT_CHARS zcf]} {[DQ [VarSub tarball]]} {[LIT_CHARS -C]} {[DQ [VarSub INSTALL_TRANSLATOR]]} {[LIT_CHARS .]}) ) ) (FunctionDef check-arch [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (For valid_arch [{[LIT_CHARS i686]}, {[LIT_CHARS x86_64]}, {[LIT_CHARS armv7]}, {[LIT_CHARS universal]}]) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub arch]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [VarSub valid_arch]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]}) ) ) (Com {[LIT_CHARS Fatal]} {[DQ [LIT_CHARS "ERROR: Unsupported arch ["][VarSub 1][LIT_CHARS "]. Must be: i686, x86_64, armv7, universal"]]}) ) ) (FunctionDef llvm-sb-setup [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('LLVM_SB_LOG_PREFIX', {[DQ [LIT_CHARS llvm.sb.][VarSub arch]]})]) (= scope= flags=0 words=[] bindings=[('LLVM_SB_OBJDIR', {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorBuildDir]} {[VarSub arch]})][LIT_CHARS /llvm-sb]]})]) (= scope= flags=0 words=[] bindings=[('flags', {[DQ [LIT_CHARS "-static -I"][ComSub (Com {[LIT_CHARS GetAbsolutePath]} {[VarSub NACL_ROOT] [LIT_CHARS /..]})][LIT_CHARS " "][LIT_CHARS " --pnacl-disable-abi-check "]]})]) (= scope= flags=0 words=[] bindings=[('LLVM_SB_CONFIGURE_ENV', {[Array {OP_NEWLINE "\n"} {[LIT_VAR_LIKE "AR="] [DQ [VarSub PNACL_AR]] =} {[LIT_VAR_LIKE "AS="] [DQ [VarSub PNACL_AS]] =} {[LIT_VAR_LIKE "CC="] [DQ [VarSub PNACL_CC][LIT_CHARS " "][VarSub flags]] =} {[LIT_VAR_LIKE "CXX="] [DQ [VarSub PNACL_CXX][LIT_CHARS " "][VarSub flags]] =} {[LIT_VAR_LIKE "LD="] [DQ [VarSub PNACL_LD][LIT_CHARS " "][VarSub flags]] =} {[LIT_VAR_LIKE "NM="] [DQ [VarSub PNACL_NM]] =} {[LIT_VAR_LIKE "RANLIB="] [DQ [VarSub PNACL_RANLIB]] =} {[LIT_VAR_LIKE "BUILD_CC="] [DQ [VarSub HOST_CLANG]] =} {[LIT_VAR_LIKE "BUILD_CXX="] [DQ [VarSub HOST_CLANG][LIT_CHARS "++"]] =}]})]) ) ) (FunctionDef llvm-sb [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (Com {[LIT_CHARS check-arch]} {[VarSub arch]}) (Com {[LIT_CHARS llvm-sb-setup]} {[VarSub arch]}) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS LLVM-SB]]} {[DQ [LIT_CHARS "Sandboxed pnacl-llc ["][VarSub arch][LIT_CHARS "]"]]}) (= scope= flags=0 words=[] bindings=[('srcdir', {[DQ [VarSub TC_SRC_LLVM]]})]) (Com {[LIT_CHARS assert-dir]} {[DQ [VarSub srcdir]]} {[DQ [LIT_CHARS "You need to checkout llvm."]]}) (If (Com {[LIT_CHARS llvm-sb-needs-configure]} {[VarSub arch]}) (List (Com {[LIT_CHARS llvm-sb-clean]} {[VarSub arch]}) (Com {[LIT_CHARS llvm-sb-configure]} {[VarSub arch]}) ) (ElseTrue) (Com {[LIT_CHARS SkipBanner]} {[DQ [LIT_CHARS LLVM-SB]]} {[DQ [LIT_CHARS "configure "][VarSub arch]]}) ) (Com {[LIT_CHARS llvm-sb-make]} {[VarSub arch]}) (Com {[LIT_CHARS llvm-sb-install]} {[VarSub arch]}) ) ) (FunctionDef llvm-sb-needs-configure [] (List (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[DQ [VarSub LLVM_SB_OBJDIR][LIT_CHARS /config.status]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[VarSub ?]}) ) ) (FunctionDef llvm-sb-clean [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS LLVM-SB]]} {[DQ [LIT_CHARS "Clean "][VarSub arch]]}) (= scope= flags=0 words=[] bindings=[('objdir', {[DQ [VarSub LLVM_SB_OBJDIR]]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub objdir]]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub objdir]]}) ) ) (FunctionDef llvm-sb-configure [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS LLVM-SB]]} {[DQ [LIT_CHARS "Configure "][VarSub arch]]}) (= scope= flags=0 words=[] bindings=[('srcdir', {[DQ [VarSub TC_SRC_LLVM]]})]) (= scope= flags=0 words=[] bindings=[('objdir', {[DQ [VarSub LLVM_SB_OBJDIR]]})]) (= scope= flags=0 words=[] bindings=[('installdir', {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorInstallDir]} {[VarSub arch]})]]})]) (= scope= flags=0 words=[] bindings=[('targets', {[DQ ]})]) (Case to_match={[VarSub arch]}, pat_word_list=[[{[LIT_CHARS i686]}], [{[LIT_CHARS x86_64]}], [{[LIT_CHARS armv7]}], [{[LIT_CHARS universal]}]] (= scope= flags=0 words=[] bindings=[('targets', {[LIT_CHARS x86]})]) (= scope= flags=0 words=[] bindings=[('targets', {[LIT_CHARS x86]})]) (= scope= flags=0 words=[] bindings=[('targets', {[LIT_CHARS arm]})]) (= scope= flags=0 words=[] bindings=[('targets', {[LIT_CHARS x86] [LIT_COMMA ","] [LIT_CHARS arm]})]) ) (Com {[LIT_CHARS spushd]} {[DQ [VarSub objdir]]}) (Com {[LIT_CHARS RunWithLog]} {[VarSub LLVM_SB_LOG_PREFIX] [LIT_CHARS .configure]} {[LIT_CHARS env]} {[LIT_CHARS -i]} {[LIT_VAR_LIKE "PATH="] [DQ [LIT_CHARS "/usr/bin:/bin"]] =} {[VarSub srcdir] [LIT_CHARS /configure]} {[DQ [VarSub LLVM_SB_CONFIGURE_ENV bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} {[LIT_CHARS --prefix] [LIT_OTHER "="] [VarSub installdir]} {[LIT_CHARS --host] [LIT_OTHER "="] [LIT_CHARS nacl]} {[LIT_CHARS --enable-targets] [LIT_OTHER "="] [VarSub targets]} {[LIT_CHARS --disable-assertions]} {[LIT_CHARS --enable-pic] [LIT_OTHER "="] [LIT_CHARS no]} {[LIT_CHARS --enable-static]} {[LIT_CHARS --enable-shared] [LIT_OTHER "="] [LIT_CHARS no]} {[LIT_CHARS --disable-jit]} {[LIT_CHARS --enable-optimized]} {[LIT_CHARS --enable-libcpp]} {[LIT_CHARS --target] [LIT_OTHER "="] [VarSub CROSS_TARGET_ARM]} {[LIT_VAR_LIKE "llvm_cv_link_use_export_dynamic="] [LIT_CHARS no] =} {[LIT_VAR_LIKE "ac_cv_func_getrusage="] [LIT_CHARS no] =} {[LIT_VAR_LIKE "ac_cv_func_getrlimit="] [LIT_CHARS no] =} {[LIT_VAR_LIKE "ac_cv_func_setrlimit="] [LIT_CHARS no] =}) (Com {[LIT_CHARS spopd]}) ) ) (FunctionDef llvm-sb-make [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS LLVM-SB]]} {[DQ [LIT_CHARS "Make "][VarSub arch]]}) (= scope= flags=0 words=[] bindings=[('objdir', {[DQ [VarSub LLVM_SB_OBJDIR]]})]) (Com {[LIT_CHARS spushd]} {[DQ [VarSub objdir]]}) (Com {[LIT_CHARS ts-touch-open]} {[DQ [VarSub objdir]]}) (= scope= flags=0 words=[] bindings=[('tools_to_build', {[DQ [LIT_CHARS pnacl-llc]]})]) (= scope= flags=0 words=[] bindings=[('export_dyn_env', {[DQ [LIT_CHARS "llvm_cv_link_use_export_dynamic=no"]]})]) (= scope= flags=0 words=[] bindings=[('isjit', {[LIT_CHARS 0]})]) (Com {[LIT_CHARS RunWithLog]} {[VarSub LLVM_SB_LOG_PREFIX] [LIT_CHARS .make]} {[LIT_CHARS env]} {[LIT_CHARS -i]} {[LIT_VAR_LIKE "PATH="] [DQ [LIT_CHARS "/usr/bin:/bin:"][VarSub HOST_CLANG_PATH]] =} {[LIT_VAR_LIKE "LD_LIBRARY_PATH="] [DQ [VarSub HOST_LIBCXX][LIT_CHARS /lib]] =} {[LIT_VAR_LIKE "ONLY_TOOLS="] [DQ [VarSub tools_to_build]] =} {[LIT_VAR_LIKE "NACL_SANDBOX="] [LIT_CHARS 1] =} {[LIT_VAR_LIKE "KEEP_SYMBOLS="] [LIT_CHARS 1] =} {[LIT_VAR_LIKE "NO_DEAD_STRIP="] [LIT_CHARS 1] =} {[LIT_VAR_LIKE "VERBOSE="] [LIT_CHARS 1] =} {[LIT_VAR_LIKE "BUILD_CC="] [DQ [VarSub HOST_CLANG]] =} {[LIT_VAR_LIKE "BUILD_CXX="] [DQ [VarSub HOST_CLANG][LIT_CHARS "++"]] =} {[LIT_VAR_LIKE "BUILD_CXXFLAGS="] [DQ [LIT_CHARS "-stdlib=libc++ -I"][VarSub HOST_LIBCXX][LIT_CHARS "/include/c++/v1"]] =} {[LIT_VAR_LIKE "BUILD_LDFLAGS="] [DQ [LIT_CHARS -L][VarSub HOST_LIBCXX][LIT_CHARS /lib]] =} {[VarSub export_dyn_env]} {[LIT_CHARS make]} {[VarSub MAKE_OPTS]} {[LIT_CHARS tools-only]}) (Com {[LIT_CHARS ts-touch-commit]} {[DQ [VarSub objdir]]}) (Com {[LIT_CHARS spopd]}) ) ) (FunctionDef llvm-sb-install [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS LLVM-SB]]} {[DQ [LIT_CHARS "Install "][VarSub arch]]}) (= scope= flags=0 words=[] bindings=[('toolname', {[DQ [LIT_CHARS pnacl-llc]]})]) (= scope= flags=0 words=[] bindings=[('installdir', {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorInstallDir]} {[VarSub arch]})]] [LIT_CHARS /bin]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub installdir]]}) (Com {[LIT_CHARS spushd]} {[DQ [VarSub installdir]]}) (= scope= flags=0 words=[] bindings=[('objdir', {[DQ [VarSub LLVM_SB_OBJDIR]]})]) (Com {[LIT_CHARS cp]} {[LIT_CHARS -f]} {[DQ [VarSub objdir]] [LIT_CHARS /Release] [LIT_OTHER "*"] [LIT_CHARS /bin/] [VarSub toolname]} {[LIT_CHARS .]}) (Com {[LIT_CHARS mv]} {[LIT_CHARS -f]} {[VarSub toolname]} {[VarSub toolname] [LIT_CHARS .pexe]}) (= scope= flags=0 words=[] bindings=[('arches', {[VarSub arch]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub arch]]} {[DQ [LIT_CHARS universal]]}}) (= scope= flags=0 words=[] bindings=[('arches', {[DQ [VarSub SBTC_ARCHES_ALL]]})]) (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub arch]]} {[DQ [LIT_CHARS i686]]}}) (= scope= flags=0 words=[] bindings=[('arches', {[DQ [LIT_CHARS "i686 x86_64"]]})]) ) (= scope= flags=0 words=[] bindings=[('have_segment_gap', {[DQ [LIT_CHARS false]]})]) (Com {[LIT_CHARS translate-sb-tool]} {[VarSub toolname]} {[DQ [VarSub arches]]} {[DQ [VarSub have_segment_gap]]}) (Com {[LIT_CHARS install-sb-tool]} {[VarSub toolname]} {[DQ [VarSub arches]]}) (Com {[LIT_CHARS spopd]}) ) ) (FunctionDef translate-sb-tool [] (List (= scope= flags=0 words=[] bindings=[('toolname', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('arches', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('have_segment_gap', {[VarSub 3]})]) (= scope= flags=0 words=[] bindings=[('pexe', {[DQ [VarSub toolname][LIT_CHARS .pexe]]})]) (If (Com {[VarSub PNACL_PRUNE]}) (Com {[VarSub PNACL_STRIP]} {[LIT_CHARS --strip-debug]} {[DQ [VarSub pexe]]}) ) (= scope= flags=0 words=[{[LIT_CHARS tarch]}] bindings=[]) (For tarch [{[VarSub arches]}]) (List (= scope= flags=0 words=[] bindings=[('nexe', {[DQ [VarSub toolname][LIT_CHARS .][VarSub tarch][LIT_CHARS .nexe]]})]) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS TRANSLATE]]} {[DQ [LIT_CHARS "Translating "][VarSub toolname][LIT_CHARS ".pexe to "][VarSub tarch][LIT_CHARS " (background)"]]}) (= scope= flags=0 words=[] bindings=[('translate_flags', {[DQ [LIT_CHARS "-ffunction-sections -fdata-sections --gc-sections "][LIT_CHARS " --allow-llvm-bitcode-input -arch "][VarSub tarch][LIT_CHARS " "]]})]) (If (Pipeline! (Com {[VarSub have_segment_gap]}) ) (= scope= flags=0 words=[] bindings=[('translate_flags+', {[DQ [LIT_CHARS "--noirt "]]})]) ) (Fork (Com {[DQ [VarSub PNACL_TRANSLATE]]} {[VarSub translate_flags]} {[DQ [VarSub pexe]]} {[LIT_CHARS -o]} {[DQ [VarSub nexe]]}) ) (Com {[LIT_CHARS QueueLastProcess]}) ) ) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS TRANSLATE]]} {[DQ [LIT_CHARS "Waiting for translation processes to finish"]]}) (Com {[LIT_CHARS QueueWait]}) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub toolname]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS pnacl-llc]]} {[LIT_OTHER "]"]}) (For tarch [{[VarSub arches]}]) (List (= scope= flags=0 words=[] bindings=[('nexe', {[DQ [VarSub toolname][LIT_CHARS .][VarSub tarch][LIT_CHARS .nexe]]})]) (= scope= flags=0 words=[] bindings=[('llvm_host_glob', {[DQ [VarSub LLVM_INSTALL_DIR][LIT_CHARS "/lib/libLLVM*so"]]})]) (Com {[LIT_CHARS python]} {[DQ [VarSub PNACL_ROOT][LIT_CHARS /prune_test.py]]} {[DQ [VarSub PNACL_NM]]} {[DQ [VarSub llvm_host_glob]]} {[DQ [VarSub nexe]]}) ) ) ) (If (Com {[VarSub PNACL_PRUNE]}) (For tarch [{[VarSub arches]}]) (List (= scope= flags=0 words=[] bindings=[('nexe', {[DQ [VarSub toolname][LIT_CHARS .][VarSub tarch][LIT_CHARS .nexe]]})]) (Com {[VarSub PNACL_STRIP]} {[DQ [VarSub nexe]]}) ) ) ) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS TRANSLATE]]} {[DQ [LIT_CHARS Done.]]}) ) ) (FunctionDef install-sb-tool [] (List (= scope= flags=0 words=[] bindings=[('toolname', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('arches', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[{[LIT_CHARS tarch]}] bindings=[]) (For tarch [{[VarSub arches]}]) (List (= scope= flags=0 words=[] bindings=[('installbin', {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorInstallDir]} {[VarSub tarch]})]] [LIT_CHARS /bin]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub installbin]]}) (Com {[LIT_CHARS mv]} {[LIT_CHARS -f]} {[VarSub toolname] [LIT_CHARS .] [VarSub tarch] [LIT_CHARS .nexe]} {[DQ [VarSub installbin]] [LIT_CHARS /] [VarSub toolname] [LIT_CHARS .nexe]}) (If (Com {[VarSub PNACL_BUILDBOT]}) (List (Com {[LIT_CHARS spushd]} {[DQ [VarSub installbin]]}) (= scope= flags=0 words=[] bindings=[('tag', {[DQ [VarSub toolname][LIT_CHARS _][VarSub tarch][LIT_CHARS _size]]})]) (Com {[LIT_CHARS print-tagged-tool-sizes]} {[DQ [VarSub tag]]} {[DQ [ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS /][VarSub toolname][LIT_CHARS .nexe]]}) (Com {[LIT_CHARS spopd]}) ) ) ) ) ) ) (FunctionDef GetTranslatorBuildDir [] (List (= scope= flags=0 words=[] bindings=[('arch', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub TC_BUILD][LIT_CHARS /translator-][VarSub arch transform_ops=[PatSub {[LIT_CHARS _]} {[LIT_CHARS -]} do_all]]]}) ) ) (FunctionDef GetTranslatorInstallDir [] (List (= scope= flags=0 words=[{[LIT_CHARS arch]}] bindings=[]) (Case to_match={[VarSub 1]}, pat_word_list=[[{[LIT_CHARS i686]}], [{[LIT_CHARS x86_64]}], [{[LIT_CHARS armv7]}], [{[LIT_CHARS default]}]] (= scope= flags=0 words=[] bindings=[('arch', {[LIT_CHARS x86-32]})]) (= scope= flags=0 words=[] bindings=[('arch', {[LIT_CHARS x86-64]})]) (= scope= flags=0 words=[] bindings=[('arch', {[LIT_CHARS arm]})]) (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub INSTALL_TRANSLATOR]] [LIT_CHARS /translator/] [VarSub arch]}) ) ) (FunctionDef binutils-gold-sb [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (Com {[LIT_CHARS check-arch]} {[VarSub arch]}) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS GOLD-NATIVE-SB]]} {[DQ [LIT_CHARS "(libiberty + gold) "][VarSub arch]]}) (= scope= flags=0 words=[] bindings=[('srcdir', {[DQ [VarSub TC_SRC_BINUTILS]]})]) (Com {[LIT_CHARS assert-dir]} {[DQ [VarSub srcdir]]} {[DQ [LIT_CHARS "You need to checkout gold."]]}) (Com {[LIT_CHARS binutils-gold-sb-clean]} {[VarSub arch]}) (Com {[LIT_CHARS binutils-gold-sb-configure]} {[VarSub arch]}) (Com {[LIT_CHARS binutils-gold-sb-make]} {[VarSub arch]}) (Com {[LIT_CHARS binutils-gold-sb-install]} {[VarSub arch]}) ) ) (FunctionDef binutils-gold-sb-clean [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS GOLD-NATIVE-SB]]} {[DQ [LIT_CHARS "Clean "][VarSub arch]]}) (= scope= flags=0 words=[] bindings=[('objdir', {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorBuildDir]} {[VarSub arch]})][LIT_CHARS /binutils-gold-sb]]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub objdir]]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub objdir]]}) ) ) (FunctionDef binutils-gold-sb-configure [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('srcdir', {[DQ [VarSub TC_SRC_BINUTILS]]})]) (= scope= flags=0 words=[] bindings=[('objdir', {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorBuildDir]} {[VarSub arch]})][LIT_CHARS /binutils-gold-sb]]})]) (= scope= flags=0 words=[] bindings=[('installbin', {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorInstallDir]} {[VarSub arch]})][LIT_CHARS /bin]]})]) (= scope= flags=0 words=[] bindings=[('flags', {[DQ [LIT_CHARS "-static -I"][ComSub (Com {[LIT_CHARS GetAbsolutePath]} {[VarSub NACL_ROOT] [LIT_CHARS /..]})][LIT_CHARS " "][LIT_CHARS " -fno-exceptions -O3 --pnacl-disable-abi-check "]]})]) (= scope= flags=0 words=[] bindings=[('configure_env', {[Array {OP_NEWLINE "\n"} {[LIT_VAR_LIKE "AR="] [DQ [VarSub PNACL_AR]] =} {[LIT_VAR_LIKE "AS="] [DQ [VarSub PNACL_AS]] =} {[LIT_VAR_LIKE "CC="] [DQ [VarSub PNACL_CC][LIT_CHARS " "][VarSub flags]] =} {[LIT_VAR_LIKE "CXX="] [DQ [VarSub PNACL_CXX][LIT_CHARS " "][VarSub flags]] =} {[LIT_VAR_LIKE "CC_FOR_BUILD="] [DQ [VarSub CC]] =} {[LIT_VAR_LIKE "CXX_FOR_BUILD="] [DQ [VarSub CXX]] =} {[LIT_VAR_LIKE "LD="] [DQ [VarSub PNACL_LD][LIT_CHARS " "][VarSub flags]] =} {[LIT_VAR_LIKE "NM="] [DQ [VarSub PNACL_NM]] =} {[LIT_VAR_LIKE "RANLIB="] [DQ [VarSub PNACL_RANLIB]] =} {OP_NEWLINE "\n"}]})]) (= scope= flags=0 words=[] bindings=[('gold_targets', {[DQ ]})]) (Case to_match={[VarSub arch]}, pat_word_list=[[{[LIT_CHARS i686]}], [{[LIT_CHARS x86_64]}], [{[LIT_CHARS armv7]}], [{[LIT_CHARS universal]}]] (= scope= flags=0 words=[] bindings=[('gold_targets', {[LIT_CHARS i686-pc-nacl]})]) (= scope= flags=0 words=[] bindings=[('gold_targets', {[LIT_CHARS x86_64-pc-nacl]})]) (= scope= flags=0 words=[] bindings=[('gold_targets', {[LIT_CHARS arm-pc-nacl]})]) (= scope= flags=0 words=[] bindings=[('gold_targets', {[LIT_CHARS i686-pc-nacl] [LIT_COMMA ","] [LIT_CHARS x86_64-pc-nacl] [LIT_COMMA ","] [LIT_CHARS arm-pc-nacl]})]) ) (= scope= flags=0 words=[{[LIT_CHARS target]}] bindings=[]) (If (Com {[LIT_OTHER "["]} {[VarSub arch]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS universal]]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('target', {[LIT_CHARS i686-pc-nacl]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('target', {[VarSub gold_targets]})]) ) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS GOLD-NATIVE-SB]]} {[DQ [LIT_CHARS "Configure (libiberty)"]]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub objdir][LIT_CHARS /libiberty]]}) (Com {[LIT_CHARS spushd]} {[DQ [VarSub objdir][LIT_CHARS /libiberty]]}) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS GOLD-NATIVE-SB]]} {[DQ [LIT_CHARS "Dir ["][ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS "]"]]}) (= scope= flags=0 words=[] bindings=[('log_prefix', {[DQ [LIT_CHARS binutils-gold.sb.][VarSub arch]]})]) (Com {[LIT_CHARS RunWithLog]} {[DQ [VarSub log_prefix]] [LIT_CHARS .configure]} {[LIT_CHARS env]} {[LIT_CHARS -i]} {[LIT_VAR_LIKE "PATH="] [DQ [LIT_CHARS "/usr/bin:/bin"]] =} {[DQ [VarSub configure_env bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} {[VarSub srcdir] [LIT_CHARS /libiberty/configure]} {[LIT_CHARS --prefix] [LIT_OTHER "="] [DQ [VarSub installbin]]} {[LIT_CHARS --host] [LIT_OTHER "="] [VarSub target]} {[LIT_CHARS --target] [LIT_OTHER "="] [VarSub target]}) (Com {[LIT_CHARS spopd]}) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS GOLD-NATIVE-SB]]} {[DQ [LIT_CHARS "Configure (gold) "][VarSub arch]]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub objdir][LIT_CHARS /gold]]}) (Com {[LIT_CHARS spushd]} {[DQ [VarSub objdir][LIT_CHARS /gold]]}) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS GOLD-NATIVE-SB]]} {[DQ [LIT_CHARS "Dir ["][ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS "]"]]}) (Com {[LIT_CHARS RunWithLog]} {[DQ [VarSub log_prefix]] [LIT_CHARS .configure]} {[LIT_CHARS env]} {[LIT_CHARS -i]} {[LIT_VAR_LIKE "PATH="] [DQ [LIT_CHARS "/usr/bin:/bin"]] =} {[DQ [VarSub configure_env bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} {[LIT_VAR_LIKE "CXXFLAGS="] [DQ ] =} {[LIT_VAR_LIKE "CFLAGS="] [DQ ] =} {[LIT_VAR_LIKE "ac_cv_search_zlibVersion="] [LIT_CHARS no] =} {[LIT_VAR_LIKE "ac_cv_header_sys_mman_h="] [LIT_CHARS no] =} {[LIT_VAR_LIKE "ac_cv_func_mmap="] [LIT_CHARS no] =} {[LIT_VAR_LIKE "ac_cv_func_mallinfo="] [LIT_CHARS no] =} {[LIT_VAR_LIKE "ac_cv_func_readv="] [LIT_CHARS no] =} {[LIT_VAR_LIKE "ac_cv_prog_cc_g="] [LIT_CHARS no] =} {[LIT_VAR_LIKE "ac_cv_prog_cxx_g="] [LIT_CHARS no] =} {[VarSub srcdir] [LIT_CHARS /gold/configure]} {[LIT_CHARS --prefix] [LIT_OTHER "="] [DQ [VarSub installbin]]} {[LIT_CHARS --enable-targets] [LIT_OTHER "="] [VarSub gold_targets]} {[LIT_CHARS --host] [LIT_OTHER "="] [VarSub target]} {[LIT_CHARS --target] [LIT_OTHER "="] [VarSub target]} {[LIT_CHARS --disable-nls]} {[LIT_CHARS --enable-plugins] [LIT_OTHER "="] [LIT_CHARS no]} {[LIT_CHARS --enable-naclsrpc] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS --disable-werror]} {[LIT_CHARS --with-sysroot] [LIT_OTHER "="] [DQ [VarSub NONEXISTENT_PATH]]}) (Com {[LIT_CHARS spopd]}) ) ) (FunctionDef binutils-gold-sb-make [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('objdir', {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorBuildDir]} {[VarSub arch]})][LIT_CHARS /binutils-gold-sb]]})]) (Com {[LIT_CHARS ts-touch-open]} {[DQ [VarSub objdir][LIT_CHARS /]]}) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS GOLD-NATIVE-SB]]} {[DQ [LIT_CHARS "Make (liberty) "][VarSub arch]]}) (Com {[LIT_CHARS spushd]} {[DQ [VarSub objdir][LIT_CHARS /libiberty]]}) (Com {[LIT_CHARS RunWithLog]} {[DQ [LIT_CHARS binutils-gold.liberty.sb.][VarSub arch]] [LIT_CHARS .make]} {[LIT_CHARS env]} {[LIT_CHARS -i]} {[LIT_VAR_LIKE "PATH="] [DQ [LIT_CHARS "/usr/bin:/bin"]] =} {[LIT_CHARS make]} {[VarSub MAKE_OPTS]}) (Com {[LIT_CHARS spopd]}) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS GOLD-NATIVE-SB]]} {[DQ [LIT_CHARS "Make (gold) "][VarSub arch]]}) (Com {[LIT_CHARS spushd]} {[DQ [VarSub objdir][LIT_CHARS /gold]]}) (Com {[LIT_CHARS RunWithLog]} {[DQ [LIT_CHARS binutils-gold.sb.][VarSub arch]] [LIT_CHARS .make]} {[LIT_CHARS env]} {[LIT_CHARS -i]} {[LIT_VAR_LIKE "PATH="] [DQ [LIT_CHARS "/usr/bin:/bin"]] =} {[LIT_CHARS make]} {[VarSub MAKE_OPTS]} {[LIT_CHARS ld-new]}) (Com {[LIT_CHARS spopd]}) (Com {[LIT_CHARS ts-touch-commit]} {[DQ [VarSub objdir]]}) ) ) (FunctionDef binutils-gold-sb-install [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('objdir', {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorBuildDir]} {[VarSub arch]})][LIT_CHARS /binutils-gold-sb]]})]) (= scope= flags=0 words=[] bindings=[('installbin', {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorInstallDir]} {[VarSub arch]})][LIT_CHARS /bin]]})]) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS GOLD-NATIVE-SB]]} {[DQ [LIT_CHARS "Install ["][VarSub installbin][LIT_CHARS "] "][VarSub arch]]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub installbin]]}) (Com {[LIT_CHARS spushd]} {[DQ [VarSub installbin]]}) (Com {[LIT_CHARS cp]} {[DQ [VarSub objdir]] [LIT_CHARS /gold/ld-new]} {[LIT_CHARS ld.pexe]}) (= scope= flags=0 words=[] bindings=[('arches', {[VarSub arch]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub arch]]} {[DQ [LIT_CHARS universal]]}}) (= scope= flags=0 words=[] bindings=[('arches', {[DQ [VarSub SBTC_ARCHES_ALL]]})]) ) (= scope= flags=0 words=[] bindings=[('have_segment_gap', {[LIT_CHARS true]})]) (Com {[LIT_CHARS translate-sb-tool]} {[LIT_CHARS ld]} {[DQ [VarSub arches]]} {[VarSub have_segment_gap]}) (Com {[LIT_CHARS install-sb-tool]} {[LIT_CHARS ld]} {[DQ [VarSub arches]]}) (Com {[LIT_CHARS spopd]}) ) ) (= scope= flags=0 words=[] bindings=[('SCONS_ARGS', {[Array {[LIT_VAR_LIKE "MODE="] [LIT_CHARS nacl] =} {OP_NEWLINE "\n"} {[LIT_CHARS -j] [VarSub PNACL_CONCURRENCY]} {OP_NEWLINE "\n"} {[LIT_VAR_LIKE "bitcode="] [LIT_CHARS 1] =} {OP_NEWLINE "\n"} {[LIT_VAR_LIKE "disable_nosys_linker_warnings="] [LIT_CHARS 1] =} {OP_NEWLINE "\n"} {[LIT_VAR_LIKE "naclsdk_validate="] [LIT_CHARS 0] =} {OP_NEWLINE "\n"} {[LIT_CHARS --verbose]}]})]) (= scope= flags=0 words=[] bindings=[('SDK_IS_SETUP', {[LIT_CHARS false]})]) (FunctionDef sdk-setup [] (List (If (AndOr OP_AND_IF (Com {[VarSub SDK_IS_SETUP]}) (Com {[LIT_OTHER "["]} {[VarSub #]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (= scope= flags=0 words=[] bindings=[('SDK_IS_SETUP', {[LIT_CHARS true]})]) (= scope= flags=0 words=[] bindings=[('SDK_INSTALL_ROOT', {[DQ [VarSub INSTALL_ROOT][LIT_CHARS /le32-nacl]]})]) (= scope= flags=0 words=[] bindings=[('SDK_INSTALL_LIB', {[DQ [VarSub SDK_INSTALL_ROOT][LIT_CHARS /lib]]})]) (= scope= flags=0 words=[] bindings=[('SDK_INSTALL_INCLUDE', {[DQ [VarSub SDK_INSTALL_ROOT][LIT_CHARS /include]]})]) ) ) (FunctionDef sdk [] (List (Com {[LIT_CHARS sdk-setup]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS SDK]]}) (Com {[LIT_CHARS sdk-clean]}) (Com {[LIT_CHARS sdk-headers]}) (Com {[LIT_CHARS sdk-libs]}) ) ) (FunctionDef sdk-clean [] (List (Com {[LIT_CHARS sdk-setup]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS SDK]]} {[DQ [LIT_CHARS Clean]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub SDK_INSTALL_LIB]] [LIT_CHARS /] [LIT_LBRACE "{"] [LIT_CHARS libnacl] [LIT_OTHER "*"] [LIT_CHARS .a] [LIT_COMMA ","] [LIT_CHARS libpthread.a] [LIT_COMMA ","] [LIT_CHARS libnosys.a] [LIT_RBRACE "}"]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub SDK_INSTALL_INCLUDE]] [LIT_CHARS /] [LIT_LBRACE "{"] [LIT_CHARS irt] [LIT_OTHER "*"] [LIT_CHARS .h] [LIT_COMMA ","] [LIT_CHARS pthread.h] [LIT_COMMA ","] [LIT_CHARS semaphore.h] [LIT_COMMA ","] [LIT_CHARS nacl] [LIT_RBRACE "}"]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub SCONS_OUT]] [LIT_CHARS /nacl-] [LIT_OTHER "*"] [LIT_CHARS -pnacl] [LIT_OTHER "*"]}) ) ) (FunctionDef sdk-headers [] (List (Com {[LIT_CHARS sdk-setup]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub SDK_INSTALL_INCLUDE]]}) (= scope= flags=0 words=[] bindings=[('extra_flags', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('neutral_platform', {[DQ [LIT_CHARS x86-32]]})]) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS SDK]]} {[DQ [LIT_CHARS "Install headers"]]}) (Com {[LIT_CHARS spushd]} {[DQ [VarSub NACL_ROOT]]}) (Com {[LIT_CHARS RunWithLog]} {[DQ [LIT_CHARS sdk.headers]]} {[LIT_CHARS ./scons]} {[DQ [VarSub SCONS_ARGS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} {[VarSub extra_flags]} {[LIT_VAR_LIKE "platform="] [VarSub neutral_platform] =} {[LIT_VAR_LIKE "pnacl_newlib_dir="] [DQ [VarSub INSTALL_ROOT]] =} {[LIT_CHARS install_headers]} {[LIT_VAR_LIKE "includedir="] [DQ [ComSub (Com {[LIT_CHARS PosixToSysPath]} {[DQ [VarSub SDK_INSTALL_INCLUDE]]})]] =}) (Com {[LIT_CHARS spopd]}) ) ) (FunctionDef sdk-libs [] (List (Com {[LIT_CHARS sdk-setup]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS SDK]]} {[DQ [LIT_CHARS "Install libraries"]]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub SDK_INSTALL_LIB]]}) (= scope= flags=0 words=[] bindings=[('extra_flags', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('neutral_platform', {[DQ [LIT_CHARS x86-32]]})]) (Com {[LIT_CHARS spushd]} {[DQ [VarSub NACL_ROOT]]}) (Com {[LIT_CHARS RunWithLog]} {[DQ [LIT_CHARS sdk.libs.bitcode]]} {[LIT_CHARS ./scons]} {[DQ [VarSub SCONS_ARGS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} {[VarSub extra_flags]} {[LIT_VAR_LIKE "platform="] [VarSub neutral_platform] =} {[LIT_VAR_LIKE "pnacl_newlib_dir="] [DQ [VarSub INSTALL_ROOT]] =} {[LIT_CHARS install_lib]} {[LIT_VAR_LIKE "libdir="] [DQ [ComSub (Com {[LIT_CHARS PosixToSysPath]} {[DQ [VarSub SDK_INSTALL_LIB]]})]] =}) (Com {[LIT_CHARS spopd]}) ) ) (FunctionDef sdk-private-libs [] (List (Com {[LIT_CHARS sdk-setup]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS SDK]]} {[DQ [LIT_CHARS "Private (non-IRT) libs"]]}) (Com {[LIT_CHARS spushd]} {[DQ [VarSub NACL_ROOT]]}) (= scope= flags=0 words=[] bindings=[('neutral_platform', {[DQ [LIT_CHARS x86-32]]})]) (Com {[LIT_CHARS RunWithLog]} {[DQ [LIT_CHARS sdk.libs_private.bitcode]]} {[LIT_CHARS ./scons]} {[LIT_CHARS -j] [VarSub PNACL_CONCURRENCY]} {[LIT_VAR_LIKE "bitcode="] [LIT_CHARS 1] =} {[LIT_VAR_LIKE "platform="] [VarSub neutral_platform] =} {[LIT_VAR_LIKE "pnacl_newlib_dir="] [DQ [VarSub INSTALL_ROOT]] =} {[LIT_CHARS --verbose]} {[LIT_CHARS libnacl_sys_private]} {[LIT_CHARS libpthread_private]} {[LIT_CHARS libnacl_dyncode_private]} {[LIT_CHARS libplatform]} {[LIT_CHARS libimc]} {[LIT_CHARS libimc_syscalls]} {[LIT_CHARS libsrpc]} {[LIT_CHARS libgio]}) (= scope= flags=0 words=[] bindings=[('out_dir_prefix', {[DQ [VarSub SCONS_OUT]] [LIT_CHARS /nacl-x86-32-pnacl-pexe-clang]})]) (= scope= flags=0 words=[] bindings=[('outdir', {[DQ [VarSub out_dir_prefix]] [LIT_CHARS /lib]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub SDK_INSTALL_LIB]]}) (Com {[LIT_CHARS cp]} {[DQ [VarSub outdir]] [LIT_CHARS /lib] [LIT_OTHER "*"] [LIT_CHARS _private.a]} {[DQ [VarSub outdir]] [LIT_CHARS /lib] [LIT_LBRACE "{"] [LIT_CHARS platform] [LIT_COMMA ","] [LIT_CHARS imc] [LIT_COMMA ","] [LIT_CHARS imc_syscalls] [LIT_COMMA ","] [LIT_CHARS srpc] [LIT_COMMA ","] [LIT_CHARS gio] [LIT_RBRACE "}"] [LIT_CHARS .a]} {[DQ [VarSub SDK_INSTALL_LIB]]}) (Com {[LIT_CHARS spopd]}) ) ) (FunctionDef driver [] (List (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS DRIVER]]}) (Com {[LIT_CHARS driver-install]}) ) ) (FunctionDef driver-install-python [] (List (= scope= flags=0 words=[] bindings=[('destdir', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('pydir', {[DQ [VarSub destdir][LIT_CHARS /pydir]]})]) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS DRIVER]]} {[DQ [LIT_CHARS "Installing driver adaptors to "][VarSub destdir]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub destdir]]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub destdir]]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub pydir]]}) (Com {[LIT_CHARS spushd]} {[DQ [VarSub DRIVER_DIR]]}) (Com {[LIT_CHARS cp]} {[VarSub @]} {[LIT_CHARS driver_log.py]} {[LIT_CHARS driver_env.py]} {[LIT_CHARS driver_temps.py]} {[LIT_OTHER "*"] [LIT_CHARS tools.py]} {[LIT_CHARS filetype.py]} {[LIT_CHARS loader.py]} {[LIT_CHARS nativeld.py]} {[DQ [VarSub pydir]]}) (For name [{[VarSub @]}]) (List (= scope= flags=0 words=[] bindings=[('dest', {[DQ [VarSub destdir][LIT_CHARS /][VarSub name transform_ops=[PatSub {[LIT_CHARS .py]} None]]]})]) (Com {[LIT_CHARS cp]} {[LIT_CHARS -a]} {[LIT_CHARS redirect.sh]} {[DQ [VarSub dest]]}) (Com {[LIT_CHARS chmod]} {[LIT_OTHER "+"] [LIT_CHARS x]} {[DQ [VarSub dest]]}) (If (Com {[VarSub BUILD_PLATFORM_WIN]}) (Com {[LIT_CHARS cp]} {[LIT_CHARS -a]} {[LIT_CHARS redirect.bat]} {[DQ [VarSub dest]] [LIT_CHARS .bat]}) ) ) ) (Com {[LIT_CHARS spopd]}) ) ) (FunctionDef feature-version-file-install [] (List (= scope= flags=0 words=[] bindings=[('install_root', {[VarSub 1]})]) (Com {[LIT_CHARS echo]} {[LIT_CHARS 6]} < (FilenameRedirectNode filename={[DQ [VarSub install_root][LIT_CHARS /FEATURE_VERSION]]} "> 1), > ) ) ) (FunctionDef driver-install [] (List (= scope= flags=0 words=[] bindings=[('bindir', {[LIT_CHARS bin]})]) (If (AndOr OP_AND_IF (Com {[VarSub HOST_ARCH_X8664]}) (Com {[VarSub BUILD_PLATFORM_LINUX]}) ) (List (= scope= flags=0 words=[] bindings=[('bindir', {[DQ [LIT_CHARS bin64]]})]) (If (DBracket {B! {B1 UNARY_FILE_d {[DQ [VarSub INSTALL_BIN]]}}}) (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub INSTALL_ROOT]]}) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[VarSub bindir]} {[DQ [VarSub INSTALL_BIN]]}) ) ) ) ) (= scope= flags=0 words=[] bindings=[('destdir', {[DQ [VarSub INSTALL_ROOT][LIT_CHARS /][VarSub bindir]]})]) (Com {[LIT_CHARS driver-install-python]} {[DQ [VarSub destdir]]} {[DQ [LIT_CHARS "pnacl-*.py"]]}) (Com {[LIT_CHARS echo]} {[DQ ] [DQ [LIT_CHARS "HAS_FRONTEND=1\n"][LIT_CHARS "HOST_ARCH="][VarSub HOST_ARCH]] [DQ ]} < (FilenameRedirectNode filename={[DQ [VarSub destdir]] [LIT_CHARS /driver.conf]} "> 1), > ) (If (Com {[VarSub BUILD_PLATFORM_WIN]}) (List (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS DRIVER]]} {[DQ [LIT_CHARS "Copying cygwin libraries"]]}) (= scope= flags=0 words=[] bindings=[('deps', {[DQ [LIT_CHARS "gcc_s-1 iconv-2 win1 intl-8 stdc++-6 z"]]})]) (For name [{[VarSub deps]}]) (Com {[LIT_CHARS cp]} {[DQ [LIT_CHARS /bin/cyg][VarSub name][LIT_CHARS .dll]]} {[DQ [VarSub destdir]]}) ) ) ) (Com {[LIT_CHARS DumpAllRevisions]} < (FilenameRedirectNode filename={[DQ [VarSub destdir][LIT_CHARS /REV]]} "> 1), > ) (Com {[LIT_CHARS feature-version-file-install]} {[VarSub INSTALL_ROOT]}) ) ) (FunctionDef driver-install-translator [] (List (= scope= flags=0 words=[] bindings=[('destdir', {[DQ [VarSub INSTALL_TRANSLATOR][LIT_CHARS /bin]]})]) (Com {[LIT_CHARS driver-install-python]} {[DQ [VarSub destdir]]} {[LIT_CHARS pnacl-translate.py]}) (Com {[LIT_CHARS echo]} {[DQ ] [DQ [LIT_CHARS "HAS_FRONTEND=0"]] [DQ ]} < (FilenameRedirectNode filename={[DQ [VarSub destdir]] [LIT_CHARS /driver.conf]} "> 1), > ) (Com {[LIT_CHARS feature-version-file-install]} {[VarSub INSTALL_TRANSLATOR]}) ) ) (FunctionDef DumpAllRevisions [] (List (Com {[LIT_CHARS one-line-rev-info]} {[VarSub NACL_ROOT]}) (For d [{[VarSub PNACL_GIT_ROOT] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS /]}]) (Com {[LIT_CHARS one-line-rev-info]} {[VarSub d]}) ) ) ) (= scope= flags=2 words=[] bindings=[('NACL_OBJDUMP', {[VarSub BINUTILS_INSTALL_DIR] [LIT_CHARS /bin/] [VarSub REAL_CROSS_TARGET] [LIT_CHARS -objdump]})]) (FunctionDef ExtractAndCheck [] (List (= scope= flags=0 words=[] bindings=[('checker', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('pattern', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('archive', {[DQ [VarSub 3]]})]) (= scope= flags=0 words=[] bindings=[('tmp', {[DQ [LIT_CHARS /tmp/ar-verify-][VarSub RANDOM]]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub tmp]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub tmp]}) (Com {[LIT_CHARS cp]} {[DQ [VarSub archive]]} {[DQ [VarSub tmp]]}) (Com {[LIT_CHARS spushd]} {[VarSub tmp]}) (Com {[VarSub PNACL_AR]} {[LIT_CHARS x]} {[ComSub (Com {[LIT_CHARS basename]} {[VarSub archive]})]}) (= scope= flags=0 words=[] bindings=[('count', {[LIT_CHARS 0]})]) (For i [{[VarSub pattern]}]) (List (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub i]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS continue]}) ) (= scope= flags=0 words=[] bindings=[('count', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub count]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (Com {[VarSub checker]} {[VarSub i]}) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "PASS ("][VarSub count][LIT_CHARS " files)"]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub tmp]]}) (Com {[LIT_CHARS spopd]}) ) ) (FunctionDef IsLinkerScript [] (List (= scope= flags=0 words=[] bindings=[('fname', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('type', {[DQ [ComSub (Com {[LIT_CHARS file]} {[LIT_CHARS --brief]} {[LIT_CHARS --mime-type]} {[DQ [VarSub fname]]})]]})]) (Case to_match={[DQ [VarSub type]]}, pat_word_list=[[{[LIT_CHARS text/x-c]}], [{[LIT_CHARS text/plain]}]] (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]}) ) ) (FunctionDef VerifyLinkerScript [] (List (= scope= flags=0 words=[] bindings=[('archive', {[DQ [VarSub 1]]})]) (AndOr OP_OR_IF (Pipeline (Com {[VarSub PNACL_PP]} {[LIT_CHARS -xc]} {[DQ [VarSub archive]]}) (Com {[LIT_CHARS awk]} {[LIT_CHARS -v]} {[LIT_VAR_LIKE "archive="] [DQ [ComSub (Com {[LIT_CHARS basename]} {[VarSub archive]})]] =} {[SQ ]}) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) ) (FunctionDef VerifyArchive [] (List (= scope= flags=0 words=[] bindings=[('checker', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('pattern', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('archive', {[DQ [VarSub 3]]})]) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[DQ [LIT_CHARS "verify "][ComSub (Com {[LIT_CHARS basename]} {[DQ [VarSub archive]]})][LIT_CHARS ": "]]}) (If (Com {[LIT_CHARS IsLinkerScript]} {[DQ [VarSub archive]]}) (Com {[LIT_CHARS VerifyLinkerScript]} {[DQ [VarSub archive]]}) (ElseTrue) (Com {[LIT_CHARS ExtractAndCheck]} {[DQ [VarSub checker]]} {[DQ [VarSub pattern]]} {[DQ [VarSub archive]]}) ) ) ) (FunctionDef verify-object-llvm [] (List (If (Pipeline (Com {[VarSub PNACL_DIS]} {[DQ [VarSub 1]]} {[LIT_CHARS -o]} {[LIT_CHARS -]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS asm]}) ) (List (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR asm in "][VarSub 1]]}) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) (If (Com {[LIT_OTHER "["]} {[VarSub PIPESTATUS bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]} {[LIT_CHARS -ne]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) ) (FunctionDef check-elf-abi [] (List (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) (= scope= flags=0 words=[] bindings=[('arch_info', {[DQ [ComSub (Com {[VarSub NACL_OBJDUMP]} {[LIT_CHARS -f]} {[VarSub 1]})]]})]) (If (Pipeline! (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[VarSub 2]} < (HereWordRedirectNode here_word={[VarSub arch_info]} 0), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR "][VarSub 1][LIT_CHARS " - bad file format: "][VarSub 2][LIT_CHARS " vs "][VarSub arch_info][\ LIT_ESCAPED_CHAR "\\n"]]}) (Com {[LIT_CHARS echo]} {[VarSub arch_info]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) ) ) (FunctionDef verify-object-arm [] (List (Com {[LIT_CHARS check-elf-abi]} {[VarSub 1]} {[DQ [LIT_CHARS elf32-littlearm]]}) (If (DBracket {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[VarSub 1]} {[LIT_CHARS aeabi_read_tp.o]}} {B2 BINARY_STRING_EQUAL {[VarSub 1]} {[LIT_CHARS setjmp.o]}}}) (Com {[LIT_CHARS return]}) ) (= scope= flags=0 words=[] bindings=[('arch_info', {[DQ [ComSub (Com {[DQ [VarSub PNACL_READELF]]} {[LIT_CHARS -A]} {[DQ [VarSub 1]]})]]})]) (If (Pipeline! (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[DQ [LIT_CHARS "Tag_FP_arch: VFPv3"]]} < (HereWordRedirectNode here_word={[VarSub arch_info]} 0), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR "][VarSub 1][LIT_CHARS " - bad Tag_FP_arch"]]}) (Pipeline (Com {[DQ [VarSub PNACL_READELF]]} {[LIT_CHARS -A]} {[VarSub 1]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS Tag_FP_arch]}) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) (If (Pipeline! (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[DQ [LIT_CHARS "Tag_CPU_arch: v7"]]} < (HereWordRedirectNode here_word={[VarSub arch_info]} 0), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "FAIL bad "][VarSub 1][LIT_CHARS " Tag_CPU_arch"]]}) (Pipeline (Com {[DQ [VarSub PNACL_READELF]]} {[LIT_CHARS -A]} {[VarSub 1]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS Tag_CPU_arch]}) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) (If (Pipeline! (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[DQ [LIT_CHARS "Tag_Advanced_SIMD_arch: NEONv1"]]} < (HereWordRedirectNode here_word={[VarSub arch_info]} 0), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "FAIL bad "][VarSub 1][LIT_CHARS " Tag_Advanced_SIMD_arch"]]}) (Pipeline (Com {[DQ [VarSub PNACL_READELF]]} {[LIT_CHARS -A]} {[VarSub 1]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS Tag_Advanced_SIMD_arch]}) ) ) ) (If (Pipeline! (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[DQ [LIT_CHARS "Tag_ABI_VFP_args: VFP registers"]]} < (HereWordRedirectNode here_word={[VarSub arch_info]} 0), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "FAIL bad "][VarSub 1][LIT_CHARS " Tag_ABI_VFP_args"]]}) (Pipeline (Com {[DQ [VarSub PNACL_READELF]]} {[LIT_CHARS -A]} {[VarSub 1]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS Tag_ABI_VFP_args]}) ) ) ) ) ) (FunctionDef verify-object-x86-32 [] (Com {[LIT_CHARS check-elf-abi]} {[VarSub 1]} {[DQ [LIT_CHARS elf32-i386]]}) ) (FunctionDef verify-object-x86-64 [] (Com {[LIT_CHARS check-elf-abi]} {[VarSub 1]} {[DQ [LIT_CHARS elf64-x86-64]]}) ) (FunctionDef verify-bitcode-dir [] (List (= scope= flags=0 words=[] bindings=[('dir', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shopt]} {[LIT_CHARS -s]} {[LIT_CHARS nullglob]}) (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "VERIFY: "][VarSub dir]]}) (For i [{[DQ [VarSub dir]] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS .a]}]) (Com {[LIT_CHARS verify-archive-llvm]} {[DQ [VarSub i]]}) ) (For i [{[DQ [VarSub dir]] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS .bc]}]) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[DQ [LIT_CHARS "verify "][ComSub (Com {[LIT_CHARS basename]} {[DQ [VarSub i]]})][LIT_CHARS ": "]]}) (Com {[LIT_CHARS verify-object-llvm]} {[DQ [VarSub i]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "PASS (bitcode)"]]}) ) ) (For i [{[DQ [VarSub dir]] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS .o]}]) (Com {[LIT_CHARS Fatal]} {[DQ [LIT_CHARS "Native object file "][VarSub i][LIT_CHARS " inside bitcode directory"]]}) ) (Com {[LIT_CHARS shopt]} {[LIT_CHARS -u]} {[LIT_CHARS nullglob]}) ) ) (FunctionDef verify-native-dir [] (List (= scope= flags=0 words=[] bindings=[('arch', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('dir', {[DQ [VarSub 2]]})]) (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "VERIFY: "][VarSub dir]]}) (Com {[LIT_CHARS shopt]} {[LIT_CHARS -s]} {[LIT_CHARS nullglob]}) (For i [{[DQ [VarSub dir]] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS .o]}]) (Com {[LIT_CHARS verify-object-] [VarSub arch]} {[DQ [VarSub i]]}) ) (For i [{[DQ [VarSub dir]] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS .a]}]) (Com {[LIT_CHARS verify-archive-] [VarSub arch]} {[DQ [VarSub i]]}) ) (For i [{[DQ [VarSub dir]] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS .bc]}, {[DQ [VarSub dir]] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS .pso]}]) (Com {[LIT_CHARS Fatal]} {[DQ [LIT_CHARS "Bitcode file "][VarSub i][LIT_CHARS " found inside native directory"]]}) ) (Com {[LIT_CHARS shopt]} {[LIT_CHARS -u]} {[LIT_CHARS nullglob]}) ) ) (FunctionDef verify-archive-llvm [] (Com {[LIT_CHARS VerifyArchive]} {[LIT_CHARS verify-object-llvm]} {[SQ ]} {[DQ [VarSub @]]}) ) (FunctionDef verify-archive-arm [] (Com {[LIT_CHARS VerifyArchive]} {[LIT_CHARS verify-object-arm]} {[SQ ]} {[DQ [VarSub @]]}) ) (FunctionDef verify-archive-x86-32 [] (Com {[LIT_CHARS VerifyArchive]} {[LIT_CHARS verify-object-x86-32]} {[SQ ]} {[DQ [VarSub @]]}) ) (FunctionDef verify-archive-x86-64 [] (Com {[LIT_CHARS VerifyArchive]} {[LIT_CHARS verify-object-x86-64]} {[SQ ]} {[DQ [VarSub @]]}) ) (FunctionDef verify [] (List (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS VERIFY]]}) (Com {[LIT_CHARS verify-bitcode]}) (Com {[LIT_CHARS verify-native]}) ) ) (FunctionDef verify-bitcode [] (Com {[LIT_CHARS verify-bitcode-dir]} {[DQ [VarSub INSTALL_LIB]]}) ) (FunctionDef verify-native [] (List (= scope= flags=0 words=[{[LIT_CHARS arch]}] bindings=[]) (For arch [{[LIT_CHARS arm]}, {[LIT_CHARS x86-32]}, {[LIT_CHARS x86-64]}]) (Com {[LIT_CHARS verify-native-dir]} {[VarSub arch]} {[DQ [VarSub INSTALL_LIB_NATIVE][VarSub arch]]}) ) ) ) (FunctionDef verify-triple-build [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS VERIFY]]} {[DQ [LIT_CHARS "Verifying triple build for "][VarSub arch]]}) (= scope= flags=0 words=[] bindings=[('bindir', {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorInstallDir]} {[VarSub arch]})][LIT_CHARS /bin]]})]) (= scope= flags=0 words=[] bindings=[('llc_nexe', {[DQ [VarSub bindir][LIT_CHARS /pnacl-llc.nexe]]})]) (= scope= flags=0 words=[] bindings=[('llc_pexe', {[DQ [VarSub bindir][LIT_CHARS /pnacl-llc.pexe]]})]) (Com {[LIT_CHARS assert-file]} {[DQ [VarSub llc_nexe]]} {[DQ [LIT_CHARS "sandboxed llc for "][VarSub arch][LIT_CHARS " does not exist"]]}) (Com {[LIT_CHARS assert-file]} {[DQ [VarSub llc_pexe]]} {[DQ [LIT_CHARS "pnacl-llc.pexe does not exist"]]}) (= scope= flags=0 words=[] bindings=[('flags', {[DQ [LIT_CHARS "--pnacl-sb --pnacl-driver-verbose"]]})]) (If (Com {[LIT_OTHER "["]} {[VarSub arch]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS arm]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('hostarch', {[ComSub (Com {[LIT_CHARS uname]} {[LIT_CHARS -m]})]})]) (If (Pipeline! (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[DQ [VarSub BUILD_ARCH]]} {[LIT_CHARS arm]}}) ) (= scope= flags=0 words=[] bindings=[('flags+', {[DQ [LIT_CHARS " --pnacl-use-emulator"]]})]) ) ) ) (= scope= flags=0 words=[] bindings=[('triple_install_dir', {[DQ [ComSub (Com {[LIT_CHARS GetTranslatorInstallDir]} {[VarSub arch]})][LIT_CHARS /triple-build]]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub triple_install_dir]}) (= scope= flags=0 words=[] bindings=[('new_llc_nexe', {[DQ [VarSub triple_install_dir][LIT_CHARS /pnacl-llc.rebuild.nexe]]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub triple_install_dir]]}) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS VERIFY]]} {[DQ [LIT_CHARS "Translating "][VarSub llc_pexe][LIT_CHARS " using sandboxed tools ("][VarSub arch][LIT_CHARS ")"]]}) (= scope= flags=0 words=[] bindings=[('sb_translator', {[DQ [VarSub INSTALL_TRANSLATOR][LIT_CHARS /bin/pnacl-translate]]})]) (Com {[LIT_CHARS RunWithLog]} {[DQ [LIT_CHARS verify.triple.build]]} {[DQ [VarSub sb_translator]]} {[VarSub flags]} {[LIT_CHARS -arch]} {[VarSub arch]} {[DQ [VarSub llc_pexe]]} {[LIT_CHARS -o]} {[DQ [VarSub new_llc_nexe]]}) (If (Pipeline! (Com {[LIT_CHARS cmp]} {[LIT_CHARS --silent]} {[DQ [VarSub llc_nexe]]} {[DQ [VarSub new_llc_nexe]]}) ) (List (Com {[LIT_CHARS Banner]} {[DQ [LIT_CHARS "TRIPLE BUILD VERIFY FAILED"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Expected these files to be identical, but they are not:"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " "][VarSub archllc]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " "][VarSub newllc]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS VERIFY]]} {[DQ [LIT_CHARS "Verified "][VarSub arch][LIT_CHARS " OK"]]}) ) ) (FunctionDef show-config [] (List (Com {[LIT_CHARS Banner]} {[DQ [LIT_CHARS "Config Settings:"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "PNACL_BUILDBOT: "][VarSub PNACL_BUILDBOT]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "PNACL_CONCURRENCY: "][VarSub PNACL_CONCURRENCY]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "PNACL_DEBUG: "][VarSub PNACL_DEBUG]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "PNACL_PRUNE: "][VarSub PNACL_PRUNE]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "PNACL_VERBOSE: "][VarSub PNACL_VERBOSE]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "INSTALL_ROOT: "][VarSub INSTALL_ROOT]]}) (Com {[LIT_CHARS Banner]} {[DQ [LIT_CHARS "Your Environment:"]]}) (Pipeline (Com {[LIT_CHARS env]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS PNACL]}) ) (Com {[LIT_CHARS Banner]} {[DQ [LIT_CHARS "uname info for builder:"]]}) (Com {[LIT_CHARS uname]} {[LIT_CHARS -a]}) ) ) (FunctionDef help [] (Com {[LIT_CHARS Usage]}) ) (FunctionDef help-full [] (Com {[LIT_CHARS Usage2]}) ) (FunctionDef has-trusted-toolchain [] (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[VarSub TOOLCHAIN_BASE] [LIT_CHARS /arm_trusted/ld_script_arm_trusted]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) (ElseTrue) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]}) ) ) (FunctionDef check-for-trusted [] (List (If (Pipeline! (Com {[VarSub PNACL_BUILD_ARM]}) ) (Com {[LIT_CHARS return]}) ) (If (Pipeline! (Com {[LIT_CHARS has-trusted-toolchain]}) ) (List (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (If (Com {[VarSub PNACL_BUILDBOT]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Building on bots --> need ARM trusted toolchain to run tests!"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) (Com {[LIT_CHARS trusted-tc-confirm]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Continuing without ARM trusted toolchain"]]}) (= scope= flags=0 words=[] bindings=[('PNACL_BUILD_ARM', {[LIT_CHARS false]})]) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Okay, stopping."]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) ) ) ) ) (FunctionDef trusted-tc-confirm [] (List (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Do you wish to continue without the ARM trusted TC (skip ARM testing)?"]]}) (Com {[LIT_CHARS echo]} {[DQ ]}) (Com {[LIT_CHARS confirm-yes]} {[DQ [LIT_CHARS Continue]]}) (Com {[LIT_CHARS return]} {[VarSub ?]}) ) ) (FunctionDef DebugRun [] (If (AndOr OP_OR_IF (Com {[VarSub PNACL_DEBUG]}) (Com {[VarSub PNACL_BUILDBOT]}) ) (Com {[DQ [VarSub @]]}) ) ) (FunctionDef print-tagged-tool-sizes [] (List (= scope= flags=0 words=[] bindings=[('tag', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('binary', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('sizes', {[Array {[ComSub (Pipeline (Com {[VarSub PNACL_SIZE]} {[LIT_CHARS -B]} {[DQ [VarSub binary]]}) (Com {[LIT_CHARS grep]} {[SQ ]}) )]}]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "RESULT "][VarSub tag][LIT_CHARS ": text= "][VarSub sizes bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})][LIT_CHARS " bytes"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "RESULT "][VarSub tag][LIT_CHARS ": data= "][VarSub sizes bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}})][LIT_CHARS " bytes"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "RESULT "][VarSub tag][LIT_CHARS ": bss= "][VarSub sizes bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}})][LIT_CHARS " bytes"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "RESULT "][VarSub tag][LIT_CHARS ": total= "][VarSub sizes bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 3]}})][LIT_CHARS " bytes"]]}) (= scope= flags=0 words=[] bindings=[('file_size', {[Array {[ComSub (Com {[LIT_CHARS du]} {[LIT_CHARS --bytes]} {[DQ [VarSub binary]]})]}]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "RESULT "][VarSub tag][LIT_CHARS ": file_size= "][VarSub file_size bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})][LIT_CHARS " bytes"]]}) ) ) (FunctionDef ts-dir-changed [] (List (= scope= flags=0 words=[] bindings=[('tsfile', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('dir', {[DQ [VarSub 2]]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[DQ [VarSub tsfile]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('MODIFIED', {[ComSub (Com {[LIT_CHARS find]} {[DQ [VarSub dir]]} {[LIT_CHARS -type]} {[LIT_CHARS f]} {[LIT_CHARS -newer]} {[DQ [VarSub tsfile]]})]})]) (Com {[LIT_OTHER "["]} {[VarSub MODIFIED transform_ops=[(#len)]]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('ret', {[VarSub ?]})]) ) (ElseTrue) (List (Com {[LIT_CHARS true]}) (= scope= flags=0 words=[] bindings=[('ret', {[VarSub ?]})]) ) ) (Com {[LIT_CHARS return]} {[VarSub ret]}) ) ) (FunctionDef ts-modified [] (List (= scope= flags=0 words=[] bindings=[('srcdir', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('objdir', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('tsfile', {[DQ [VarSub objdir][LIT_CHARS /][VarSub TIMESTAMP_FILENAME]]})]) (Com {[LIT_CHARS ts-dir-changed]} {[DQ [VarSub tsfile]]} {[DQ [VarSub srcdir]]}) (Com {[LIT_CHARS return]} {[VarSub ?]}) ) ) (FunctionDef ts-touch [] (List (= scope= flags=0 words=[] bindings=[('tsfile', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS touch]} {[DQ [VarSub tsfile]]}) ) ) (FunctionDef ts-touch-open [] (List (= scope= flags=0 words=[] bindings=[('objdir', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('tsfile', {[DQ [VarSub objdir][LIT_CHARS /][VarSub TIMESTAMP_FILENAME]]})]) (= scope= flags=0 words=[] bindings=[('tsfile_open', {[DQ [VarSub objdir][LIT_CHARS /][VarSub TIMESTAMP_FILENAME][LIT_CHARS _OPEN]]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub tsfile]]}) (Com {[LIT_CHARS touch]} {[DQ [VarSub tsfile_open]]}) ) ) (FunctionDef ts-touch-commit [] (List (= scope= flags=0 words=[] bindings=[('objdir', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('tsfile', {[DQ [VarSub objdir][LIT_CHARS /][VarSub TIMESTAMP_FILENAME]]})]) (= scope= flags=0 words=[] bindings=[('tsfile_open', {[DQ [VarSub objdir][LIT_CHARS /][VarSub TIMESTAMP_FILENAME][LIT_CHARS _OPEN]]})]) (Com {[LIT_CHARS mv]} {[LIT_CHARS -f]} {[DQ [VarSub tsfile_open]]} {[DQ [VarSub tsfile]]}) ) ) (FunctionDef ts-newer-than [] (List (= scope= flags=0 words=[] bindings=[('objdir1', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('objdir2', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('tsfile1', {[DQ [VarSub objdir1][LIT_CHARS /][VarSub TIMESTAMP_FILENAME]]})]) (= scope= flags=0 words=[] bindings=[('tsfile2', {[DQ [VarSub objdir2][LIT_CHARS /][VarSub TIMESTAMP_FILENAME]]})]) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -d]} {[DQ [VarSub objdir1]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -d]} {[DQ [VarSub objdir2]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[DQ [VarSub tsfile1]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[DQ [VarSub tsfile2]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (= scope= flags=0 words=[] bindings=[('MODIFIED', {[ComSub (Com {[LIT_CHARS find]} {[DQ [VarSub tsfile1]]} {[LIT_CHARS -newer]} {[DQ [VarSub tsfile2]]})]})]) (If (Com {[LIT_OTHER "["]} {[VarSub MODIFIED transform_ops=[(#len)]]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]}) ) ) (FunctionDef function-completions [] (List (If (Com {[LIT_OTHER "["]} {[VarSub #]} {[LIT_OTHER "="]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS set]} {[LIT_CHARS --]} {[DQ ]}) ) (Com {[LIT_CHARS compgen]} {[LIT_CHARS -A]} {[LIT_CHARS function]} {[LIT_CHARS --]} {[VarSub 1]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) ) ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub INSTALL_ROOT]]}) (If (Com {[LIT_OTHER "["]} {[VarSub #]} {[LIT_OTHER "="]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS set]} {[LIT_CHARS --]} {[LIT_CHARS help]}) ) (If (Com {[LIT_OTHER "["]} {[VarSub 1]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS --tab_completion_word]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS set]} {[LIT_CHARS --]} {[LIT_CHARS function-completions]} {[VarSub 2]}) ) (If (Com {[LIT_OTHER "["]} {[DQ [ComSub (Com {[LIT_CHARS type]} {[LIT_CHARS -t]} {[VarSub 1]})]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [LIT_CHARS function]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: unknown function '"][VarSub 1][LIT_CHARS "'."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "For help, try:"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " "][VarSub 0][LIT_CHARS " help"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[DQ [VarSub @]]}) )