From 7e6a960e8376f9d3b6ce077c64e66609cfa0d990 Mon Sep 17 00:00:00 2001 From: Itms Date: Fri, 2 Sep 2016 16:14:11 +0000 Subject: [PATCH] SpiderMonkey 38 upgrade: 02/35 Update files for building SpiderMonkey. Add a script for starting the tracelogger, as well as some instructions, to be detailed in the wiki. This was SVN commit r18656. --- libraries/osx/build-osx-libs.sh | 28 ++++++++----------- .../tools/tracelogger/tracelogger_options.sh | 21 ++++++++++++++ 2 files changed, 33 insertions(+), 16 deletions(-) create mode 100644 source/tools/tracelogger/tracelogger_options.sh diff --git a/libraries/osx/build-osx-libs.sh b/libraries/osx/build-osx-libs.sh index 2e7da1d986..edd2fee269 100755 --- a/libraries/osx/build-osx-libs.sh +++ b/libraries/osx/build-osx-libs.sh @@ -43,7 +43,7 @@ ENET_VERSION="enet-1.3.13" MINIUPNPC_VERSION="miniupnpc-1.9.20151026" # -------------------------------------------------------------- # Bundled with the game: -# * SpiderMonkey 31 +# * SpiderMonkey 38 # * NVTT # * FCollada # -------------------------------------------------------------- @@ -627,9 +627,9 @@ popd > /dev/null # be customized, so we build and install them from bundled sources # -------------------------------------------------------------------- echo -e "Building Spidermonkey..." -LIB_VERSION="mozjs-31.2.0" +LIB_VERSION="mozjs-38.2.1" LIB_ARCHIVE="$LIB_VERSION.rc0.tar.bz2" -LIB_DIRECTORY="mozjs31" +LIB_DIRECTORY="mozjs-38.0.0" pushd ../source/spidermonkey/ > /dev/null @@ -643,8 +643,6 @@ then rm -f lib/*.a rm -rf $LIB_DIRECTORY $INCLUDE_DIR_DEBUG $INCLUDE_DIR_RELEASE tar -xf $LIB_ARCHIVE - # rename the extracted directory to something shorter - mv $LIB_VERSION $LIB_DIRECTORY # Apply patches pushd $LIB_DIRECTORY @@ -653,10 +651,11 @@ then pushd $LIB_DIRECTORY/js/src # We want separate debug/release versions of the library, so change their install name in the Makefile - perl -i.bak -pe 's/(^STATIC_LIBRARY_NAME\s+=).*/$1mozjs31-ps-debug/' Makefile.in - perl -i.bak -pe 's/js_static/mozjs31-ps-debug/g' shell/Makefile.in + perl -i.bak -pe 's/(^STATIC_LIBRARY_NAME\s+=).*/$1'\''mozjs38-ps-debug'\''/' moz.build - CONF_OPTS="--target=$ARCH-apple-darwin --prefix=${INSTALL_DIR} --with-system-nspr --with-nspr-prefix=${NSPR_DIR} --with-system-zlib=${ZLIB_DIR} --enable-gcgenerational --disable-tests --disable-shared-js" # --enable-trace-logging" + CONF_OPTS="--target=$ARCH-apple-darwin --prefix=${INSTALL_DIR} --with-system-nspr --with-nspr-prefix=${NSPR_DIR} --with-system-zlib=${ZLIB_DIR} --disable-tests --disable-shared-js" + # Change the default location where the tracelogger should store its output, which is /tmp/ on OSX. + TLCXXFLAGS='-DTRACE_LOG_DIR="\"../../source/tools/tracelogger/\""' # Uncomment this line for 32-bit 10.5 cross compile: #CONF_OPTS="$CONF_OPTS --target=i386-apple-darwin9.0.0" if [[ $MIN_OSX_VERSION && ${MIN_OSX_VERSION-_} ]]; then @@ -668,27 +667,24 @@ then mkdir -p build-debug pushd build-debug - (CC="clang" CXX="clang++" AR=ar CROSS_COMPILE=1 ../configure $CONF_OPTS --enable-debug --disable-optimize --enable-js-diagnostics --enable-gczeal && make ${JOBS}) || die "Spidermonkey build failed" + (CC="clang" CXX="clang++" CXXFLAGS="${TLCXXFLAGS}" AR=ar CROSS_COMPILE=1 ../configure $CONF_OPTS --enable-debug --disable-optimize --enable-js-diagnostics --enable-gczeal && make ${JOBS}) || die "Spidermonkey build failed" # js-config.h is different for debug and release builds, so we need different include directories for both mkdir -p $INCLUDE_DIR_DEBUG cp -R -L dist/include/* $INCLUDE_DIR_DEBUG/ cp dist/lib/*.a $INSTALL_DIR/lib popd - mv Makefile.in.bak Makefile.in - mv shell/Makefile.in.bak shell/Makefile.in + mv moz.build.bak moz.build - perl -i.bak -pe 's/(^STATIC_LIBRARY_NAME\s+=).*/$1mozjs31-ps-release/' Makefile.in - perl -i.bak -pe 's/js_static/mozjs31-ps-release/g' shell/Makefile.in + perl -i.bak -pe 's/(^STATIC_LIBRARY_NAME\s+=).*/$1'\''mozjs38-ps-release'\''/' moz.build mkdir -p build-release pushd build-release - (CC="clang" CXX="clang++" AR=ar CROSS_COMPILE=1 ../configure $CONF_OPTS --enable-optimize && make ${JOBS}) || die "Spidermonkey build failed" + (CC="clang" CXX="clang++" CXXFLAGS="${TLCXXFLAGS}" AR=ar CROSS_COMPILE=1 ../configure $CONF_OPTS --enable-optimize && make ${JOBS}) || die "Spidermonkey build failed" # js-config.h is different for debug and release builds, so we need different include directories for both mkdir -p $INCLUDE_DIR_RELEASE cp -R -L dist/include/* $INCLUDE_DIR_RELEASE/ cp dist/lib/*.a $INSTALL_DIR/lib popd - mv Makefile.in.bak Makefile.in - mv shell/Makefile.in.bak shell/Makefile.in + mv moz.build.bak moz.build popd touch .already-built diff --git a/source/tools/tracelogger/tracelogger_options.sh b/source/tools/tracelogger/tracelogger_options.sh new file mode 100644 index 0000000000..2df65267c1 --- /dev/null +++ b/source/tools/tracelogger/tracelogger_options.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +# Source this script with `. tl-options.sh` in order to set up environment variables for the +# SpiderMonkey tracelogger. +# Once the variables are set, run ./pyrogenesis in binaries/system with the options you need and +# the tracelogging data will be saved to source/tools/tracelogger/ + +# After the run, use this tool: https://github.com/h4writer/tracelogger to display the data. +# The last tested version of the tool is 1c67e97e794b5039d0cae95f72ea0c76e4aa4696, +# it can be used if more recent versions cause trouble. + +# Use semicolons to separate values on Windows. +# If that produces bogus output, you can try with commas instead. +if [ "${OS}" = "Windows_NT" ] +then + export TLLOG="Defaults;IonCompiler" + export TLOPTIONS="EnableMainThread;EnableOffThread;EnableGraph" +else + export TLLOG=Defaults,IonCompiler + export TLOPTIONS=EnableMainThread,EnableOffThread,EnableGraph +fi