diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 6818d78..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -SOURCES/r3.6.8.tar.gz diff --git a/32bit-support.patch b/32bit-support.patch deleted file mode 100644 index 1201d5c..0000000 --- a/32bit-support.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff --git a/src/mongo/bson/bsonobjbuilder.h b/src/mongo/bson/bsonobjbuilder.h -index 38dae82..ee9b957 100644 ---- a/src/mongo/bson/bsonobjbuilder.h -+++ b/src/mongo/bson/bsonobjbuilder.h -@@ -341,7 +341,7 @@ public: - return append(fieldName, d); - } - -- BSONObjBuilder& appendNumber(StringData fieldName, size_t n) { -+ BSONObjBuilder& appendNumber(StringData fieldName, uint64_t n) { - static const size_t maxInt = (1 << 30); - if (n < maxInt) - append(fieldName, static_cast(n)); -@@ -350,6 +350,18 @@ public: - return *this; - } - -+ /** -+ * Implement appendNumber for uint64_t and size_t on 32-bit platforms where -+ * these types differs. Typically for -+ * 32b: size_t ~ unsigned int; uint64_t ~ unsigned long long; -+ * 64b: size_t ~ unsigned long; uint64_t ~ unsigned long; -+ */ -+ inline BSONObjBuilder& appendNumber( -+ StringData fieldName, -+ std::conditional::value, size_t, unsigned int>::type n) { -+ return appendNumber(fieldName, static_cast(n)); -+ } -+ - BSONObjBuilder& appendNumber(StringData fieldName, Decimal128 decNumber) { - return append(fieldName, decNumber); - } -diff --git a/src/mongo/platform/pause.h b/src/mongo/platform/pause.h -index 46df146..5003de5 100644 ---- a/src/mongo/platform/pause.h -+++ b/src/mongo/platform/pause.h -@@ -55,7 +55,7 @@ - /* ori 0,0,0 is the PPC64 noop instruction */ - #define MONGO_YIELD_CORE_FOR_SMT() __asm__ volatile("ori 0,0,0" ::: "memory") - --#elif defined(__aarch64__) -+#elif defined(__aarch64__) || defined(__arm__) - - #define MONGO_YIELD_CORE_FOR_SMT() __asm__ volatile("yield" ::: "memory") - diff --git a/README b/README deleted file mode 100644 index 6ad77fc..0000000 --- a/README +++ /dev/null @@ -1,57 +0,0 @@ -This directory contains a test suite for the mongoDB daemon. To run the -core JavaScripts tests, execute "./resmoke.py --suites core" in this -directory. - -For use in Red Hat distributions, you should run the script as user -mongodb, who is created with nologin shell however, so the best bet is -something like: - $ su - - # cd /usr/share/mongodb-test - # su -s /bin/bash mongodb -c "./resmoke.py --suites core" - -This will use the installed mongodb executables, but will run a private -copy of the server process (using data files within -/usr/share/mongodb-test/var/), so you need not start the mongod service -beforehand. - -To clean up afterwards, remove the created "var/*" subdirectories, eg - # su -s /bin/bash - mongodb -c "rm -rf /usr/share/mongodb-test/var/*" - -If one or more tests fail on your system, please read the following -manual section for instructions on how to report the problem: - -http://www.mongodb.org/about/contributors/tutorial/submit-bug-reports/ - -MongoDB offers several test suites. To get list of provided test suites -run "./resmoke.py -l". - -If you want to run a specific test, simply add path to JavaSctipt file -from /usr/share/mongodb-test/jstests/ you want to run to the option to -resmoke.py. It is also possible to specify more files. For example to -run jstests/disk/*.js files execute "./resmoke.py jstests/disk/*.js" - -If you want to use some specific storage engine for mongod server you -have to specify --storageEngine option. Actualy there are two stable -storage engines: mmapv1 and wiredTiger (x86_64 only). - -For more options run "./resmoke.py --help". - - -In Red Hat distributions use this syntax: - $ su - - # cd /usr/share/mongodb-test - # su -s /bin/bash mongodb -c "./resmoke.py OPTIONS" - -More info about mongoDB testing: -http://www.mongodb.org/about/contributors/tutorial/test-the-mongodb-server/ - - - -Notes: - -- ARM architecture is not fully supported - - https://jira.mongodb.org/browse/SERVER-1811 - -- This subpackage does not contain dbtest binary (it is going to be - deprecated). - diff --git a/README.md b/README.md new file mode 100644 index 0000000..24b9ea2 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Package Not Available +This package is not available on CentOS Stream 10. +It may be available on another branch. \ No newline at end of file diff --git a/boost-1.66.patch b/boost-1.66.patch deleted file mode 100644 index 17a183e..0000000 --- a/boost-1.66.patch +++ /dev/null @@ -1,18 +0,0 @@ -From 3c34eda8d8a38b982a1659b919e9f4b5971ba512 Mon Sep 17 00:00:00 2001 -From: Judah Schvimer -Date: Wed, 31 Jan 2018 11:38:57 -0500 -Subject: [PATCH] SERVER-32516 remove make_optional type - -diff --git a/src/mongo/executor/network_interface_mock_test.cpp b/src/mongo/executor/network_interface_mock_test.cpp -index b1a2e4edff..c41aad1f8c 100644 ---- a/src/mongo/executor/network_interface_mock_test.cpp -+++ b/src/mongo/executor/network_interface_mock_test.cpp -@@ -143,7 +143,7 @@ TEST_F(NetworkInterfaceMockTest, ConnectionHook) { - [&](const HostAndPort& remoteHost) { - makeRequestCalled = true; - hostCorrectForRequest = (remoteHost == testHost()); -- return boost::make_optional(expectedRequest); -+ return boost::make_optional(expectedRequest); - }, - [&](const HostAndPort& remoteHost, RemoteCommandResponse&& response) { - handleReplyCalled = true; diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..7d69a87 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +mongodb package is retired on branch c10s for CS-2551 \ No newline at end of file diff --git a/mongod.conf b/mongod.conf deleted file mode 100644 index 46beac3..0000000 --- a/mongod.conf +++ /dev/null @@ -1,119 +0,0 @@ -## -## For list of options visit: -## https://docs.mongodb.org/manual/reference/configuration-options/ -## - -# systemLog Options - How to do logging -systemLog: - # The default log message verbosity level for components (0-5) - verbosity: 0 - - # The destination to which MongoDB sends all log output (file|syslog, if not specifed to STDOUT) - destination: file - - # Log file to send write to instead of stdout - has to be a file, not directory - path: /var/log/mongodb/mongod.log - - # Append to logpath instead of over-writing (false by default) - logAppend: true - - # Set the log rotation behavior (rename|reopen, rename by default) - logRotate: reopen - - -# processManagement Options - How the process runs -processManagement: - # Fork server process (false by default) - fork: true - - # Full path to pidfile (if not set, no pidfile is created) - pidFilePath: /var/run/mongodb/mongod.pid - - -# net Options - Network interfaces settings -net: - # Specify port number (27017 by default) - port: 27017 - - # Comma separated list of ip addresses to listen on (all local ips by default) - bindIp: 127.0.0.1,::1 - - # Enable IPv6 support (disabled by default) - ipv6: true - - unixDomainSocket: - # Enable/disable listening on the UNIX domain socket (true by default) - enabled: true - - # Alternative directory for UNIX domain sockets (defaults to /tmp) - pathPrefix: /var/run/mongodb - - #ssl: - # Set the SSL operation mode (disabled|allowSSL|preferSSL|requireSSL) - #mode: - - # PEM file for ssl - #PEMKeyFile: - - # Certificate Authority file for SSL - #CAFile: - - -# storage Options - How and Where to store data -storage: - # Directory for datafiles (defaults to /data/db/) - dbPath: /var/lib/mongodb - - #journal: - # Enable/Disable journaling (journaling is on by default for 64 bit) - #enabled: true - - # The storage engine for the mongod database (mmapv1|wiredTiger, wiredTiger by default - # - works for 64 bit only) - # Also possible to use unstable engines: devnull|ephemeralForTest - engine: mmapv1 - - #mmapv1: - # Enable or disable the preallocation of data files (true by default) - #preallocDataFiles: - - # Use a smaller default file size (false by default) - #smallFiles: - - #wiredTiger: - #engineConfig: - # The maximum size of the cache that WiredTiger will use for all data - # (max(60% of RAM - 1GB, 1GB) by default) - #cacheSizeGB: 5 - - # The type of compression to use to compress WiredTiger journal data - # (none|snappy|zlib, snappy by default) - #journalCompressor: - - #collectionConfig: - # The default type of compression to use to compress collection data - # (none|snappy|zlib, snappy by default) - #blockCompressor: - - -# secutiry Options - Authorization and other security settings -#security: - # Private key for cluster authentication - #keyFile: - - # Run with/without security (enabled|disabled, disabled by default) - #authorization - - -# setParameter Options - Set MongoDB server parameters -# setParameter: - -# opratrionProfiling Options - Profiling settings -#operationProfiling: - -# replication Options - ReplSet settings -#replication: - -# sharding Options - Shard settings -#sharding: - diff --git a/mongod.init b/mongod.init deleted file mode 100644 index ee1df3e..0000000 --- a/mongod.init +++ /dev/null @@ -1,170 +0,0 @@ -#!/bin/sh -# -# mongod init file for starting up the mongoDB server -# -# chkconfig: - 90 10 -# description: Starts and stops the mongoDB daemon that handles all \ -# database requests. - -# Source function library. -. /etc/rc.d/init.d/functions - -prog="mongod" -exec="/usr/bin/$prog" -logfile=${LOGFILE-/var/log/mongodb/$prog.log} - -[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog - -pidfile=${PIDFILE-/var/run/mongodb/$prog.pid} -options="$OPTIONS" -lockfile="/var/lock/subsys/$prog" - -# Nicer version of killproc that does not kill mongodb when it takes -# a long time to shut down and does not hang for a long time when mongo -# shuts down quickly -killproc_nice() { - local RC base pid pid_file= delay i - - RC=0; delay=3 - # Test syntax. - if [ "$#" -eq 0 ]; then - echo $"Usage: killproc [-p pidfile] [ -d delay] {program} [-signal]" - return 1 - fi - if [ "$1" = "-p" ]; then - pid_file=$2 - shift 2 - fi - if [ "$1" = "-d" ]; then - delay=$2 - shift 2 - fi - - # Save basename. - base=${1##*/} - - # Find pid. - __pids_var_run "$1" "$pid_file" - RC=$? - if [ -z "$pid" ]; then - if [ -z "$pid_file" ]; then - pid="$(__pids_pidof "$1")" - else - [ "$RC" = "4" ] && { failure $"$base shutdown" ; return $RC ;} - fi - fi - - # Kill it. - if [ -n "$pid" ] ; then - [ "$BOOTUP" = "verbose" -a -z "${LSB:-}" ] && echo -n "$base " - if checkpid $pid 2>&1; then - # TERM first, then KILL if not dead - kill -TERM $pid >/dev/null 2>&1 - usleep 100000 - - # Check every one second if the program is stopped. - # Do so for a maximum of $delay seconds - for ((i = 0 ; i < $delay; i++)) - do - if checkpid $pid; then - sleep 1 - else - break - fi - done - - # If the program is not stopped, kill it - if checkpid $pid ; then - kill -KILL $pid >/dev/null 2>&1 - usleep 100000 - fi - fi - checkpid $pid - RC=$? - [ "$RC" -eq 0 ] && failure $"$base shutdown" || success $"$base shutdown" - RC=$((! $RC)) - else - failure $"$base shutdown" - RC=0 - fi - - # Remove pid file if any. - rm -f "${pid_file:-/var/run/$base.pid}" - return $RC -} - -start() { - [ -x $exec ] || exit 5 - [ "$(id -u)" -eq 0 ] || exit 4 - echo -n $"Starting $prog: " - daemon --pidfile=${pidfile} --user mongodb "$exec $options run >> $logfile 2>&1" - retval=$? - echo - [ $retval -eq 0 ] && touch $lockfile - return $retval -} - -stop() { - [ "$(id -u)" -eq 0 ] || exit 4 - echo -n $"Stopping $prog: " - killproc_nice -p ${pidfile} -d 300 $prog - retval=$? - echo - [ $retval -eq 0 ] && rm -f $lockfile - return $retval -} - -restart() { - stop - start -} - -reload() { - restart -} - -force_reload() { - restart -} - -rh_status() { - # run checks to determine if the service is running or use generic status - status -p ${pidfile} $prog -} - -rh_status_q() { - rh_status >/dev/null 2>&1 -} - - -case "$1" in - start) - rh_status_q && exit 0 - $1 - ;; - stop) - rh_status_q || exit 0 - $1 - ;; - restart) - $1 - ;; - reload) - rh_status_q || exit 7 - $1 - ;; - force-reload) - force_reload - ;; - status) - rh_status - ;; - condrestart|try-restart) - rh_status_q || exit 0 - restart - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" - exit 2 -esac -exit $? diff --git a/mongod.service b/mongod.service deleted file mode 100644 index 1281d4c..0000000 --- a/mongod.service +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=High-performance, schema-free document-oriented database -After=syslog.target network.target - -[Service] -Type=forking -User=mongodb -EnvironmentFile=/etc/sysconfig/mongod -ExecStart=/bin/sh -c "exec $NUMACTL /usr/bin/mongod $OPTIONS run" -PrivateTmp=true -LimitNOFILE=64000 -TimeoutStartSec=180 - -[Install] -WantedBy=multi-user.target diff --git a/mongod.sysconf b/mongod.sysconf deleted file mode 100644 index e2e3587..0000000 --- a/mongod.sysconf +++ /dev/null @@ -1,5 +0,0 @@ -OPTIONS="-f /etc/mongod.conf" - -# To run numactl before starting mongodb server -# https://docs.mongodb.com/manual/administration/production-notes/#configuring-numa-on-linux -#NUMACTL="/usr/bin/numactl --interleave=all" diff --git a/mongodb-tmpfile b/mongodb-tmpfile deleted file mode 100644 index 634b44e..0000000 --- a/mongodb-tmpfile +++ /dev/null @@ -1,3 +0,0 @@ -# make sure the mongodb dir is owned by mongodb so the process running as -# mongodb can write the pid there -d /run/mongodb 0755 mongodb root - diff --git a/mongodb.logrotate b/mongodb.logrotate deleted file mode 100644 index 8df6558..0000000 --- a/mongodb.logrotate +++ /dev/null @@ -1,12 +0,0 @@ -/var/log/mongodb/*.log { - weekly - rotate 10 - copytruncate - delaycompress - compress - notifempty - missingok - postrotate - /bin/kill -USR1 `cat /var/run/mongodb/mongod.pid 2>/dev/null` 2> /dev/null|| true - endscript -} diff --git a/mongodb.spec b/mongodb.spec deleted file mode 100644 index 5b23c1f..0000000 --- a/mongodb.spec +++ /dev/null @@ -1,1226 +0,0 @@ -%global _hardened_build 1 -# for better compatibility with SCL spec file -%global pkg_name mongodb -# mongod daemon -%global daemon mongod -# mongos daemon -%global daemonshard mongos - -# Arches officially supported by MongoDB upstream -%global upstream_arches x86_64 ppc64le aarch64 s390x -# Working storage engines - used for testing -%ifnarch %{upstream_arches} ppc64 - %global storageEngines mmapv1 -%else - %ifarch s390x ppc64 - %global storageEngines wiredTiger - %else - %global storageEngines wiredTiger mmapv1 - %endif -%endif -# MozJS version -%global mozjsVersion 45 - -# Regression tests may take a long time (many cores recommended), skip them by -# passing --nocheck to rpmbuild or by setting runselftest to 0 if defining -# --nocheck is not possible (e.g. in koji build) -%{!?runselftest:%global runselftest 1} -# To disable unit testing (need to be built -> it slows build) -# ('runselftest' has to be enabled) -%{!?rununittests:%global rununittests 1} -# Do we want to package install_tests -%bcond_without install_tests -# Do we want to package install_unit_tests -# ('rununittests' is needed) -%bcond_with install_unit_tests - -%global MONGO_DISTNAME mongo-r%{version} - -%if 0%{?fedora} >= 29 || 0%{?rhel} >= 8 -# Disable automatic compilation of Python files in extra directories -%global _python_bytecompile_extra 0 -%else -# Needed to have working /usr/lib/rpm/brp-python-bytecompile for python3 code -%global __python %{__python3} -%endif - -Name: mongodb -Version: 3.6.8 -Release: 1%{?dist} -Summary: High-performance, schema-free document-oriented database -Group: Applications/Databases -License: AGPLv3 and zlib and ASL 2.0 -# util/md5 is under the zlib license -# manpages and bson are under ASL 2.0 -# everything else is AGPLv3 -URL: http://www.mongodb.org - -Source0: https://github.com/mongodb/mongo/archive/r%{version}.tar.gz -Source1: %{pkg_name}-tmpfile -Source2: %{pkg_name}.logrotate -Source3: %{daemon}.conf -Source4: %{daemon}.init -Source5: %{daemon}.service -Source6: %{daemon}.sysconf -Source7: %{daemonshard}.conf -Source8: %{daemonshard}.init -Source9: %{daemonshard}.service -Source10: %{daemonshard}.sysconf -Source11: README - -# Fix build system to allow building with system version of libraries (mozjs, icu and asio) -# - needed for building additional architectures -# https://jira.mongodb.org/browse/SERVER-21353 -> now patching bundled mozjs45 - see patch23 -#Patch0: use-system-mozjs-icu-asio.patch - -# Convert build scripts and testsuite to support python3 -# https://jira.mongodb.org/browse/SERVER-32295 -Patch1: python3-buildscripts-tests.patch - -# Fix building with boost 1.66 -# https://jira.mongodb.org/browse/SERVER-32516 -Patch2: boost-1.66.patch - -# Few tests fail because of error in altivec implementation of ByteVector -# https://jira.mongodb.org/browse/SERVER-33395 -Patch3: ppc64le-fix-altivec.patch - -# Fedora specific - adding support for rest of Fedora architectures -# Upstream doesn't support it and isn't considering merging -# -# https://jira.mongodb.org/browse/SERVER-27833 -# Enable ppc64 big endian support -Patch20: ppc64.patch -Patch22: ppc64-altivec.patch -# Add support also for 32bit platforms -Patch21: 32bit-support.patch -# Generate code for ppc64, arm and i386 arches -Patch23: ppc64-arm-i386-mozjs-code.patch - -BuildRequires: gcc-c++ >= 5.3.0 -BuildRequires: boost-devel >= 1.56 -BuildRequires: libpcap-devel -BuildRequires: libstemmer-devel -BuildRequires: openssl-devel -BuildRequires: pcre-devel -BuildRequires: python3-scons -BuildRequires: snappy-devel -BuildRequires: yaml-cpp-devel -BuildRequires: zlib-devel -%ifnarch s390x -BuildRequires: valgrind-devel -%endif -%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 -BuildRequires: systemd -%endif -BuildRequires: python3-devel -BuildRequires: python3-yaml -BuildRequires: python3-requests -# Required by test suite -%if %runselftest -BuildRequires: python3-pymongo -%endif -BuildRequires: python3-cheetah - -%if 0%{?_module_build} -# Provide modules only on upstream architectures and arm -ExclusiveArch: %{upstream_arches} %{arm} -%else -# Mongodb must run on a 64-bit CPU (see bug #630898) -ExcludeArch: ppc %{sparc} s390 -%endif - -%description -Mongo (from "humongous") is a high-performance, open source, schema-free -document-oriented database. MongoDB is written in C++ and offers the following -features: - * Collection oriented storage: easy storage of object/JSON-style data - * Dynamic queries - * Full index support, including on inner objects and embedded arrays - * Query profiling - * Replication and fail-over support - * Efficient storage of binary data including large objects (e.g. photos - and videos) - * Auto-sharding for cloud-level scalability (currently in early alpha) - * Commercial Support Available - -A key goal of MongoDB is to bridge the gap between key/value stores (which are -fast and highly scalable) and traditional RDBMS systems (which are deep in -functionality). - - -%package server -Summary: MongoDB server, sharding server and support scripts -Group: Applications/Databases -Requires(pre): shadow-utils -%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 -Requires(post): systemd-units -Requires(preun): systemd-units -Requires(postun): systemd-units -%else -Requires(post): chkconfig -Requires(preun): chkconfig -Requires(postun): initscripts -%endif - -# Same upstream - wiredtiger is primarilly developed for MongoDB -Provides: bundled(wiredtiger) = %{version} -# MongoDB bundles development release of asio 1.11 -# This is not in Fedora yet (only asio-1.10) -Provides: bundled(asio) = 1.11.0 -# MongoDB stores version of icu into database (if using collators) -# - mongod with using different icu version can't cooperate -Provides: bundled(icu) = 57.1 -# https://software.intel.com/en-us/articles/intel-decimal-floating-point-math-library -Provides: bundled(IntelRDFPMathLib) = 20U1 -# https://github.com/derickr/timelib -Provides: bundled(timelib) = 2017.05beta10 -# MongoDB does provides mozjs customization to recover from OOM -Provides: bundled(mozjs45) = 45.8.0 -# gperftools package is not in RHEL8 -Provides: bundled(gperftools) = 2.5 - -%description server -This package provides the mongo server software, mongo sharding server -software, default configuration files, and init scripts. - - -%if %{with install_tests} -%package test -Summary: MongoDB test suite -Group: Applications/Databases -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: python3-pymongo -Requires: python3-yaml -Requires: python3-requests - -%description test -This package contains the regression test suite distributed with -the MongoDB sources. -%endif - -%prep -%setup -q -n %{MONGO_DISTNAME} -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -# Patch only Fedora specific architectures -%ifnarch %{upstream_arches} -%patch20 -p1 -%patch22 -p1 -%patch21 -p1 -%patch23 -p1 - -# For mongodb <=3.6 mozjs sources are generated wrong -sed -i -e "/extract\/js\/src\/jit\/ProcessExecutableMemory.cpp/d" src/third_party/mozjs-45/SConscript -%endif - -# Workaround for https://jira.mongodb.org/browse/SERVER-37135 to make mongodb buildable with new openssl -sed -i "s|\(#ifdef TLS1_3_VERSION\)|#undef TLS1_3_VERSION\n\1|" src/mongo/util/net/ssl_manager.cpp - -# CRLF -> LF -sed -i 's/\r//' README - -#TODO - removed unused bundles -# Use system versions of header files (bundled does not differ) -sed -i -r "s|third_party/libstemmer_c/include/libstemmer.h|libstemmer.h|" src/mongo/db/fts/stemmer.h -sed -i -r "s|third_party/yaml-cpp-0.5.1/include/yaml-cpp/yaml.h|yaml-cpp/yaml.h|" src/mongo/util/options_parser/options_parser.cpp - -# by default use system mongod, mongos and mongo binaries in resmoke.py -sed -i -r "s|os.curdir(, \"mongo\")|\"%{_bindir}\"\1|" buildscripts/resmokelib/config.py -sed -i -r "s|os.curdir(, \"mongod\")|\"%{_bindir}\"\1|" buildscripts/resmokelib/config.py -sed -i -r "s|os.curdir(, \"mongos\")|\"%{_bindir}\"\1|" buildscripts/resmokelib/config.py -# set default data prefix in resmoke.py -sed -i -r "s|/data/db|%{_datadir}/%{pkg_name}-test/var|" buildscripts/resmokelib/config.py - -# Fix shebangs of python scripts -pathfix.py -i %{__python3} buildscripts/ - -# set default storage engine for non 64-bit arches - RHBZ#1303846 -%ifnarch %{upstream_arches} ppc64 -sed -i 's|engine = "wiredTiger"|engine = "mmapv1"|' src/mongo/db/storage/storage_options.h -%endif - - -%build -export LANG="en_US.UTF-8" -# Prepare variables for building -cat > variables.list << EOF -CCFLAGS="$(echo %{?optflags} | sed -e "s/-O. //" -e "s/-g //")" -LINKFLAGS="%{?__global_ldflags} -Wl,-z,noexecstack -Wl,--reduce-memory-overheads,--no-keep-memory" -VERBOSE=1 -MONGO_VERSION="%{version}" -VARIANT_DIR="fedora" - -%ifarch %{ix86} -# On i686 -ffloat-store is requred to round in GranularityRounderPreferredNumbers -# properly, without this: -# -> build/opt/mongo/db/pipeline/granularity_rounder_test, -# build/opt/mongo/db/pipeline/accumulator_test, build/opt/mongo/util/summation_test -# and build/opt/mongo/db/pipeline/document_source_test unittests fail -CCFLAGS+=" -ffloat-store" -%endif -%ifarch ppc64 -# Needed for altivec instructions in mongo/db/fts/unicode/byte_vector_altivec.h -CCFLAGS+=" -mcpu=power8" -%endif -%ifarch aarch64 -# Needed for CRC32 instructions in third_party/wiredtiger/src/checksum/arm64/crc32-arm64.c -CCFLAGS+=" -march=armv8-a+crc" -%endif -EOF -cat variables.list - -# Define build options -cat > build-options << EOF - %{?_smp_mflags} \ - --use-system-pcre \ - --use-system-boost \ - --use-system-snappy \ -%ifnarch s390x - --use-system-valgrind \ -%endif - --use-system-zlib \ - --use-system-stemmer \ - --use-system-yaml \ -%ifarch s390x ppc64 - --mmapv1=off \ -%else - --mmapv1=on \ -%endif -%ifarch %{upstream_arches} ppc64 - --wiredtiger=on \ -%else - --wiredtiger=off \ -%endif -%ifarch s390x - --use-s390x-crc32=off \ -%endif -%ifnarch %{upstream_arches} - --allocator=system \ -%endif -%ifarch ppc64le - --allocator=system \ -%endif - --ssl \ - --nostrip \ - --disable-warnings-as-errors \ - --variables-files=variables.list -EOF - -# see output of "scons --help" for options -scons-3 core tools $(cat build-options) - -%if 0%{rununittests} -rm -rf build/ -sed -i "/^.*ggdb.*$/d" SConstruct -scons-3 unittests $(cat build-options) -%endif - -%install -install -p -D -m 755 mongod %{buildroot}%{_bindir}/mongod -install -p -D -m 755 mongos %{buildroot}%{_bindir}/mongos -install -p -D -m 755 mongo %{buildroot}%{_bindir}/mongo -install -p -D -m 755 mongoperf %{buildroot}%{_bindir}/mongoperf -install -p -D -m 755 mongobridge %{buildroot}%{_bindir}/mongobridge - -mkdir -p %{buildroot}%{_sharedstatedir}/%{pkg_name} -mkdir -p %{buildroot}%{_localstatedir}/log/%{pkg_name} -mkdir -p %{buildroot}%{_localstatedir}/run/%{pkg_name} -mkdir -p %{buildroot}%{_sysconfdir}/sysconfig - -%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 -install -p -D -m 644 "%{SOURCE1}" %{buildroot}%{_tmpfilesdir}/%{pkg_name}.conf -install -p -D -m 644 "%{SOURCE5}" %{buildroot}%{_unitdir}/%{daemon}.service -install -p -D -m 644 "%{SOURCE9}" %{buildroot}%{_unitdir}/%{daemonshard}.service -%else -install -p -D -m 755 "%{SOURCE4}" %{buildroot}%{_root_initddir}/%{daemon} -install -p -D -m 755 "%{SOURCE8}" %{buildroot}%{_root_initddir}/%{daemonshard} -%endif -install -p -D -m 644 "%{SOURCE2}" %{buildroot}%{_sysconfdir}/logrotate.d/%{pkg_name} -install -p -D -m 644 "%{SOURCE3}" %{buildroot}%{_sysconfdir}/%{daemon}.conf -install -p -D -m 644 "%{SOURCE7}" %{buildroot}%{_sysconfdir}/%{daemonshard}.conf -install -p -D -m 644 "%{SOURCE6}" %{buildroot}%{_sysconfdir}/sysconfig/%{daemon} -install -p -D -m 644 "%{SOURCE10}" %{buildroot}%{_sysconfdir}/sysconfig/%{daemonshard} -# Enable WiredTiger for 64-bit architectures by default -%ifarch %{upstream_arches} ppc64 -sed -i -r "s|(engine: )mmapv1|\1wiredTiger|" %{buildroot}%{_sysconfdir}/%{daemon}.conf -%endif - -#TODO - create man page for mongobridge -install -d -m 755 %{buildroot}%{_mandir}/man1 -install -p -m 644 debian/mongo.1 %{buildroot}%{_mandir}/man1/ -install -p -m 644 debian/mongoperf.1 %{buildroot}%{_mandir}/man1/ -install -p -m 644 debian/mongod.1 %{buildroot}%{_mandir}/man1/ -install -p -m 644 debian/mongos.1 %{buildroot}%{_mandir}/man1/ - -%if %{with install_tests} -mkdir -p %{buildroot}%{_datadir}/%{pkg_name}-test -mkdir -p %{buildroot}%{_datadir}/%{pkg_name}-test/var -mkdir -p %{buildroot}%{_datadir}/%{pkg_name}-test/buildscripts -install -p -D -m 755 buildscripts/resmoke.py %{buildroot}%{_datadir}/%{pkg_name}-test/ -install -p -D -m 444 buildscripts/__init__.py %{buildroot}%{_datadir}/%{pkg_name}-test/buildscripts/ - -cp -R buildscripts/resmokeconfig %{buildroot}%{_datadir}/%{pkg_name}-test/buildscripts/ -cp -R buildscripts/resmokelib %{buildroot}%{_datadir}/%{pkg_name}-test/buildscripts/ -cp -R jstests %{buildroot}%{_datadir}/%{pkg_name}-test/ -# Remove executable flag from JS tests -for file in `find %{buildroot}%{_datadir}/%{pkg_name}-test/jstests -type f`; do - chmod a-x $file -done - -install -p -D -m 444 "%{SOURCE11}" %{buildroot}%{_datadir}/%{pkg_name}-test/ - -%endif -%if %{with install_unit_tests} -mkdir -p %{buildroot}%{_datadir}/%{pkg_name}-test/unittests -while read unittest -do - install -p -D $unittest %{buildroot}%{_datadir}/%{pkg_name}-test/unittests/ -done < ./build/unittests.txt -%endif - -%if %{with install_tests} && (0%{?fedora} >= 29 || 0%{?rhel} >= 8) -%py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{pkg_name}-test/ -%endif - -%check -export LANG="en_US.UTF-8" -%if %runselftest -# More info about testing: -# http://www.mongodb.org/about/contributors/tutorial/test-the-mongodb-server/ -cd %{_builddir}/%{MONGO_DISTNAME} -mkdir ./var - -# Run old-style heavy unit tests (dbtest binary) -#mkdir ./var/dbtest -#./dbtest --dbpath `pwd`/var/dbtest - -%if 0%{rununittests} -#TODO - failed on x86_64 and aarch64 -sed -i "/session_catalog_migration_destination_test/d" build/unittests.txt -sed -i "/connection_string_test/d" build/unittests.txt -sed -i "/dns_query_test/d" build/unittests.txt -sed -i "/mongo_uri_test/d" build/unittests.txt -#TODO -%ifarch %{ix86} %{arm} -sed -i "/service_entry_point_mock_test/d" build/unittests.txt -# Crashing on armv7hl due to optimizations -sed -i "/chunk_diff_test/d" build/unittests.txt -%endif -%ifarch %{arm} -# TODO -# ArraySerialization Expected [ mongo::fromjson(outJson) == outObj ] but found [ { a: { b: [ "c", "d", [ "e" ] ] } } == { a: { b: [ "c", "d", [ "X" ] ] } }] @src/mongo/bson/mutable -# https://koji.fedoraproject.org/koji/getfile?taskID=22825582&volume=DEFAULT&name=build.log -sed -i "/mutable_bson_test/d" build/unittests.txt -%endif - -# Run new-style unit tests (*_test files) -./buildscripts/resmoke.py --dbpathPrefix `pwd`/var --continueOnFailure --mongo=%{buildroot}%{_bindir}/mongo --mongod=%{buildroot}%{_bindir}/%{daemon} --mongos=%{buildroot}%{_bindir}/%{daemonshard} --nopreallocj --suites unittests -%endif - -%ifarch %{arm} -rm -f jstests/core/hostinfo.js -%endif -%ifarch ppc64le -rm -f jstests/core/shelltypes.js -%endif - -for engine in %{storageEngines}; do - # Run JavaScript integration tests - ./buildscripts/resmoke.py --dbpathPrefix `pwd`/var --continueOnFailure --mongo=%{buildroot}%{_bindir}/mongo --mongod=%{buildroot}%{_bindir}/%{daemon} --mongos=%{buildroot}%{_bindir}/%{daemonshard} --nopreallocj --suites core --storageEngine=$engine -done - -rm -Rf ./var -%endif - -%post -p /sbin/ldconfig - - -%postun -p /sbin/ldconfig - - -%pre server -getent group %{pkg_name} >/dev/null || groupadd -f -g 184 -r %{pkg_name} -if ! getent passwd %{pkg_name} >/dev/null ; then - if ! getent passwd 184 >/dev/null ; then - useradd -r -u 184 -g %{pkg_name} -d /var/lib/%{pkg_name} \ - -s /sbin/nologin -c "MongoDB Database Server" %{pkg_name} - else - useradd -r -g %{pkg_name} -d /var/lib/%{pkg_name} \ - -s /sbin/nologin -c "MongoDB Database Server" %{pkg_name} - fi -fi -exit 0 - - -%post server -%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 - # https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd - # daemon-reload - %systemd_postun -%else - /sbin/chkconfig --add %{daemon} - /sbin/chkconfig --add %{daemonshard} -%endif - -%preun server -if [ "$1" = 0 ]; then -%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 - # --no-reload disable; stop - %systemd_preun %{daemon}.service - %systemd_preun %{daemonshard}.service -%else - /sbin/service %{daemon} stop >/dev/null 2>&1 - /sbin/service %{daemonshard} stop >/dev/null 2>&1 - /sbin/chkconfig --del %{daemon} - /sbin/chkconfig --del %{daemonshard} -%endif -fi - - -%postun server -%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 - # daemon-reload - %systemd_postun -%endif -if [ "$1" -ge 1 ] ; then -%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 - # try-restart - %systemd_postun_with_restart %{daemon}.service - %systemd_postun_with_restart %{daemonshard}.service -%else - /sbin/service %{daemon} condrestart >/dev/null 2>&1 || : - /sbin/service %{daemonshard} condrestart >/dev/null 2>&1 || : -%endif -fi - - -# Make rename of config files transparent and effortless -%triggerpostun server -- %{name}-server < 2.6.7-3 -if [ -f %{_sysconfdir}/sysconfig/%{daemon}.rpmnew ]; then - if [ -f %{_sysconfdir}/%{pkg_name}.conf.rpmsave ]; then - mv %{_sysconfdir}/%{daemon}.conf %{_sysconfdir}/%{daemon}.conf.rpmnew - mv %{_sysconfdir}/%{pkg_name}.conf.rpmsave %{_sysconfdir}/%{pkg_name}.conf - else - mv %{_sysconfdir}/%{daemon}.conf %{_sysconfdir}/%{pkg_name}.conf - fi -else - if [ -f %{_sysconfdir}/%{pkg_name}.conf.rpmsave ]; then - mv %{_sysconfdir}/%{daemon}.conf %{_sysconfdir}/%{daemon}.conf.rpmnew - mv %{_sysconfdir}/%{pkg_name}.conf.rpmsave %{_sysconfdir}/%{daemon}.conf - fi -fi - -if [ -f %{_sysconfdir}/sysconfig/%{daemonshard}.rpmnew ]; then - if [ -f %{_sysconfdir}/%{pkg_name}-shard.conf.rpmsave ]; then - mv %{_sysconfdir}/%{daemonshard}.conf %{_sysconfdir}/%{daemonshard}.conf.rpmnew - mv %{_sysconfdir}/%{pkg_name}-shard.conf.rpmsave %{_sysconfdir}/%{pkg_name}-shard.conf - else - mv %{_sysconfdir}/%{daemonshard}.conf %{_sysconfdir}/%{pkg_name}-shard.conf - fi -else - if [ -f %{_sysconfdir}/%{pkg_name}-shard.conf.rpmsave ]; then - mv %{_sysconfdir}/%{daemonshard}.conf %{_sysconfdir}/%{daemonshard}.conf.rpmnew - mv %{_sysconfdir}/%{pkg_name}-shard.conf.rpmsave %{_sysconfdir}/%{daemonshard}.conf - fi -fi - - -%files -%{!?_licensedir:%global license %%doc} -%license GNU-AGPL-3.0.txt APACHE-2.0.txt -%doc README -%{_bindir}/mongo -%{_bindir}/mongoperf -%{_bindir}/mongobridge - -%{_mandir}/man1/mongo.1* -%{_mandir}/man1/mongoperf.1* - - -%files server -%{_bindir}/mongod -%{_bindir}/mongos -%{_mandir}/man1/mongod.1* -%{_mandir}/man1/mongos.1* -%dir %attr(0755, %{pkg_name}, root) %{_sharedstatedir}/%{pkg_name} -%dir %attr(0750, %{pkg_name}, root) %{_localstatedir}/log/%{pkg_name} -%dir %attr(0755, %{pkg_name}, root) %{_localstatedir}/run/%{pkg_name} -%config(noreplace) %{_sysconfdir}/logrotate.d/%{pkg_name} -%config(noreplace) %{_sysconfdir}/%{daemon}.conf -%config(noreplace) %{_sysconfdir}/%{daemonshard}.conf -%config(noreplace) %{_sysconfdir}/sysconfig/%{daemon} -%config(noreplace) %{_sysconfdir}/sysconfig/%{daemonshard} -%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 -%{_tmpfilesdir}/%{pkg_name}.conf -%{_unitdir}/*.service -%else -%{_initddir}/%{daemon} -%{_initddir}/%{daemonshard} -%endif - - -%if %{with install_tests} -%files test -%doc %{_datadir}/%{pkg_name}-test/README -%defattr(-,%{pkg_name},root) -%dir %attr(0755, %{pkg_name}, root) %{_datadir}/%{pkg_name}-test -%dir %attr(0755, %{pkg_name}, root) %{_datadir}/%{pkg_name}-test/var -%{_datadir}/%{pkg_name}-test/jstests -%{_datadir}/%{pkg_name}-test/buildscripts -%{_datadir}/%{pkg_name}-test/resmoke.* -%{_datadir}/%{pkg_name}-test/__pycache__ -%if %{with install_unit_tests} -%{_datadir}/%{pkg_name}-test/unittests -%endif -%endif - - -%changelog -* Wed Oct 10 2018 mskalick@redhat.com - 3.6.8-1 -- Rebase to latest upstream release 3.6.8 - Resolves: RHBZ#1615274 - -* Tue Oct 02 2018 mskalick@redhat.com - 3.6.6-2 -- Don't force third_party/s2 to be built without optimizations. It's working - with new gcc. Using -O0 failed anobin checks. - Resolves: RHBZ#1624142 - -* Mon Aug 13 2018 mskalick@redhat.com - 3.6.6-1 -- Rebase to upstream release 3.6.6 - -* Tue Jul 24 2018 Nils Philippsen - 3.6.4-4 -- manually byte-compile Python files in private directories - -* Fri Jun 08 2018 mskalick@redhat.com - 3.6.4-3 -- Use bundled mozjs-45 on all architecture - -* Wed May 16 2018 mskalick@redhat.com - 3.6.4-2 -- Use upstream reworked patch for altivec and new gcc - -* Mon Apr 23 2018 mskalick@redhat.com - 3.6.4-1 -- Update to latest minor release - -* Fri Feb 23 2018 Marek Skalický - 3.6.3-1 -- Update to latest upstream minor version - -* Wed Feb 21 2018 Marek Skalický - 3.6.2-7 -- Use numactl for service starting - -* Tue Feb 20 2018 Marek Skalický - 3.6.2-6 -- Workaround for unicode test fails on ppc64le - -* Wed Feb 14 2018 Richard Shaw - 3.6.2-5 -- Rebuild for yaml-cpp 0.6.0. - -* Mon Feb 12 2018 Marek Skalický - 3.6.2-4 -- Fix build with boost 1.66 - -* Fri Feb 09 2018 Igor Gnatenko - 3.6.2-3 -- Escape macros in %%changelog - -* Thu Feb 08 2018 Fedora Release Engineering - 3.6.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Jan 25 2018 Marek Skalický - 3.6.2-1 -- Rebase to 3.6.2 -- Make python3 patch also python2 compatible - -* Mon Jan 08 2018 Marek Skalický - 3.6.0-2 -- Add macro to disable running of unittests -- Install python3 __pycache__ directory - -* Wed Dec 06 2017 Marek Skalický - 3.6.0-1 -- Update to mongodb 3.6.0 - -* Tue Nov 21 2017 Marek Skalický - 3.6.0-0.rc4 -- Update to RC4 release - -* Wed Nov 08 2017 Marek Skalický - 3.6.0-0.rc2 -- Update to RC release of MongoDB 3.6 - -* Wed Jul 26 2017 Fedora Release Engineering - 3.4.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon Jul 24 2017 Björn Esser - 3.4.6-2 -- Rebuilt for Boost 1.64 - -* Mon Jul 17 2017 Marek Skalický - 3.4.6-1 -- Update to 3.4.6 minor version - -* Wed Mar 29 2017 Marek Skalický - 3.4.3-1 -- Update to latest versions 3.4.3 - -* Mon Mar 13 2017 Marek Skalický - 3.4.2-4 -- Update patches and separate Fedora specific -- Enable tcmalloc for s390x - -* Sun Mar 12 2017 Peter Robinson 3.4.2-3 -- Re-enable tests on ppc64le - -* Wed Feb 8 2017 Tom Callaway - 3.4.2-2 -- temporarily disable test running for ppc64le - -* Wed Feb 8 2017 Tom Callaway - 3.4.2-1 -- update to 3.4.2 - -* Thu Jan 12 2017 Marek Skalický - 3.4.1-3 -- Disable CRC32 instructions for s390x -- Fix assio patch to have changes from MongoDB upstream - -* Fri Jan 06 2017 Marek Skalický - 3.4.1-2 -- Enable WiredTiger for aarch64, ppc64le and s390x and make it default -- Enable building for x390x and ppc64 - -* Wed Dec 21 2016 Marek Skalický - 3.4.1-1 -- Update to latest minor release - -* Fri Dec 16 2016 Marek Skalický - 3.4.0-2 -- Fix setting default storage engine for non-64b architectures - -* Thu Dec 01 2016 Marek Skalický - 3.4.0-1 -- Update to MongoDB 3.4.0 -- Updated bundled asio to latest master revision to support openssl 1.1.0 -- Temporarily use bundled version of mozjs45 for 64 platforms -- Install unittests to own directory - -* Thu Oct 06 2016 Marek Skalický - 3.2.10-1 -- Upgrade to latest minor version - -* Mon Sep 19 2016 Marek Skalický - 3.2.8-3 -- Security fix for CVE-2016-6494 - (fix world-readable .dbshell history file) - -* Tue Aug 23 2016 Richard Shaw - 3.2.8-2 -- Rebuild for updated yaml-cpp - -* Thu Aug 04 2016 Marek Skalický - 3.2.8-1 -- Upgrade to MongoDB 3.2.8 - -* Tue Jun 14 2016 Marek Skalicky - 3.2.7-1 -- Upgrade to MongoDB 3.2.7 - -* Fri May 20 2016 Marek Skalicky - 3.2.6-4 -- Fixed server %%pre to comply guidelines -- Using reserved GID for newly added group - -* Mon May 16 2016 Marek Skalicky - 3.2.6-3 -- Disabled executable stack (since MongoDB 3.2.5) -- Added mongobridge tool (used in test suites) - -* Thu May 12 2016 Marek Skalicky - 3.2.6-2 -- Enable to build mmapv1 storage engine - -* Fri May 6 2016 Marek Skalicky - 3.2.6-1 -- Upgrade to MongoDB 3.2.6 - -* Mon Apr 11 2016 Marek Skalicky - 3.2.4-2 -- Fixed permissions in test subpackage - -* Wed Apr 6 2016 Marek Skalicky - 3.2.4-1 -- Upgrade to MongoDB 3.2.4 - -* Thu Mar 31 2016 Marek Skalicky - 3.2.3-2 -- Make mmapv1 default storage engine for non x86_64 archs - -* Wed Mar 9 2016 Marek Skalicky - 3.2.3-1 -- Upgrade to MongoDB 3.2.3 -- Added ability to have also C++ unit tests in test subpackage - -* Tue Jan 26 2016 Marek Skalicky - 3.2.1-4 -- Specify, that mmapv1 is default for 32-bit systems - -* Tue Jan 26 2016 Marek Skalicky - 3.2.1-3 -- Rebuild for boost 1.60 - -* Tue Jan 19 2016 Marek Skalicky - 3.2.1-2 -- Fixed permissions of test files - -* Thu Jan 14 2016 Marek Skalicky - 3.2.1-1 -- Upgrade to versions 3.2.1 - -* Tue Jan 12 2016 Marek Skalicky - 3.2.0-2 -- Configuration files updated - (mongod and mongos also listen on ipv6 localhost by default) -- test subpackage contains resmoke.py tool instead of smoke.py - -* Wed Dec 9 2015 Marek Skalicky - 3.2.0-1 -- Upgrade to latest stable version 3.2.0 - -* Thu Dec 3 2015 Marek Skalicky - 3.2.0-0.rc6 -- Upgrade to version 3.2.0-rc6 - -* Fri Nov 27 2015 Marek Skalicky - 3.2.0-0.rc4 -- Upgrade to version 3.2.0-rc4 - -* Thu Oct 15 2015 Marek Skalicky - 3.0.7-2 -- Fixed using system version of header files (#1269391#c0) - -* Thu Oct 15 2015 Marek Skalicky - 3.0.7-1 -- Upgrade to version 3.0.7 - -* Mon Oct 12 2015 Marek Skalicky - 3.0.6-3 -- Added patch to support boost 1.59 - -* Thu Oct 8 2015 Marek Skalicky - 3.0.6-2 -- Enable bundled WiredTiger - (FPC ticket - https://fedorahosted.org/fpc/ticket/562, - upstream discussion - https://groups.google.com/forum/#!topic/mongodb-dev/31FQSo4KVCI) - -* Thu Sep 24 2015 Marek Skalicky - 3.0.6-1 -- Fixed systemd service PIDFile setting (#1231269) -- Temporarily disable WiredTiger (FPC request to bundle it) -- Enable c++11 (MongoDB requires it since 3.0.5) -- Upgrade to version 3.0.6 - -* Tue Sep 08 2015 Severin Gehwolf - 3.0.4-6 -- Allow for tests to be enabled conditionally during build. - -* Thu Aug 27 2015 Jonathan Wakely - 3.0.4-5 -- Rebuilt for Boost 1.59 - -* Wed Jul 29 2015 Fedora Release Engineering - 3.0.4-4 -- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 - -* Wed Jul 22 2015 David Tardon - 3.0.4-3 -- rebuild for Boost 1.58 - -* Thu Jul 9 2015 Marek Skalicky - 3.0.4-2 -- Temporarily disable dbtest - see mongodb#SERVER-19309 -- Add patch to support latest WiredTiger release - -* Wed Jun 17 2015 Fedora Release Engineering - 3.0.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Wed Jun 17 2015 Marek Skalicky - 3.0.4-1 -- Upgrade to version 3.0.4 - -* Fri Jun 12 2015 Peter Robinson 3.0.3-2 -- All architectures have python-pymongo -- BuildReq cleanups - -* Wed Jun 10 2015 Marek Skalicky - 3.0.3-1 -- Fixed dbtest argument passing -- Upgrade to version 3.0.3 - -* Tue May 19 2015 Marek Skalicky - 3.0.2-3 -- Change log settigs (logappend=true) -- Run dbtest suite in check section -- Use variables instead of changing SConstruct - -* Sun May 03 2015 Kalev Lember - 3.0.2-2 -- Rebuilt for GCC 5 C++11 ABI change - -* Tue Apr 14 2015 Marek Skalicky - 3.0.2-1 -- Upgrade to version 3.0.2 - -* Wed Mar 4 2015 Marek Skalicky - 3.0.0-1 -- Upgrade to version 3.0.0 - -* Thu Feb 19 2015 Marek Skalicky - 2.6.7-5 -- Enabled hardened build -- Fixed init scripts to respect LSB (#1075736) - -* Mon Feb 16 2015 Marek Skalicky - 2.6.7-4 -- Revert bind_ip change in configuration files from version 2.6.6-4 - -* Wed Feb 4 2015 Marek Skalicky - 2.6.7-3 -- mongod.init won't exit before preallocating is done -- Disabled -Werror (dont't build with gcc 5.0) -- Changed permissions of mognodb-test/var directory to 755 -- Changed names of configuration and log files - -* Wed Jan 28 2015 Petr Machata - 2.6.7-2 -- Rebuild for boost 1.57.0 -- include in src/mongo/shell/linenoise_utf8.h - (mongodb-2.6.7-swap.patch) - -* Fri Jan 16 2015 Marek Skalicky 2.6.7-1 -- Upgrade to 2.6.7 -- Fix typo errors in mongodb-test README - -* Thu Jan 15 2015 Marek Skalicky 2.6.6-4 -- Changed unix socket location to /var/run/mongodb/ (#1047858) -- Revised default config files to correspond with --help options - -* Wed Jan 7 2015 Marek Skalicky 2.6.6-3 -- Added systemd TimeoutStartSec (#1040573) -- Reviewed patches and dependencies -- Added gcc requires to support built-in atomic operations -- Fix use of libstemmer and yaml-cpp system libraries - -* Wed Dec 10 2014 Marek Skalicky 2.6.6-2 -- Added check section and test subpackage - -* Wed Dec 10 2014 Marek Skalicky 2.6.6-1 -- Upgrade to version 2.6.6 - -* Thu Oct 9 2014 Marek Skalicky 2.6.5-2 -- Corrected/Finished renaming services and pid files -- Changed default mongos ports - -* Thu Oct 9 2014 Marek Skalicky 2.6.5-1 -- Updated to version 2.6.5 -- Renamed sysmted service files (to reflect mainstream names) - -* Sun Aug 17 2014 Fedora Release Engineering - 2.6.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Wed Jul 9 2014 Jan Pacner - 2.6.3-1 -- Resolves: #1103163 new major release with major differences -- add sharding server daemon init/unit files (and rename existing) -- use ld library path from env -- spec cleanup/clarification -- Resolves: #1047858 (RFE: Turn on PrivateTmp and relocate unix socket file) -- Related: #963824 (bloated binaries; splitting according to latest upstream) - -* Sat Jun 7 2014 Peter Robinson 2.4.9-7 -- aarch64 now has gperftools - -* Sat Jun 07 2014 Fedora Release Engineering - 2.4.9-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Fri May 23 2014 Petr Machata - 2.4.9-5 -- Rebuild for boost 1.55.0 - -* Fri May 23 2014 David Tardon - 2.4.9-4 -- rebuild for boost 1.55.0 - - -* Fri Feb 14 2014 T.C. Hollingsworth - 2.4.9-3 -- rebuild for icu-53 (via v8) - -* Tue Feb 04 2014 Matthias Saou 2.4.9-2 -- Merge el6 branch changes (we shouldn't start diverging now). -- Re-introduce conditionals, but to still support EL6. -- Include run directory only for EL6. -- Don't own the /usr/include directory. -- Make libmongodb requirement arch specific (#1010535). -- Fix multiple_occurrences error from duplicate --quiet options (#1022476). -- Fix broken v8 version specific requirement (#1027157). - -* Sun Jan 19 2014 Peter Robinson 2.4.9-1 -- Update to 2.4.9 -- Drop old < F-15 conditionals -- Cleanup Spec -- Run ldconfig for the lib package, not binary package -- Don't make some directories world readable (RHBZ 857926) - -* Mon Jan 06 2014 Jan Pacner - 2.4.6-3 -- Resolves: #1027157 (mongo shell sefgaults when using arbitrary v8 version) - -* Thu Nov 28 2013 Jan Pacner - 2.4.8-1 -- new release -- Resolves: #1010712 (LimitNOFILE) -- make sysconf options being respected - -* Wed Aug 21 2013 Troy Dawson - 2.4.6-1 -- Updated to 2.4.6 -- Added Requires: v8 (#971595) - -* Sun Jul 28 2013 Petr Machata - 2.4.5-6 -- Rebuild for boost 1.54.0 - -* Sat Jul 27 2013 pmachata@redhat.com - 2.4.5-5 -- Rebuild for boost 1.54.0 - -* Fri Jul 12 2013 Troy Dawson - 2.4.5-4 -- Added Provides: mongodb-devel to libmongodb-devel - -* Fri Jul 12 2013 Troy Dawson - 2.4.5-3 -- Removed hardening section. Currently doesn't work with 2.4.x - Wasn't really being applied when we thought it was. -- Cleaned up RHEL5 spec leftovers - -* Thu Jul 11 2013 David Marlin - 2.4.5-2 -- Updated arm patches to work with 2.4.x - -* Mon Jul 08 2013 Troy Dawson - 2.4.5-1 -- Update to version 2.4.5 to fix CVE-2013-4650 -- Patch3 fixed upstream - https://jira.mongodb.org/browse/SERVER-5575 -- Patch4 fixed upstream - https://jira.mongodb.org/browse/SERVER-6514 -- Put lib dir in correct place -- no longer have to remove duplicate headers - -* Sun Jul 07 2013 Johan Hedin - 2.4.4-4 -- Added patch to make mongodb compile with gcc 4.8 - -* Wed Jul 03 2013 Johan Hedin - 2.4.4-3 -- Added missing daemon name to the preun script for the server -- Fixed init script so that it does not kill the server on shutdown -- Renamed mongodb-devel to libmongdb-devel -- Dependency cleanup between the sub packages -- Moved Requires for the server to the server sub package -- Using %%{_unitdir} macro for where to put systemd unit files -- Fixed rpmlint warnings regarding %% in comments and mixed tabs/spaces -- Run systemd-tmpfiles --create mongodb.conf in post server - -* Mon Jul 01 2013 Troy Dawson - 2.4.4-2 -- Turn on hardened build (#958014) -- Apply patch to accept env flags - -* Sun Jun 30 2013 Johan Hedin - 2.4.4-1 -- Bumped version up to 2.4.4 -- Rebased the old 2.2 patches that are still needed to 2.4.4 -- Added some new patches to build 2.4.4 properly - -* Sat May 04 2013 David Marlin - 2.2.4-2 -- Updated patch to work on both ARMv5 and ARMv7 (#921226) - -* Thu May 02 2013 Troy Dawson - 2.2.4-1 -- Bumped version up to 2.2.4 -- Refreshed all patches to 2.2.4 - -* Fri Apr 26 2013 David Marlin - 2.2.3-5 -- Patch to build on ARM (#921226) - -* Wed Mar 27 2013 Troy Dawson - 2.2.3-4 -- Fix for CVE-2013-1892 - -* Sun Feb 10 2013 Denis Arnaud - 2.2.3-3 -- Rebuild for Boost-1.53.0 - -* Sat Feb 09 2013 Denis Arnaud - 2.2.3-2 -- Rebuild for Boost-1.53.0 - -* Tue Feb 05 2013 Troy Dawson - 2.2.3-1 -- Update to version 2.2.3 - -* Mon Jan 07 2013 Troy Dawson - 2.2.2-2 -- remove duplicate headers (#886064) - -* Wed Dec 05 2012 Troy Dawson - 2.2.2-1 -- Updated to version 2.2.2 - -* Tue Nov 27 2012 Troy Dawson - 2.2.1-3 -- Add ssl build option -- Using the reserved mongod UID for the useradd -- mongod man page in server package (#880351) -- added optional MONGODB_OPTIONS to init script - -* Wed Oct 31 2012 Nathaniel McCallum - 2.2.1-2 -- Make sure build and install flags are the same -- Actually remove the js patch file - -* Wed Oct 31 2012 Nathaniel McCallum - 2.2.1-1 -- Remove fork fix patch (fixed upstream) -- Remove pcre patch (fixed upstream) -- Remove mozjs patch (now using v8 upstream) -- Update to 2.2.1 - -* Tue Oct 02 2012 Troy Dawson - 2.2.0-6 -- full flag patch to get 32 bit builds to work - -* Tue Oct 02 2012 Troy Dawson - 2.2.0-5 -- shared libraries patch -- Fix up minor %%files issues - -* Fri Sep 28 2012 Troy Dawson - 2.2.0-4 -- Fix spec files problems - -* Fri Sep 28 2012 Troy Dawson - 2.2.0-3 -- Updated patch to use system libraries -- Update init script to use a pidfile - -* Thu Sep 27 2012 Troy Dawson - 2.2.0-2 -- Added patch to use system libraries - -* Wed Sep 19 2012 Troy Dawson - 2.2.0-1 -- Updated to 2.2.0 -- Updated patches that were still needed -- use v8 instead of spider_monkey due to bundled library issues - -* Tue Aug 21 2012 Nathaniel McCallum - 2.0.7-1 -- Update to 2.0.7 -- Don't patch for boost-filesystem version 3 on EL6 - -* Mon Aug 13 2012 Nathaniel McCallum - 2.0.6-3 -- Remove EL5 support -- Add patch to use boost-filesystem version 3 - -* Wed Aug 01 2012 Nathaniel McCallum - 2.0.6-2 -- Don't apply fix-xtime patch on EL5 - -* Wed Aug 01 2012 Nathaniel McCallum - 2.0.6-1 -- Update to 2.0.6 -- Update no-term patch -- Add fix-xtime patch for new boost - -* Fri Jul 20 2012 Fedora Release Engineering - 2.0.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Tue Apr 17 2012 Nathaniel McCallum - 2.0.4-1 -- Update to 2.0.4 -- Remove oldpython patch (fixed upstream) -- Remove snappy patch (fixed upstream) - -* Tue Feb 28 2012 Fedora Release Engineering - 2.0.2-10 -- Rebuilt for c++ ABI breakage - -* Fri Feb 10 2012 Petr Pisar - 2.0.2-9 -- Rebuild against PCRE 8.30 - -* Fri Feb 03 2012 Nathaniel McCallum - 2.0.2-8 -- Disable HTTP interface by default (#752331) - -* Fri Feb 03 2012 Nathaniel McCallum - 2.0.2-7 -- Enable journaling by default (#656112) -- Remove BuildRequires on unittest (#755081) - -* Fri Feb 03 2012 Nathaniel McCallum - 2.0.2-6 -- Clean up mongodb-src-r2.0.2-js.patch and fix #787246 - -* Tue Jan 17 2012 Nathaniel McCallum - 2.0.2-5 -- Enable build using external snappy - -* Tue Jan 17 2012 Nathaniel McCallum - 2.0.2-4 -- Patch buildsystem for building on older pythons (RHEL5) - -* Mon Jan 16 2012 Nathaniel McCallum - 2.0.2-3 -- Merge the 2.0.2 spec file with EPEL -- Merge mongodb-sm-pkgconfig.patch into mongodb-src-r2.0.2-js.patch - -* Mon Jan 16 2012 Nathaniel McCallum - 2.0.2-2 -- Add pkg-config enablement patch - -* Sat Jan 14 2012 Nathaniel McCallum - 2.0.2-1 -- Update to 2.0.2 -- Add new files (mongotop and bsondump manpage) -- Update mongodb-src-r1.8.2-js.patch => mongodb-src-r2.0.2-js.patch -- Update mongodb-fix-fork.patch -- Fix pcre linking - -* Fri Jan 13 2012 Fedora Release Engineering - 1.8.2-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Sun Nov 20 2011 Chris Lalancette - 1.8.2-10 -- Rebuild for rawhide boost update - -* Thu Sep 22 2011 Chris Lalancette - 1.8.2-9 -- Copy the right source file into place for tmpfiles.d - -* Tue Sep 20 2011 Chris Lalancette - 1.8.2-8 -- Add a tmpfiles.d file to create the /var/run/mongodb subdirectory - -* Mon Sep 12 2011 Chris Lalancette - 1.8.2-7 -- Add a patch to fix the forking to play nice with systemd -- Make the /var/run/mongodb directory owned by mongodb - -* Thu Jul 28 2011 Chris Lalancette - 1.8.2-6 -- BZ 725601 - fix the javascript engine to not hang (thanks to Eduardo Habkost) - -* Mon Jul 25 2011 Chris Lalancette - 1.8.2-5 -- Fixes to post server, preun server, and postun server to use systemd - -* Thu Jul 21 2011 Chris Lalancette - 1.8.2-4 -- Update to use systemd init - -* Thu Jul 21 2011 Chris Lalancette - 1.8.2-3 -- Rebuild for boost ABI break - -* Wed Jul 13 2011 Chris Lalancette - 1.8.2-2 -- Make mongodb-devel require boost-devel (BZ 703184) - -* Fri Jul 01 2011 Chris Lalancette - 1.8.2-1 -- Update to upstream 1.8.2 -- Add patch to ignore TERM - -* Fri Jul 01 2011 Chris Lalancette - 1.8.0-3 -- Bump release to build against new boost package - -* Sat Mar 19 2011 Nathaniel McCallum - 1.8.0-2 -- Make mongod bind only to 127.0.0.1 by default - -* Sat Mar 19 2011 Nathaniel McCallum - 1.8.0-1 -- Update to 1.8.0 -- Remove upstreamed nonce patch - -* Wed Feb 16 2011 Nathaniel McCallum - 1.7.5-5 -- Add nonce patch - -* Sun Feb 13 2011 Nathaniel McCallum - 1.7.5-4 -- Manually define to use boost-fs v2 - -* Sat Feb 12 2011 Nathaniel McCallum - 1.7.5-3 -- Disable extra warnings - -* Fri Feb 11 2011 Nathaniel McCallum - 1.7.5-2 -- Disable compilation errors on warnings - -* Fri Feb 11 2011 Nathaniel McCallum - 1.7.5-1 -- Update to 1.7.5 -- Remove CPPFLAGS override -- Added libmongodb package - -* Tue Feb 08 2011 Fedora Release Engineering - 1.6.4-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Mon Dec 06 2010 Nathaniel McCallum - 1.6.4-3 -- Add post/postun ldconfig... oops! - -* Mon Dec 06 2010 Nathaniel McCallum - 1.6.4-2 -- Enable --sharedclient option, remove static lib - -* Sat Dec 04 2010 Nathaniel McCallum - 1.6.4-1 -- New upstream release - -* Fri Oct 08 2010 Nathaniel McCallum - 1.6.3-4 -- Put -fPIC onto both the build and install scons calls - -* Fri Oct 08 2010 Nathaniel McCallum - 1.6.3-3 -- Define _initddir when it doesn't exist for el5 and others - -* Fri Oct 08 2010 Nathaniel McCallum - 1.6.3-2 -- Added -fPIC build option which was dropped by accident - -* Thu Oct 7 2010 Ionuț C. Arțăriși - 1.6.3-1 -- removed js Requires -- new upstream release -- added more excludearches: sparc s390, s390x and bugzilla pointer - -* Tue Sep 7 2010 Ionuț C. Arțăriși - 1.6.2-2 -- added ExcludeArch for ppc - -* Fri Sep 3 2010 Ionuț C. Arțăriși - 1.6.2-1 -- new upstream release 1.6.2 -- send mongod the USR1 signal when doing logrotate -- use config options when starting the daemon from the initfile -- removed dbpath patch: rely on config -- added pid directory to config file and created the dir in the spec -- made the init script use options from the config file -- changed logpath in mongodb.conf - -* Wed Sep 1 2010 Ionuț C. Arțăriși - 1.6.1-1 -- new upstream release 1.6.1 -- patched SConstruct to allow setting cppflags -- stopped using sed and chmod macros - -* Fri Aug 6 2010 Ionuț C. Arțăriși - 1.6.0-1 -- new upstream release: 1.6.0 -- added -server package -- added new license file to %%docs -- fix spurious permissions and EOF encodings on some files - -* Tue Jun 15 2010 Ionuț C. Arțăriși - 1.4.3-2 -- added explicit js requirement -- changed some names - -* Wed May 26 2010 Ionuț C. Arțăriși - 1.4.3-1 -- updated to 1.4.3 -- added zlib license for util/md5 -- deleted upstream deb/rpm recipes -- made scons not strip binaries -- made naming more consistent in logfile, lockfiles, init scripts etc. -- included manpages and added corresponding license -- added mongodb.conf to sources - -* Fri Oct 2 2009 Ionuț Arțăriși - 1.0.0-3 -- fixed libpath issue for 64bit systems - -* Thu Oct 1 2009 Ionuț Arțăriși - 1.0.0-2 -- added virtual -static package - -* Mon Aug 31 2009 Ionuț Arțăriși - 1.0.0-1 -- Initial release. diff --git a/mongos.conf b/mongos.conf deleted file mode 100644 index b460fe8..0000000 --- a/mongos.conf +++ /dev/null @@ -1,86 +0,0 @@ -## -## For list of options visit: -## https://docs.mongodb.org/manual/reference/configuration-options/ -## - -# systemLog Options - How to do logging -systemLog: - # The default log message verbosity level for components (0-5) - verbosity: 0 - - # The destination to which MongoDB sends all log output (file|syslog, if not specifed to STDOUT) - destination: file - - # Log file to send write to instead of stdout - has to be a file, not directory - path: /var/log/mongodb/mongod.log - - # Append to logpath instead of over-writing (false by default) - logAppend: true - - # Set the log rotation behavior (rename|reopen, rename by default) - logRotate: reopen - - -# processManagement Options - How the process runs -processManagement: - # Fork server process (false by default) - fork: true - - # Full path to pidfile (if not set, no pidfile is created) - pidFilePath: /var/run/mongodb/mongod.pid - - -# net Options - Network interfaces settings -net: - # Specify port number (27017 by default) - port: 27017 - - # Comma separated list of ip addresses to listen on (all local ips by default) - bindIp: 127.0.0.1,::1 - - # Enable IPv6 support (disabled by default) - ipv6: true - - unixDomainSocket: - # Enable/disable listening on the UNIX domain socket (true by default) - enabled: true - - # Alternative directory for UNIX domain sockets (defaults to /tmp) - pathPrefix: /var/run/mongodb - - #ssl: - # Set the SSL operation mode (disabled|allowSSL|preferSSL|requireSSL) - #mode: - - # PEM file for ssl - #PEMKeyFile: - - # Certificate Authority file for SSL - #CAFile: - - -# secutiry Options - Authorization and other security settings -#security: - # Private key for cluster authentication - #keyFile: - - -# sharding Options - Shard settings -#sharding: - # The configuration servers for the sharded cluster - # Acceptable form: /,,[...] - #configDB: - - -# storage Options - How and Where to store data -#storage: - -# setParameter Options - Set MongoDB server parameters -# setParameter: - -# opratrionProfiling Options - Profiling settings -#operationProfiling: - -# replication Options - ReplSet settings -#replication: - diff --git a/mongos.init b/mongos.init deleted file mode 100644 index bc770de..0000000 --- a/mongos.init +++ /dev/null @@ -1,170 +0,0 @@ -#!/bin/sh -# -# mongos init file for starting up the mongoDB shard server -# -# chkconfig: - 90 10 -# description: Starts and stops the mongoDB shard daemon that handles all \ -# database requests. - -# Source function library. -. /etc/rc.d/init.d/functions - -prog="mongos" -exec="/usr/bin/$prog" -logfile=${LOGFILE-/var/log/mongodb/$prog.log} - -[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog - -pidfile=${PIDFILE-/var/run/mongodb/$prog.pid} -options="$OPTIONS" -lockfile="/var/lock/subsys/$prog" - -# Nicer version of killproc that does not kill mongodb when it takes -# a long time to shut down and does not hang for a long time when mongo -# shuts down quickly -killproc_nice() { - local RC base pid pid_file= delay i - - RC=0; delay=3 - # Test syntax. - if [ "$#" -eq 0 ]; then - echo $"Usage: killproc [-p pidfile] [ -d delay] {program} [-signal]" - return 1 - fi - if [ "$1" = "-p" ]; then - pid_file=$2 - shift 2 - fi - if [ "$1" = "-d" ]; then - delay=$2 - shift 2 - fi - - # Save basename. - base=${1##*/} - - # Find pid. - __pids_var_run "$1" "$pid_file" - RC=$? - if [ -z "$pid" ]; then - if [ -z "$pid_file" ]; then - pid="$(__pids_pidof "$1")" - else - [ "$RC" = "4" ] && { failure $"$base shutdown" ; return $RC ;} - fi - fi - - # Kill it. - if [ -n "$pid" ] ; then - [ "$BOOTUP" = "verbose" -a -z "${LSB:-}" ] && echo -n "$base " - if checkpid $pid 2>&1; then - # TERM first, then KILL if not dead - kill -TERM $pid >/dev/null 2>&1 - usleep 100000 - - # Check every one second if the program is stopped. - # Do so for a maximum of $delay seconds - for ((i = 0 ; i < $delay; i++)) - do - if checkpid $pid; then - sleep 1 - else - break - fi - done - - # If the program is not stopped, kill it - if checkpid $pid ; then - kill -KILL $pid >/dev/null 2>&1 - usleep 100000 - fi - fi - checkpid $pid - RC=$? - [ "$RC" -eq 0 ] && failure $"$base shutdown" || success $"$base shutdown" - RC=$((! $RC)) - else - failure $"$base shutdown" - RC=0 - fi - - # Remove pid file if any. - rm -f "${pid_file:-/var/run/$base.pid}" - return $RC -} - -start() { - [ -x $exec ] || exit 5 - [ "$(id -u)" -eq 0 ] || exit 4 - echo -n $"Starting $prog: " - daemon --pidfile=${pidfile} --user mongodb "$exec $options >> $logfile 2>&1" - retval=$? - echo - [ $retval -eq 0 ] && touch $lockfile - return $retval -} - -stop() { - [ "$(id -u)" -eq 0 ] || exit 4 - echo -n $"Stopping $prog: " - killproc_nice -p ${pidfile} -d 300 $prog - retval=$? - echo - [ $retval -eq 0 ] && rm -f $lockfile - return $retval -} - -restart() { - stop - start -} - -reload() { - restart -} - -force_reload() { - restart -} - -rh_status() { - # run checks to determine if the service is running or use generic status - status -p ${pidfile} $prog -} - -rh_status_q() { - rh_status >/dev/null 2>&1 -} - - -case "$1" in - start) - rh_status_q && exit 0 - $1 - ;; - stop) - rh_status_q || exit 0 - $1 - ;; - restart) - $1 - ;; - reload) - rh_status_q || exit 7 - $1 - ;; - force-reload) - force_reload - ;; - status) - rh_status - ;; - condrestart|try-restart) - rh_status_q || exit 0 - restart - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" - exit 2 -esac -exit $? diff --git a/mongos.service b/mongos.service deleted file mode 100644 index 6dae7aa..0000000 --- a/mongos.service +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=High-performance, schema-free document-oriented database -After=syslog.target network.target - -[Service] -Type=forking -User=mongodb -EnvironmentFile=/etc/sysconfig/mongos -ExecStart=/bin/sh -c "exec $NUMACTL /usr/bin/mongos $OPTIONS" -PrivateTmp=true -LimitNOFILE=64000 -TimeoutStartSec=180 - -[Install] -WantedBy=multi-user.target diff --git a/mongos.sysconf b/mongos.sysconf deleted file mode 100644 index 8741ddd..0000000 --- a/mongos.sysconf +++ /dev/null @@ -1,5 +0,0 @@ -OPTIONS="-f /etc/mongos.conf" - -# To run numactl before starting mongodb server -# https://docs.mongodb.com/manual/administration/production-notes/#configuring-numa-on-linux -#NUMACTL="/usr/bin/numactl --interleave=all" diff --git a/ppc64-altivec.patch b/ppc64-altivec.patch deleted file mode 100644 index c027f5b..0000000 --- a/ppc64-altivec.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/SConstruct b/SConstruct -index 22dd77d947..3b90026138 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -3043,7 +3043,7 @@ def doConfigure(myenv): - # ask each module to configure itself and the build environment. - moduleconfig.configure_modules(mongo_modules, conf) - -- if env['TARGET_ARCH'] == "ppc64le": -+ if env['TARGET_ARCH'] == "ppc64le" or env['TARGET_ARCH'] == "ppc64": - # This checks for an altivec optimization we use in full text search. - # Different versions of gcc appear to put output bytes in different - # parts of the output vector produced by vec_vbpermq. This configure diff --git a/ppc64-arm-i386-mozjs-code.patch b/ppc64-arm-i386-mozjs-code.patch deleted file mode 100644 index e36ba29..0000000 --- a/ppc64-arm-i386-mozjs-code.patch +++ /dev/null @@ -1,7079 +0,0 @@ -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src0.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src0.cpp -new file mode 100644 -index 0000000000..3392352d8b ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src0.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "asmjs/AsmJSFrameIterator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSFrameIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSFrameIterator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/AsmJSLink.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSLink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSLink.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/AsmJSModule.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSModule.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSModule.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/AsmJSSignalHandlers.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSSignalHandlers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSSignalHandlers.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/AsmJSValidate.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSValidate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSValidate.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/WasmGenerator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/WasmGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/WasmGenerator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src1.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src1.cpp -new file mode 100644 -index 0000000000..a6b717f374 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src1.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "asmjs/WasmIonCompile.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/WasmIonCompile.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/WasmIonCompile.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/WasmStubs.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/WasmStubs.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/WasmStubs.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/AtomicsObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/AtomicsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/AtomicsObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Eval.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Eval.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Eval.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Intl.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Intl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Intl.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/MapObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/MapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/MapObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src10.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src10.cpp -new file mode 100644 -index 0000000000..8790c5fa8e ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src10.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/BaselineFrameInfo.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineFrameInfo.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineFrameInfo.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineIC.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineIC.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineInspector.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineInspector.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineInspector.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineJIT.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineJIT.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineJIT.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BitSet.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BitSet.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BitSet.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BytecodeAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BytecodeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BytecodeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src11.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src11.cpp -new file mode 100644 -index 0000000000..39333e8bbd ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src11.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/C1Spewer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/C1Spewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/C1Spewer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/CodeGenerator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/CodeGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/CodeGenerator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/CompileWrappers.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/CompileWrappers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/CompileWrappers.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Disassembler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Disassembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Disassembler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/EagerSimdUnbox.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/EagerSimdUnbox.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/EagerSimdUnbox.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/EdgeCaseAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/EdgeCaseAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/EdgeCaseAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src12.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src12.cpp -new file mode 100644 -index 0000000000..c2ccff74ad ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src12.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/EffectiveAddressAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/EffectiveAddressAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/EffectiveAddressAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/ExecutableAllocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/ExecutableAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/ExecutableAllocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/InstructionReordering.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/InstructionReordering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/InstructionReordering.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Ion.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Ion.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Ion.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/IonAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/IonAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/IonAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/IonBuilder.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/IonBuilder.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/IonBuilder.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src13.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src13.cpp -new file mode 100644 -index 0000000000..61225a9350 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src13.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/IonCaches.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/IonCaches.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/IonCaches.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/IonOptimizationLevels.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/IonOptimizationLevels.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/IonOptimizationLevels.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/JSONSpewer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JSONSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JSONSpewer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/JitFrames.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JitFrames.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JitFrames.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/JitOptions.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JitOptions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JitOptions.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/JitSpewer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JitSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JitSpewer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src14.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src14.cpp -new file mode 100644 -index 0000000000..69f4d54cd5 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src14.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/JitcodeMap.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JitcodeMap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JitcodeMap.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/LICM.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/LICM.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/LICM.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/LIR.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/LIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/LIR.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/LoopUnroller.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/LoopUnroller.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/LoopUnroller.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Lowering.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Lowering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Lowering.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/MCallOptimize.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MCallOptimize.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MCallOptimize.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src15.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src15.cpp -new file mode 100644 -index 0000000000..544491554b ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src15.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/MIR.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MIR.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/MIRGraph.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MIRGraph.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MIRGraph.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/MacroAssembler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/MoveResolver.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MoveResolver.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MoveResolver.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/OptimizationTracking.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/OptimizationTracking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/OptimizationTracking.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/PerfSpewer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/PerfSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/PerfSpewer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src16.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src16.cpp -new file mode 100644 -index 0000000000..d8c2a53bb3 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src16.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/ProcessExecutableMemory.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/ProcessExecutableMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/ProcessExecutableMemory.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/RangeAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/RangeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/RangeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Recover.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Recover.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Recover.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/RegisterAllocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/RegisterAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/RegisterAllocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/RematerializedFrame.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/RematerializedFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/RematerializedFrame.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Safepoints.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Safepoints.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Safepoints.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src17.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src17.cpp -new file mode 100644 -index 0000000000..c0fda43387 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src17.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/ScalarReplacement.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/ScalarReplacement.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/ScalarReplacement.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/SharedIC.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/SharedIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/SharedIC.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Sink.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Sink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Sink.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Snapshots.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Snapshots.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Snapshots.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/StupidAllocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/StupidAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/StupidAllocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/TypePolicy.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/TypePolicy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/TypePolicy.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src18.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src18.cpp -new file mode 100644 -index 0000000000..0f4d9527c3 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src18.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/TypedObjectPrediction.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/TypedObjectPrediction.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/TypedObjectPrediction.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/VMFunctions.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/VMFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/VMFunctions.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/ValueNumbering.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/ValueNumbering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/ValueNumbering.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/arm/Architecture-arm.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/arm/Architecture-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/arm/Architecture-arm.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/arm/Assembler-arm.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/arm/Assembler-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/arm/Assembler-arm.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/arm/Bailouts-arm.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/arm/Bailouts-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/arm/Bailouts-arm.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src19.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src19.cpp -new file mode 100644 -index 0000000000..60669a66ab ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src19.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/arm/BaselineCompiler-arm.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/arm/BaselineCompiler-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/arm/BaselineCompiler-arm.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/arm/BaselineIC-arm.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/arm/BaselineIC-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/arm/BaselineIC-arm.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/arm/CodeGenerator-arm.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/arm/CodeGenerator-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/arm/CodeGenerator-arm.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/arm/Lowering-arm.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/arm/Lowering-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/arm/Lowering-arm.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/arm/MacroAssembler-arm.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/arm/MacroAssembler-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/arm/MacroAssembler-arm.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/arm/MoveEmitter-arm.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/arm/MoveEmitter-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/arm/MoveEmitter-arm.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src2.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src2.cpp -new file mode 100644 -index 0000000000..f9ee5a1f37 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src2.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "builtin/ModuleObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/ModuleObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/ModuleObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Object.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Object.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Object.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Profilers.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Profilers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Profilers.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Reflect.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Reflect.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Reflect.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/ReflectParse.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/ReflectParse.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/ReflectParse.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/SIMD.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/SIMD.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/SIMD.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src20.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src20.cpp -new file mode 100644 -index 0000000000..8f535341f5 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src20.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/arm/SharedIC-arm.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/arm/SharedIC-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/arm/SharedIC-arm.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/arm/Trampoline-arm.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/arm/Trampoline-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/arm/Trampoline-arm.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/arm/disasm/Constants-arm.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/arm/disasm/Constants-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/arm/disasm/Constants-arm.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/arm/disasm/Disasm-arm.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/arm/disasm/Disasm-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/arm/disasm/Disasm-arm.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/shared/BaselineCompiler-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/shared/BaselineCompiler-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/shared/BaselineCompiler-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/shared/CodeGenerator-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/shared/CodeGenerator-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/shared/CodeGenerator-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src21.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src21.cpp -new file mode 100644 -index 0000000000..c4d8192b3b ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src21.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/shared/Lowering-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/shared/Lowering-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/shared/Lowering-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsalloc.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsalloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsalloc.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsapi.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsapi.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsbool.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsbool.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsbool.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jscntxt.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jscntxt.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jscntxt.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jscompartment.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jscompartment.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jscompartment.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src22.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src22.cpp -new file mode 100644 -index 0000000000..4014315c08 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src22.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jsdate.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsdate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsdate.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsdtoa.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsdtoa.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsdtoa.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsexn.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsexn.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsexn.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsfriendapi.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsfriendapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsfriendapi.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsfun.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsfun.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsfun.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsgc.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsgc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsgc.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src23.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src23.cpp -new file mode 100644 -index 0000000000..aba9fc0cb4 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src23.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jsiter.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsiter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsiter.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsnativestack.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsnativestack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsnativestack.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsnum.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsnum.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsnum.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsobj.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsobj.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsobj.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "json.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "json.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "json.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsopcode.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsopcode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsopcode.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src24.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src24.cpp -new file mode 100644 -index 0000000000..5a610ef6ac ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src24.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jsprf.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsprf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsprf.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jspropertytree.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jspropertytree.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jspropertytree.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsscript.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsscript.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsscript.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsstr.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsstr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsstr.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jswatchpoint.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jswatchpoint.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jswatchpoint.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsweakmap.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsweakmap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsweakmap.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src25.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src25.cpp -new file mode 100644 -index 0000000000..357fb8b6a9 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src25.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "perf/jsperf.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "perf/jsperf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "perf/jsperf.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/BaseProxyHandler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/BaseProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/BaseProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/CrossCompartmentWrapper.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/CrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/CrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/DeadObjectProxy.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/DeadObjectProxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/DeadObjectProxy.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/DirectProxyHandler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/DirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/DirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/OpaqueCrossCompartmentWrapper.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/OpaqueCrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/OpaqueCrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src26.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src26.cpp -new file mode 100644 -index 0000000000..c9a4e53f85 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src26.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "proxy/Proxy.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/Proxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/Proxy.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/ScriptedDirectProxyHandler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/ScriptedDirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/ScriptedDirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/ScriptedIndirectProxyHandler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/ScriptedIndirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/ScriptedIndirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/SecurityWrapper.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/SecurityWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/SecurityWrapper.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/Wrapper.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/Wrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/Wrapper.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ArgumentsObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ArgumentsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ArgumentsObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src27.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src27.cpp -new file mode 100644 -index 0000000000..aa66b36fb1 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src27.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/ArrayBufferObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ArrayBufferObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ArrayBufferObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/CallNonGenericMethod.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/CallNonGenericMethod.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/CallNonGenericMethod.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/CharacterEncoding.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/CharacterEncoding.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/CharacterEncoding.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/CodeCoverage.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/CodeCoverage.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/CodeCoverage.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Compression.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Compression.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Compression.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/DateTime.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/DateTime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/DateTime.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src28.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src28.cpp -new file mode 100644 -index 0000000000..3d98b61795 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src28.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/Debugger.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Debugger.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Debugger.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/DebuggerMemory.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/DebuggerMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/DebuggerMemory.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ErrorObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ErrorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ErrorObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ForOfIterator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ForOfIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ForOfIterator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/GeneratorObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/GeneratorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/GeneratorObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/GlobalObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/GlobalObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/GlobalObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src29.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src29.cpp -new file mode 100644 -index 0000000000..86af1e7327 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src29.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/HelperThreads.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/HelperThreads.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/HelperThreads.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Id.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Id.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Id.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Interpreter.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Interpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Interpreter.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/JSONParser.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/JSONParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/JSONParser.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/MemoryMetrics.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/MemoryMetrics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/MemoryMetrics.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Monitor.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Monitor.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Monitor.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src3.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src3.cpp -new file mode 100644 -index 0000000000..32bd1caa82 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src3.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "builtin/SymbolObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/SymbolObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/SymbolObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/TestingFunctions.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/TestingFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/TestingFunctions.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/TypedObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/TypedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/TypedObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/WeakMapObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/WeakMapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/WeakMapObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/WeakSetObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/WeakSetObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/WeakSetObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "devtools/sharkctl.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "devtools/sharkctl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "devtools/sharkctl.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src30.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src30.cpp -new file mode 100644 -index 0000000000..9e43dfb736 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src30.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/NativeObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/NativeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/NativeObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ObjectGroup.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ObjectGroup.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ObjectGroup.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/PIC.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/PIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/PIC.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/PosixNSPR.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/PosixNSPR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/PosixNSPR.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Printer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Printer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Printer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Probes.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Probes.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Probes.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src31.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src31.cpp -new file mode 100644 -index 0000000000..e4ac196768 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src31.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/ProxyObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ProxyObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ProxyObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ReceiverGuard.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ReceiverGuard.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ReceiverGuard.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/RegExpObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/RegExpObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/RegExpObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/RegExpStatics.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/RegExpStatics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/RegExpStatics.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Runtime.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Runtime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Runtime.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/SPSProfiler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/SPSProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/SPSProfiler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src32.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src32.cpp -new file mode 100644 -index 0000000000..a702a115ae ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src32.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/SavedStacks.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/SavedStacks.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/SavedStacks.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ScopeObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ScopeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ScopeObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/SelfHosting.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/SelfHosting.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/SelfHosting.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Shape.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Shape.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Shape.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/SharedArrayObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/SharedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/SharedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Stack.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Stack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Stack.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src33.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src33.cpp -new file mode 100644 -index 0000000000..b106a07280 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src33.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/Stopwatch.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Stopwatch.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Stopwatch.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/String.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/String.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/String.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/StringBuffer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/StringBuffer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/StringBuffer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/StructuredClone.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/StructuredClone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/StructuredClone.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Symbol.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Symbol.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Symbol.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/TaggedProto.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/TaggedProto.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/TaggedProto.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src34.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src34.cpp -new file mode 100644 -index 0000000000..e66ddb3e8a ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src34.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/Time.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Time.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Time.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/TypeInference.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/TypeInference.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/TypeInference.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/TypedArrayObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/TypedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/TypedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/UbiNode.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/UbiNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/UbiNode.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/UbiNodeCensus.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/UbiNodeCensus.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/UbiNodeCensus.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/UnboxedObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/UnboxedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/UnboxedObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src35.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src35.cpp -new file mode 100644 -index 0000000000..bcf3f00370 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src35.cpp -@@ -0,0 +1,37 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/Unicode.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Unicode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Unicode.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Value.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Value.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Value.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/WeakMapPtr.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/WeakMapPtr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/WeakMapPtr.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Xdr.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Xdr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Xdr.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src4.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src4.cpp -new file mode 100644 -index 0000000000..44163573c9 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src4.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "ds/LifoAlloc.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "ds/LifoAlloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "ds/LifoAlloc.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/BytecodeCompiler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/BytecodeCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/BytecodeCompiler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/BytecodeEmitter.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/BytecodeEmitter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/BytecodeEmitter.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/FoldConstants.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/FoldConstants.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/FoldConstants.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/NameFunctions.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/NameFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/NameFunctions.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/ParseMaps.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/ParseMaps.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/ParseMaps.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src5.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src5.cpp -new file mode 100644 -index 0000000000..4a056d0b55 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src5.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "frontend/ParseNode.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/ParseNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/ParseNode.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/TokenStream.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/TokenStream.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/TokenStream.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Allocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Allocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Allocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Barrier.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Barrier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Barrier.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/GCTrace.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/GCTrace.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/GCTrace.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Iteration.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Iteration.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Iteration.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src6.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src6.cpp -new file mode 100644 -index 0000000000..2c0af2b856 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src6.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "gc/Marking.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Marking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Marking.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Memory.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Memory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Memory.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/MemoryProfiler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/MemoryProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/MemoryProfiler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Nursery.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Nursery.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Nursery.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/RootMarking.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/RootMarking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/RootMarking.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Statistics.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Statistics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Statistics.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src7.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src7.cpp -new file mode 100644 -index 0000000000..edc5d0ddec ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src7.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "gc/Tracer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Tracer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Tracer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Verifier.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Verifier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Verifier.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Zone.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Zone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Zone.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/NativeRegExpMacroAssembler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/NativeRegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/NativeRegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpAST.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpAST.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpAST.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpEngine.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpEngine.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpEngine.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src8.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src8.cpp -new file mode 100644 -index 0000000000..4150698a38 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src8.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "irregexp/RegExpInterpreter.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpInterpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpInterpreter.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpMacroAssembler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpParser.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpParser.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpStack.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpStack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpStack.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/AliasAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/AliasAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/AliasAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/AlignmentMaskAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/AlignmentMaskAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/AlignmentMaskAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src9.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src9.cpp -new file mode 100644 -index 0000000000..a02b358e40 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src9.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/BacktrackingAllocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BacktrackingAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BacktrackingAllocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Bailouts.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Bailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Bailouts.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineBailouts.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineBailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineBailouts.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineCompiler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineCompiler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineDebugModeOSR.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineDebugModeOSR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineDebugModeOSR.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineFrame.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineFrame.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/js-confdefs.h b/src/third_party/mozjs-45/platform/arm/linux/build/js-confdefs.h -new file mode 100644 -index 0000000000..c24f52dc23 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/build/js-confdefs.h -@@ -0,0 +1,100 @@ -+/* List of defines generated by configure. Included with preprocessor flag, -+ * -include, to avoid long list of -D defines on the compile command-line. -+ * Do not edit. -+ */ -+ -+#ifndef js_confdefs_h -+#define js_confdefs_h -+ -+#define BUILD_ARM_NEON 1 -+#define CPP_THROW_NEW throw() -+#define D_INO d_ino -+#define EDITLINE 1 -+#define HAVE_ACOSH 1 -+#define HAVE_ALLOCA_H 1 -+#define HAVE_ARM_NEON 1 -+#define HAVE_ARM_SIMD 1 -+#define HAVE_ASINH 1 -+#define HAVE_ATANH 1 -+#define HAVE_CBRT 1 -+#define HAVE_CLOCK_MONOTONIC 1 -+#define HAVE_CPP_AMBIGUITY_RESOLVING_USING 1 -+#define HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR 1 -+#define HAVE_DIRENT_H 1 -+#define HAVE_DLOPEN 1 -+#define HAVE_ENDIAN_H 1 -+#define HAVE_EXPM1 1 -+#define HAVE_GETC_UNLOCKED 1 -+#define HAVE_GETOPT_H 1 -+#define HAVE_GMTIME_R 1 -+#define HAVE_GNU_LIBC_VERSION_H 1 -+#define HAVE_I18N_LC_MESSAGES 1 -+#define HAVE_LANGINFO_CODESET 1 -+#define HAVE_LIBM 1 -+#define HAVE_LINUX_QUOTA_H 1 -+#define HAVE_LOCALECONV 1 -+#define HAVE_LOCALECONV 1 -+#define HAVE_LOCALTIME_R 1 -+#define HAVE_LOG1P 1 -+#define HAVE_LOG2 1 -+#define HAVE_MALLOC_H 1 -+#define HAVE_MALLOC_H 1 -+#define HAVE_MALLOC_USABLE_SIZE 1 -+#define HAVE_MBRTOWC 1 -+#define HAVE_MEMALIGN 1 -+#define HAVE_MEMORY_H 1 -+#define HAVE_NL_TYPES_H 1 -+#define HAVE_POSIX_FADVISE 1 -+#define HAVE_POSIX_FALLOCATE 1 -+#define HAVE_POSIX_MEMALIGN 1 -+#define HAVE_RES_NINIT 1 -+#define HAVE_SETLOCALE 1 -+#define HAVE_SSIZE_T 1 -+#define HAVE_STRNDUP 1 -+#define HAVE_SYS_BITYPES_H 1 -+#define HAVE_SYS_CDEFS_H 1 -+#define HAVE_SYS_MOUNT_H 1 -+#define HAVE_SYS_QUOTA_H 1 -+#define HAVE_SYS_STATFS_H 1 -+#define HAVE_SYS_STATVFS_H 1 -+#define HAVE_SYS_VFS_H 1 -+#define HAVE_THREAD_TLS_KEYWORD 1 -+#define HAVE_TM_ZONE_TM_GMTOFF 1 -+#define HAVE_UNISTD_H 1 -+#define HAVE_VALLOC 1 -+#define HAVE_VA_COPY 1 -+#define HAVE_VISIBILITY_ATTRIBUTE 1 -+#define HAVE_VISIBILITY_HIDDEN_ATTRIBUTE 1 -+#define HAVE_WCRTOMB 1 -+#define HAVE___CXA_DEMANGLE 1 -+#define JS_CODEGEN_ARM 1 -+#define JS_CPU_ARM 1 -+#define JS_DEFAULT_JITREPORT_GRANULARITY 3 -+#define JS_HAVE_ENDIAN_H 1 -+#define JS_NUNBOX32 1 -+#define JS_POSIX_NSPR 1 -+#define JS_STANDALONE 1 -+#define MALLOC_H -+#define MALLOC_USABLE_SIZE_CONST_PTR -+#define MOZILLA_UAVERSION "45.0" -+#define MOZILLA_VERSION "45.8.0" -+#define MOZILLA_VERSION_U 45.8.0 -+#define MOZJS_MAJOR_VERSION 45 -+#define MOZJS_MINOR_VERSION 8 -+#define MOZ_DEBUG_SYMBOLS 1 -+#define MOZ_DLL_SUFFIX ".so" -+#define MOZ_GLUE_IN_PROGRAM 1 -+#define MOZ_MEMORY 1 -+#define MOZ_MEMORY_LINUX 1 -+#define MOZ_UPDATE_CHANNEL default -+#define NO_NSPR_10_SUPPORT 1 -+#define RELEASE_BUILD 1 -+#define STDC_HEADERS 1 -+#define VA_COPY va_copy -+#define XP_UNIX 1 -+#define X_DISPLAY_MISSING 1 -+#define _REENTRANT 1 -+ -+#include "js/RequiredDefines.h" -+ -+#endif /* js_confdefs_h */ -diff --git a/src/third_party/mozjs-45/platform/arm/linux/include/js-config.h b/src/third_party/mozjs-45/platform/arm/linux/include/js-config.h -new file mode 100644 -index 0000000000..a5645020e0 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/arm/linux/include/js-config.h -@@ -0,0 +1,59 @@ -+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- -+ * vim: set ts=8 sw=4 et tw=78: -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -+ -+#ifndef js_config_h -+#define js_config_h -+ -+/* Definitions set at build time that affect SpiderMonkey's public API. -+ This header file is generated by the SpiderMonkey configure script, -+ and installed along with jsapi.h. */ -+ -+/* Define to 1 if SpiderMonkey is in debug mode. */ -+/* #undef JS_DEBUG */ -+ -+/* Define to 1 if SpiderMonkey should not use struct types in debug builds. */ -+/* #undef JS_NO_JSVAL_JSID_STRUCT_TYPES */ -+ -+/* Define to 1 if SpiderMonkey should support multi-threaded clients. */ -+/* #undef JS_THREADSAFE */ -+ -+/* Define to 1 if SpiderMonkey should include ctypes support. */ -+/* #undef JS_HAS_CTYPES */ -+ -+/* Define to 1 if SpiderMonkey should support the ability to perform -+ entirely too much GC. */ -+/* #undef JS_GC_ZEAL */ -+ -+/* Define to 1 if SpiderMonkey should use small chunks. */ -+/* #undef JS_GC_SMALL_CHUNK_SIZE */ -+ -+/* Define to 1 to perform extra assertions and heap poisoning. */ -+/* #undef JS_CRASH_DIAGNOSTICS */ -+ -+/* Define to 1 if the header is present and -+ useable. See jscpucfg.h. */ -+#define JS_HAVE_ENDIAN_H 1 -+ -+/* Define to 1 if the header is present and -+ useable. See jscpucfg.h. */ -+/* #undef JS_HAVE_MACHINE_ENDIAN_H */ -+ -+/* Define to 1 if the header is present and -+ useable. See jscpucfg.h. */ -+/* #undef JS_HAVE_SYS_ISA_DEFS_H */ -+ -+/* Define to 1 if SpiderMonkey is in NUNBOX32 mode. */ -+#define JS_NUNBOX32 1 -+ -+/* Define to 1 if SpiderMonkey is in PUNBOX64 mode. */ -+/* #undef JS_PUNBOX64 */ -+ -+/* MOZILLA JSAPI version number components */ -+#define MOZJS_MAJOR_VERSION 45 -+#define MOZJS_MINOR_VERSION 8 -+ -+#endif /* js_config_h */ -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src0.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src0.cpp -new file mode 100644 -index 0000000000..3392352d8b ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src0.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "asmjs/AsmJSFrameIterator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSFrameIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSFrameIterator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/AsmJSLink.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSLink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSLink.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/AsmJSModule.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSModule.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSModule.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/AsmJSSignalHandlers.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSSignalHandlers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSSignalHandlers.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/AsmJSValidate.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSValidate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSValidate.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/WasmGenerator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/WasmGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/WasmGenerator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src1.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src1.cpp -new file mode 100644 -index 0000000000..a6b717f374 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src1.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "asmjs/WasmIonCompile.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/WasmIonCompile.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/WasmIonCompile.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/WasmStubs.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/WasmStubs.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/WasmStubs.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/AtomicsObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/AtomicsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/AtomicsObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Eval.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Eval.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Eval.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Intl.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Intl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Intl.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/MapObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/MapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/MapObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src10.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src10.cpp -new file mode 100644 -index 0000000000..8790c5fa8e ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src10.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/BaselineFrameInfo.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineFrameInfo.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineFrameInfo.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineIC.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineIC.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineInspector.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineInspector.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineInspector.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineJIT.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineJIT.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineJIT.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BitSet.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BitSet.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BitSet.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BytecodeAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BytecodeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BytecodeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src11.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src11.cpp -new file mode 100644 -index 0000000000..39333e8bbd ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src11.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/C1Spewer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/C1Spewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/C1Spewer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/CodeGenerator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/CodeGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/CodeGenerator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/CompileWrappers.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/CompileWrappers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/CompileWrappers.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Disassembler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Disassembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Disassembler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/EagerSimdUnbox.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/EagerSimdUnbox.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/EagerSimdUnbox.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/EdgeCaseAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/EdgeCaseAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/EdgeCaseAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src12.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src12.cpp -new file mode 100644 -index 0000000000..c2ccff74ad ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src12.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/EffectiveAddressAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/EffectiveAddressAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/EffectiveAddressAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/ExecutableAllocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/ExecutableAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/ExecutableAllocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/InstructionReordering.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/InstructionReordering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/InstructionReordering.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Ion.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Ion.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Ion.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/IonAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/IonAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/IonAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/IonBuilder.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/IonBuilder.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/IonBuilder.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src13.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src13.cpp -new file mode 100644 -index 0000000000..61225a9350 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src13.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/IonCaches.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/IonCaches.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/IonCaches.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/IonOptimizationLevels.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/IonOptimizationLevels.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/IonOptimizationLevels.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/JSONSpewer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JSONSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JSONSpewer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/JitFrames.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JitFrames.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JitFrames.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/JitOptions.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JitOptions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JitOptions.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/JitSpewer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JitSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JitSpewer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src14.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src14.cpp -new file mode 100644 -index 0000000000..69f4d54cd5 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src14.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/JitcodeMap.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JitcodeMap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JitcodeMap.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/LICM.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/LICM.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/LICM.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/LIR.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/LIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/LIR.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/LoopUnroller.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/LoopUnroller.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/LoopUnroller.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Lowering.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Lowering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Lowering.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/MCallOptimize.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MCallOptimize.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MCallOptimize.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src15.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src15.cpp -new file mode 100644 -index 0000000000..544491554b ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src15.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/MIR.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MIR.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/MIRGraph.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MIRGraph.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MIRGraph.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/MacroAssembler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/MoveResolver.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MoveResolver.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MoveResolver.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/OptimizationTracking.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/OptimizationTracking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/OptimizationTracking.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/PerfSpewer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/PerfSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/PerfSpewer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src16.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src16.cpp -new file mode 100644 -index 0000000000..d8c2a53bb3 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src16.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/ProcessExecutableMemory.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/ProcessExecutableMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/ProcessExecutableMemory.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/RangeAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/RangeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/RangeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Recover.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Recover.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Recover.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/RegisterAllocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/RegisterAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/RegisterAllocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/RematerializedFrame.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/RematerializedFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/RematerializedFrame.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Safepoints.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Safepoints.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Safepoints.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src17.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src17.cpp -new file mode 100644 -index 0000000000..c0fda43387 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src17.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/ScalarReplacement.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/ScalarReplacement.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/ScalarReplacement.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/SharedIC.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/SharedIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/SharedIC.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Sink.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Sink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Sink.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Snapshots.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Snapshots.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Snapshots.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/StupidAllocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/StupidAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/StupidAllocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/TypePolicy.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/TypePolicy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/TypePolicy.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src18.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src18.cpp -new file mode 100644 -index 0000000000..232559f61e ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src18.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/TypedObjectPrediction.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/TypedObjectPrediction.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/TypedObjectPrediction.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/VMFunctions.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/VMFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/VMFunctions.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/ValueNumbering.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/ValueNumbering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/ValueNumbering.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/shared/BaselineCompiler-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/shared/BaselineCompiler-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/shared/BaselineCompiler-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/shared/CodeGenerator-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/shared/CodeGenerator-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/shared/CodeGenerator-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/shared/Lowering-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/shared/Lowering-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/shared/Lowering-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src19.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src19.cpp -new file mode 100644 -index 0000000000..3bea6cc867 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src19.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/x86-shared/Architecture-x86-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86-shared/Architecture-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86-shared/Architecture-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86-shared/Assembler-x86-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86-shared/Assembler-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86-shared/Assembler-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86-shared/AssemblerBuffer-x86-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86-shared/AssemblerBuffer-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86-shared/AssemblerBuffer-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86-shared/BaselineCompiler-x86-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86-shared/BaselineCompiler-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86-shared/BaselineCompiler-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86-shared/BaselineIC-x86-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86-shared/BaselineIC-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86-shared/BaselineIC-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86-shared/CodeGenerator-x86-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86-shared/CodeGenerator-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86-shared/CodeGenerator-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src2.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src2.cpp -new file mode 100644 -index 0000000000..f9ee5a1f37 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src2.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "builtin/ModuleObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/ModuleObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/ModuleObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Object.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Object.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Object.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Profilers.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Profilers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Profilers.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Reflect.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Reflect.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Reflect.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/ReflectParse.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/ReflectParse.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/ReflectParse.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/SIMD.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/SIMD.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/SIMD.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src20.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src20.cpp -new file mode 100644 -index 0000000000..47705ef152 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src20.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/x86-shared/Lowering-x86-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86-shared/Lowering-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86-shared/Lowering-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86-shared/MacroAssembler-x86-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86-shared/MacroAssembler-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86-shared/MacroAssembler-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86-shared/MoveEmitter-x86-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86-shared/MoveEmitter-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86-shared/MoveEmitter-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86/Assembler-x86.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86/Assembler-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86/Assembler-x86.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86/Bailouts-x86.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86/Bailouts-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86/Bailouts-x86.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86/BaselineCompiler-x86.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86/BaselineCompiler-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86/BaselineCompiler-x86.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src21.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src21.cpp -new file mode 100644 -index 0000000000..8df3bcb0a1 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src21.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/x86/BaselineIC-x86.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86/BaselineIC-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86/BaselineIC-x86.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86/CodeGenerator-x86.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86/CodeGenerator-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86/CodeGenerator-x86.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86/Lowering-x86.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86/Lowering-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86/Lowering-x86.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86/MacroAssembler-x86.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86/MacroAssembler-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86/MacroAssembler-x86.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86/SharedIC-x86.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86/SharedIC-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86/SharedIC-x86.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/x86/Trampoline-x86.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/x86/Trampoline-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/x86/Trampoline-x86.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src22.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src22.cpp -new file mode 100644 -index 0000000000..3f735d3edd ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src22.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jsalloc.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsalloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsalloc.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsapi.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsapi.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsbool.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsbool.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsbool.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jscntxt.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jscntxt.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jscntxt.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jscompartment.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jscompartment.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jscompartment.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsdate.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsdate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsdate.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src23.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src23.cpp -new file mode 100644 -index 0000000000..657a68b468 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src23.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jsdtoa.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsdtoa.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsdtoa.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsexn.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsexn.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsexn.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsfriendapi.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsfriendapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsfriendapi.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsfun.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsfun.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsfun.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsgc.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsgc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsgc.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsiter.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsiter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsiter.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src24.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src24.cpp -new file mode 100644 -index 0000000000..3aef296444 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src24.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jsnativestack.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsnativestack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsnativestack.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsnum.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsnum.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsnum.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsobj.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsobj.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsobj.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "json.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "json.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "json.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsopcode.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsopcode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsopcode.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsprf.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsprf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsprf.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src25.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src25.cpp -new file mode 100644 -index 0000000000..10ed87fb89 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src25.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jspropertytree.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jspropertytree.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jspropertytree.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsscript.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsscript.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsscript.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsstr.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsstr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsstr.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jswatchpoint.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jswatchpoint.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jswatchpoint.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsweakmap.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsweakmap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsweakmap.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "perf/jsperf.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "perf/jsperf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "perf/jsperf.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src26.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src26.cpp -new file mode 100644 -index 0000000000..bac2403397 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src26.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "proxy/BaseProxyHandler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/BaseProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/BaseProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/CrossCompartmentWrapper.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/CrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/CrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/DeadObjectProxy.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/DeadObjectProxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/DeadObjectProxy.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/DirectProxyHandler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/DirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/DirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/OpaqueCrossCompartmentWrapper.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/OpaqueCrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/OpaqueCrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/Proxy.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/Proxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/Proxy.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src27.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src27.cpp -new file mode 100644 -index 0000000000..df8578f2c5 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src27.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "proxy/ScriptedDirectProxyHandler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/ScriptedDirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/ScriptedDirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/ScriptedIndirectProxyHandler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/ScriptedIndirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/ScriptedIndirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/SecurityWrapper.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/SecurityWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/SecurityWrapper.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/Wrapper.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/Wrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/Wrapper.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ArgumentsObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ArgumentsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ArgumentsObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ArrayBufferObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ArrayBufferObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ArrayBufferObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src28.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src28.cpp -new file mode 100644 -index 0000000000..e53e4a3893 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src28.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/CallNonGenericMethod.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/CallNonGenericMethod.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/CallNonGenericMethod.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/CharacterEncoding.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/CharacterEncoding.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/CharacterEncoding.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/CodeCoverage.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/CodeCoverage.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/CodeCoverage.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Compression.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Compression.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Compression.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/DateTime.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/DateTime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/DateTime.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Debugger.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Debugger.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Debugger.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src29.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src29.cpp -new file mode 100644 -index 0000000000..6273bb76f2 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src29.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/DebuggerMemory.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/DebuggerMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/DebuggerMemory.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ErrorObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ErrorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ErrorObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ForOfIterator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ForOfIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ForOfIterator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/GeneratorObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/GeneratorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/GeneratorObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/GlobalObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/GlobalObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/GlobalObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/HelperThreads.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/HelperThreads.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/HelperThreads.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src3.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src3.cpp -new file mode 100644 -index 0000000000..32bd1caa82 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src3.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "builtin/SymbolObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/SymbolObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/SymbolObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/TestingFunctions.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/TestingFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/TestingFunctions.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/TypedObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/TypedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/TypedObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/WeakMapObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/WeakMapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/WeakMapObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/WeakSetObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/WeakSetObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/WeakSetObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "devtools/sharkctl.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "devtools/sharkctl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "devtools/sharkctl.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src30.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src30.cpp -new file mode 100644 -index 0000000000..ecf387ffae ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src30.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/Id.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Id.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Id.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Interpreter.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Interpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Interpreter.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/JSONParser.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/JSONParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/JSONParser.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/MemoryMetrics.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/MemoryMetrics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/MemoryMetrics.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Monitor.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Monitor.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Monitor.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/NativeObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/NativeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/NativeObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src31.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src31.cpp -new file mode 100644 -index 0000000000..6e3bd65c07 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src31.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/ObjectGroup.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ObjectGroup.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ObjectGroup.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/PIC.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/PIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/PIC.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/PosixNSPR.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/PosixNSPR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/PosixNSPR.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Printer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Printer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Printer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Probes.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Probes.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Probes.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ProxyObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ProxyObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ProxyObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src32.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src32.cpp -new file mode 100644 -index 0000000000..05f8402e39 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src32.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/ReceiverGuard.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ReceiverGuard.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ReceiverGuard.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/RegExpObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/RegExpObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/RegExpObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/RegExpStatics.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/RegExpStatics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/RegExpStatics.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Runtime.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Runtime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Runtime.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/SPSProfiler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/SPSProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/SPSProfiler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/SavedStacks.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/SavedStacks.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/SavedStacks.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src33.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src33.cpp -new file mode 100644 -index 0000000000..a3a211d45e ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src33.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/ScopeObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ScopeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ScopeObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/SelfHosting.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/SelfHosting.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/SelfHosting.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Shape.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Shape.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Shape.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/SharedArrayObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/SharedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/SharedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Stack.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Stack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Stack.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Stopwatch.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Stopwatch.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Stopwatch.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src34.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src34.cpp -new file mode 100644 -index 0000000000..cd1eb2528d ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src34.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/String.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/String.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/String.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/StringBuffer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/StringBuffer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/StringBuffer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/StructuredClone.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/StructuredClone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/StructuredClone.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Symbol.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Symbol.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Symbol.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/TaggedProto.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/TaggedProto.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/TaggedProto.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Time.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Time.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Time.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src35.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src35.cpp -new file mode 100644 -index 0000000000..3e46e94426 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src35.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/TypeInference.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/TypeInference.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/TypeInference.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/TypedArrayObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/TypedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/TypedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/UbiNode.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/UbiNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/UbiNode.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/UbiNodeCensus.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/UbiNodeCensus.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/UbiNodeCensus.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/UnboxedObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/UnboxedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/UnboxedObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Unicode.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Unicode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Unicode.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src36.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src36.cpp -new file mode 100644 -index 0000000000..e976e6b399 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src36.cpp -@@ -0,0 +1,28 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/Value.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Value.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Value.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/WeakMapPtr.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/WeakMapPtr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/WeakMapPtr.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Xdr.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Xdr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Xdr.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src4.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src4.cpp -new file mode 100644 -index 0000000000..44163573c9 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src4.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "ds/LifoAlloc.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "ds/LifoAlloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "ds/LifoAlloc.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/BytecodeCompiler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/BytecodeCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/BytecodeCompiler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/BytecodeEmitter.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/BytecodeEmitter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/BytecodeEmitter.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/FoldConstants.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/FoldConstants.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/FoldConstants.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/NameFunctions.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/NameFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/NameFunctions.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/ParseMaps.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/ParseMaps.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/ParseMaps.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src5.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src5.cpp -new file mode 100644 -index 0000000000..4a056d0b55 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src5.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "frontend/ParseNode.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/ParseNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/ParseNode.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/TokenStream.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/TokenStream.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/TokenStream.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Allocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Allocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Allocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Barrier.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Barrier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Barrier.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/GCTrace.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/GCTrace.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/GCTrace.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Iteration.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Iteration.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Iteration.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src6.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src6.cpp -new file mode 100644 -index 0000000000..2c0af2b856 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src6.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "gc/Marking.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Marking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Marking.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Memory.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Memory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Memory.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/MemoryProfiler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/MemoryProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/MemoryProfiler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Nursery.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Nursery.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Nursery.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/RootMarking.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/RootMarking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/RootMarking.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Statistics.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Statistics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Statistics.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src7.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src7.cpp -new file mode 100644 -index 0000000000..edc5d0ddec ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src7.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "gc/Tracer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Tracer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Tracer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Verifier.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Verifier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Verifier.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Zone.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Zone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Zone.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/NativeRegExpMacroAssembler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/NativeRegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/NativeRegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpAST.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpAST.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpAST.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpEngine.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpEngine.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpEngine.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src8.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src8.cpp -new file mode 100644 -index 0000000000..4150698a38 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src8.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "irregexp/RegExpInterpreter.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpInterpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpInterpreter.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpMacroAssembler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpParser.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpParser.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpStack.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpStack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpStack.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/AliasAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/AliasAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/AliasAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/AlignmentMaskAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/AlignmentMaskAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/AlignmentMaskAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src9.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src9.cpp -new file mode 100644 -index 0000000000..a02b358e40 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src9.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/BacktrackingAllocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BacktrackingAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BacktrackingAllocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Bailouts.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Bailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Bailouts.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineBailouts.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineBailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineBailouts.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineCompiler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineCompiler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineDebugModeOSR.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineDebugModeOSR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineDebugModeOSR.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineFrame.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineFrame.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/js-confdefs.h b/src/third_party/mozjs-45/platform/i386/linux/build/js-confdefs.h -new file mode 100644 -index 0000000000..daa366e1b3 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/build/js-confdefs.h -@@ -0,0 +1,98 @@ -+/* List of defines generated by configure. Included with preprocessor flag, -+ * -include, to avoid long list of -D defines on the compile command-line. -+ * Do not edit. -+ */ -+ -+#ifndef js_confdefs_h -+#define js_confdefs_h -+ -+#define CPP_THROW_NEW throw() -+#define D_INO d_ino -+#define EDITLINE 1 -+#define HAVE_ACOSH 1 -+#define HAVE_ALLOCA_H 1 -+#define HAVE_ASINH 1 -+#define HAVE_ATANH 1 -+#define HAVE_CBRT 1 -+#define HAVE_CLOCK_MONOTONIC 1 -+#define HAVE_CPP_AMBIGUITY_RESOLVING_USING 1 -+#define HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR 1 -+#define HAVE_CPUID_H 1 -+#define HAVE_DIRENT_H 1 -+#define HAVE_DLOPEN 1 -+#define HAVE_ENDIAN_H 1 -+#define HAVE_EXPM1 1 -+#define HAVE_GETC_UNLOCKED 1 -+#define HAVE_GETOPT_H 1 -+#define HAVE_GMTIME_R 1 -+#define HAVE_GNU_LIBC_VERSION_H 1 -+#define HAVE_I18N_LC_MESSAGES 1 -+#define HAVE_LANGINFO_CODESET 1 -+#define HAVE_LIBM 1 -+#define HAVE_LINUX_QUOTA_H 1 -+#define HAVE_LOCALECONV 1 -+#define HAVE_LOCALECONV 1 -+#define HAVE_LOCALTIME_R 1 -+#define HAVE_LOG1P 1 -+#define HAVE_LOG2 1 -+#define HAVE_MALLOC_H 1 -+#define HAVE_MALLOC_H 1 -+#define HAVE_MALLOC_USABLE_SIZE 1 -+#define HAVE_MBRTOWC 1 -+#define HAVE_MEMALIGN 1 -+#define HAVE_MEMORY_H 1 -+#define HAVE_NL_TYPES_H 1 -+#define HAVE_POSIX_FADVISE 1 -+#define HAVE_POSIX_FALLOCATE 1 -+#define HAVE_POSIX_MEMALIGN 1 -+#define HAVE_RES_NINIT 1 -+#define HAVE_SETLOCALE 1 -+#define HAVE_SSIZE_T 1 -+#define HAVE_STRNDUP 1 -+#define HAVE_SYS_BITYPES_H 1 -+#define HAVE_SYS_CDEFS_H 1 -+#define HAVE_SYS_MOUNT_H 1 -+#define HAVE_SYS_QUOTA_H 1 -+#define HAVE_SYS_STATFS_H 1 -+#define HAVE_SYS_STATVFS_H 1 -+#define HAVE_SYS_VFS_H 1 -+#define HAVE_THREAD_TLS_KEYWORD 1 -+#define HAVE_TM_ZONE_TM_GMTOFF 1 -+#define HAVE_UNISTD_H 1 -+#define HAVE_VALLOC 1 -+#define HAVE_VA_COPY 1 -+#define HAVE_VISIBILITY_ATTRIBUTE 1 -+#define HAVE_VISIBILITY_HIDDEN_ATTRIBUTE 1 -+#define HAVE_WCRTOMB 1 -+#define HAVE___CXA_DEMANGLE 1 -+#define JS_CODEGEN_X86 1 -+#define JS_CPU_X86 1 -+#define JS_DEFAULT_JITREPORT_GRANULARITY 3 -+#define JS_HAVE_ENDIAN_H 1 -+#define JS_NUNBOX32 1 -+#define JS_POSIX_NSPR 1 -+#define JS_STANDALONE 1 -+#define MALLOC_H -+#define MALLOC_USABLE_SIZE_CONST_PTR -+#define MOZILLA_UAVERSION "45.0" -+#define MOZILLA_VERSION "45.8.0" -+#define MOZILLA_VERSION_U 45.8.0 -+#define MOZJS_MAJOR_VERSION 45 -+#define MOZJS_MINOR_VERSION 8 -+#define MOZ_DEBUG_SYMBOLS 1 -+#define MOZ_DLL_SUFFIX ".so" -+#define MOZ_GLUE_IN_PROGRAM 1 -+#define MOZ_MEMORY 1 -+#define MOZ_MEMORY_LINUX 1 -+#define MOZ_UPDATE_CHANNEL default -+#define NO_NSPR_10_SUPPORT 1 -+#define RELEASE_BUILD 1 -+#define STDC_HEADERS 1 -+#define VA_COPY va_copy -+#define XP_UNIX 1 -+#define X_DISPLAY_MISSING 1 -+#define _REENTRANT 1 -+ -+#include "js/RequiredDefines.h" -+ -+#endif /* js_confdefs_h */ -diff --git a/src/third_party/mozjs-45/platform/i386/linux/include/js-config.h b/src/third_party/mozjs-45/platform/i386/linux/include/js-config.h -new file mode 100644 -index 0000000000..a5645020e0 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/i386/linux/include/js-config.h -@@ -0,0 +1,59 @@ -+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- -+ * vim: set ts=8 sw=4 et tw=78: -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -+ -+#ifndef js_config_h -+#define js_config_h -+ -+/* Definitions set at build time that affect SpiderMonkey's public API. -+ This header file is generated by the SpiderMonkey configure script, -+ and installed along with jsapi.h. */ -+ -+/* Define to 1 if SpiderMonkey is in debug mode. */ -+/* #undef JS_DEBUG */ -+ -+/* Define to 1 if SpiderMonkey should not use struct types in debug builds. */ -+/* #undef JS_NO_JSVAL_JSID_STRUCT_TYPES */ -+ -+/* Define to 1 if SpiderMonkey should support multi-threaded clients. */ -+/* #undef JS_THREADSAFE */ -+ -+/* Define to 1 if SpiderMonkey should include ctypes support. */ -+/* #undef JS_HAS_CTYPES */ -+ -+/* Define to 1 if SpiderMonkey should support the ability to perform -+ entirely too much GC. */ -+/* #undef JS_GC_ZEAL */ -+ -+/* Define to 1 if SpiderMonkey should use small chunks. */ -+/* #undef JS_GC_SMALL_CHUNK_SIZE */ -+ -+/* Define to 1 to perform extra assertions and heap poisoning. */ -+/* #undef JS_CRASH_DIAGNOSTICS */ -+ -+/* Define to 1 if the header is present and -+ useable. See jscpucfg.h. */ -+#define JS_HAVE_ENDIAN_H 1 -+ -+/* Define to 1 if the header is present and -+ useable. See jscpucfg.h. */ -+/* #undef JS_HAVE_MACHINE_ENDIAN_H */ -+ -+/* Define to 1 if the header is present and -+ useable. See jscpucfg.h. */ -+/* #undef JS_HAVE_SYS_ISA_DEFS_H */ -+ -+/* Define to 1 if SpiderMonkey is in NUNBOX32 mode. */ -+#define JS_NUNBOX32 1 -+ -+/* Define to 1 if SpiderMonkey is in PUNBOX64 mode. */ -+/* #undef JS_PUNBOX64 */ -+ -+/* MOZILLA JSAPI version number components */ -+#define MOZJS_MAJOR_VERSION 45 -+#define MOZJS_MINOR_VERSION 8 -+ -+#endif /* js_config_h */ -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src0.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src0.cpp -new file mode 100644 -index 0000000000..3392352d8b ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src0.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "asmjs/AsmJSFrameIterator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSFrameIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSFrameIterator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/AsmJSLink.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSLink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSLink.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/AsmJSModule.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSModule.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSModule.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/AsmJSSignalHandlers.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSSignalHandlers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSSignalHandlers.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/AsmJSValidate.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/AsmJSValidate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/AsmJSValidate.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/WasmGenerator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/WasmGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/WasmGenerator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src1.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src1.cpp -new file mode 100644 -index 0000000000..a6b717f374 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src1.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "asmjs/WasmIonCompile.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/WasmIonCompile.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/WasmIonCompile.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "asmjs/WasmStubs.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "asmjs/WasmStubs.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "asmjs/WasmStubs.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/AtomicsObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/AtomicsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/AtomicsObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Eval.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Eval.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Eval.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Intl.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Intl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Intl.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/MapObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/MapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/MapObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src10.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src10.cpp -new file mode 100644 -index 0000000000..8790c5fa8e ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src10.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/BaselineFrameInfo.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineFrameInfo.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineFrameInfo.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineIC.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineIC.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineInspector.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineInspector.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineInspector.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineJIT.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineJIT.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineJIT.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BitSet.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BitSet.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BitSet.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BytecodeAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BytecodeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BytecodeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src11.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src11.cpp -new file mode 100644 -index 0000000000..39333e8bbd ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src11.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/C1Spewer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/C1Spewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/C1Spewer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/CodeGenerator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/CodeGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/CodeGenerator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/CompileWrappers.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/CompileWrappers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/CompileWrappers.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Disassembler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Disassembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Disassembler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/EagerSimdUnbox.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/EagerSimdUnbox.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/EagerSimdUnbox.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/EdgeCaseAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/EdgeCaseAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/EdgeCaseAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src12.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src12.cpp -new file mode 100644 -index 0000000000..c2ccff74ad ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src12.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/EffectiveAddressAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/EffectiveAddressAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/EffectiveAddressAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/ExecutableAllocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/ExecutableAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/ExecutableAllocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/InstructionReordering.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/InstructionReordering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/InstructionReordering.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Ion.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Ion.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Ion.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/IonAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/IonAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/IonAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/IonBuilder.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/IonBuilder.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/IonBuilder.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src13.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src13.cpp -new file mode 100644 -index 0000000000..61225a9350 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src13.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/IonCaches.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/IonCaches.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/IonCaches.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/IonOptimizationLevels.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/IonOptimizationLevels.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/IonOptimizationLevels.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/JSONSpewer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JSONSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JSONSpewer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/JitFrames.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JitFrames.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JitFrames.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/JitOptions.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JitOptions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JitOptions.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/JitSpewer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JitSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JitSpewer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src14.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src14.cpp -new file mode 100644 -index 0000000000..69f4d54cd5 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src14.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/JitcodeMap.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/JitcodeMap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/JitcodeMap.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/LICM.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/LICM.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/LICM.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/LIR.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/LIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/LIR.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/LoopUnroller.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/LoopUnroller.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/LoopUnroller.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Lowering.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Lowering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Lowering.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/MCallOptimize.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MCallOptimize.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MCallOptimize.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src15.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src15.cpp -new file mode 100644 -index 0000000000..544491554b ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src15.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/MIR.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MIR.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/MIRGraph.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MIRGraph.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MIRGraph.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/MacroAssembler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/MoveResolver.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/MoveResolver.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/MoveResolver.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/OptimizationTracking.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/OptimizationTracking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/OptimizationTracking.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/PerfSpewer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/PerfSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/PerfSpewer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src16.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src16.cpp -new file mode 100644 -index 0000000000..d8c2a53bb3 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src16.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/ProcessExecutableMemory.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/ProcessExecutableMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/ProcessExecutableMemory.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/RangeAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/RangeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/RangeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Recover.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Recover.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Recover.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/RegisterAllocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/RegisterAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/RegisterAllocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/RematerializedFrame.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/RematerializedFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/RematerializedFrame.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Safepoints.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Safepoints.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Safepoints.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src17.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src17.cpp -new file mode 100644 -index 0000000000..c0fda43387 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src17.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/ScalarReplacement.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/ScalarReplacement.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/ScalarReplacement.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/SharedIC.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/SharedIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/SharedIC.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Sink.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Sink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Sink.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Snapshots.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Snapshots.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Snapshots.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/StupidAllocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/StupidAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/StupidAllocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/TypePolicy.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/TypePolicy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/TypePolicy.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src18.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src18.cpp -new file mode 100644 -index 0000000000..8039f26024 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src18.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/TypedObjectPrediction.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/TypedObjectPrediction.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/TypedObjectPrediction.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/VMFunctions.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/VMFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/VMFunctions.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/ValueNumbering.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/ValueNumbering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/ValueNumbering.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/none/Trampoline-none.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/none/Trampoline-none.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/none/Trampoline-none.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/shared/BaselineCompiler-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/shared/BaselineCompiler-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/shared/BaselineCompiler-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/shared/CodeGenerator-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/shared/CodeGenerator-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/shared/CodeGenerator-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src19.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src19.cpp -new file mode 100644 -index 0000000000..c4d8192b3b ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src19.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/shared/Lowering-shared.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/shared/Lowering-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/shared/Lowering-shared.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsalloc.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsalloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsalloc.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsapi.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsapi.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsbool.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsbool.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsbool.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jscntxt.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jscntxt.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jscntxt.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jscompartment.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jscompartment.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jscompartment.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src2.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src2.cpp -new file mode 100644 -index 0000000000..f9ee5a1f37 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src2.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "builtin/ModuleObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/ModuleObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/ModuleObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Object.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Object.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Object.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Profilers.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Profilers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Profilers.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/Reflect.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/Reflect.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/Reflect.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/ReflectParse.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/ReflectParse.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/ReflectParse.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/SIMD.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/SIMD.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/SIMD.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src20.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src20.cpp -new file mode 100644 -index 0000000000..4014315c08 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src20.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jsdate.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsdate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsdate.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsdtoa.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsdtoa.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsdtoa.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsexn.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsexn.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsexn.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsfriendapi.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsfriendapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsfriendapi.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsfun.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsfun.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsfun.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsgc.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsgc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsgc.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src21.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src21.cpp -new file mode 100644 -index 0000000000..aba9fc0cb4 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src21.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jsiter.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsiter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsiter.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsnativestack.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsnativestack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsnativestack.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsnum.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsnum.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsnum.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsobj.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsobj.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsobj.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "json.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "json.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "json.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsopcode.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsopcode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsopcode.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src22.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src22.cpp -new file mode 100644 -index 0000000000..5a610ef6ac ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src22.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jsprf.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsprf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsprf.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jspropertytree.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jspropertytree.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jspropertytree.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsscript.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsscript.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsscript.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsstr.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsstr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsstr.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jswatchpoint.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jswatchpoint.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jswatchpoint.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jsweakmap.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jsweakmap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jsweakmap.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src23.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src23.cpp -new file mode 100644 -index 0000000000..357fb8b6a9 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src23.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "perf/jsperf.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "perf/jsperf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "perf/jsperf.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/BaseProxyHandler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/BaseProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/BaseProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/CrossCompartmentWrapper.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/CrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/CrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/DeadObjectProxy.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/DeadObjectProxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/DeadObjectProxy.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/DirectProxyHandler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/DirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/DirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/OpaqueCrossCompartmentWrapper.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/OpaqueCrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/OpaqueCrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src24.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src24.cpp -new file mode 100644 -index 0000000000..c9a4e53f85 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src24.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "proxy/Proxy.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/Proxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/Proxy.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/ScriptedDirectProxyHandler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/ScriptedDirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/ScriptedDirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/ScriptedIndirectProxyHandler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/ScriptedIndirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/ScriptedIndirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/SecurityWrapper.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/SecurityWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/SecurityWrapper.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "proxy/Wrapper.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "proxy/Wrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "proxy/Wrapper.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ArgumentsObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ArgumentsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ArgumentsObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src25.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src25.cpp -new file mode 100644 -index 0000000000..aa66b36fb1 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src25.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/ArrayBufferObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ArrayBufferObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ArrayBufferObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/CallNonGenericMethod.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/CallNonGenericMethod.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/CallNonGenericMethod.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/CharacterEncoding.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/CharacterEncoding.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/CharacterEncoding.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/CodeCoverage.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/CodeCoverage.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/CodeCoverage.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Compression.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Compression.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Compression.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/DateTime.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/DateTime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/DateTime.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src26.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src26.cpp -new file mode 100644 -index 0000000000..3d98b61795 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src26.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/Debugger.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Debugger.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Debugger.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/DebuggerMemory.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/DebuggerMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/DebuggerMemory.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ErrorObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ErrorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ErrorObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ForOfIterator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ForOfIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ForOfIterator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/GeneratorObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/GeneratorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/GeneratorObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/GlobalObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/GlobalObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/GlobalObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src27.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src27.cpp -new file mode 100644 -index 0000000000..86af1e7327 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src27.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/HelperThreads.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/HelperThreads.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/HelperThreads.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Id.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Id.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Id.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Interpreter.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Interpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Interpreter.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/JSONParser.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/JSONParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/JSONParser.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/MemoryMetrics.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/MemoryMetrics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/MemoryMetrics.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Monitor.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Monitor.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Monitor.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src28.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src28.cpp -new file mode 100644 -index 0000000000..9e43dfb736 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src28.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/NativeObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/NativeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/NativeObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ObjectGroup.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ObjectGroup.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ObjectGroup.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/PIC.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/PIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/PIC.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/PosixNSPR.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/PosixNSPR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/PosixNSPR.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Printer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Printer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Printer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Probes.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Probes.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Probes.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src29.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src29.cpp -new file mode 100644 -index 0000000000..e4ac196768 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src29.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/ProxyObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ProxyObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ProxyObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ReceiverGuard.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ReceiverGuard.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ReceiverGuard.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/RegExpObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/RegExpObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/RegExpObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/RegExpStatics.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/RegExpStatics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/RegExpStatics.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Runtime.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Runtime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Runtime.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/SPSProfiler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/SPSProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/SPSProfiler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src3.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src3.cpp -new file mode 100644 -index 0000000000..32bd1caa82 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src3.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "builtin/SymbolObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/SymbolObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/SymbolObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/TestingFunctions.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/TestingFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/TestingFunctions.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/TypedObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/TypedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/TypedObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/WeakMapObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/WeakMapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/WeakMapObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "builtin/WeakSetObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "builtin/WeakSetObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "builtin/WeakSetObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "devtools/sharkctl.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "devtools/sharkctl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "devtools/sharkctl.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src30.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src30.cpp -new file mode 100644 -index 0000000000..a702a115ae ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src30.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/SavedStacks.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/SavedStacks.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/SavedStacks.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/ScopeObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/ScopeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/ScopeObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/SelfHosting.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/SelfHosting.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/SelfHosting.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Shape.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Shape.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Shape.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/SharedArrayObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/SharedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/SharedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Stack.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Stack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Stack.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src31.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src31.cpp -new file mode 100644 -index 0000000000..b106a07280 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src31.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/Stopwatch.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Stopwatch.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Stopwatch.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/String.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/String.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/String.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/StringBuffer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/StringBuffer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/StringBuffer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/StructuredClone.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/StructuredClone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/StructuredClone.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Symbol.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Symbol.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Symbol.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/TaggedProto.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/TaggedProto.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/TaggedProto.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src32.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src32.cpp -new file mode 100644 -index 0000000000..e66ddb3e8a ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src32.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/Time.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Time.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Time.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/TypeInference.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/TypeInference.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/TypeInference.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/TypedArrayObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/TypedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/TypedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/UbiNode.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/UbiNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/UbiNode.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/UbiNodeCensus.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/UbiNodeCensus.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/UbiNodeCensus.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/UnboxedObject.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/UnboxedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/UnboxedObject.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src33.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src33.cpp -new file mode 100644 -index 0000000000..bcf3f00370 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src33.cpp -@@ -0,0 +1,37 @@ -+#define MOZ_UNIFIED_BUILD -+#include "vm/Unicode.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Unicode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Unicode.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Value.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Value.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Value.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/WeakMapPtr.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/WeakMapPtr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/WeakMapPtr.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "vm/Xdr.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "vm/Xdr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "vm/Xdr.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src4.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src4.cpp -new file mode 100644 -index 0000000000..44163573c9 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src4.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "ds/LifoAlloc.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "ds/LifoAlloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "ds/LifoAlloc.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/BytecodeCompiler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/BytecodeCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/BytecodeCompiler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/BytecodeEmitter.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/BytecodeEmitter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/BytecodeEmitter.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/FoldConstants.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/FoldConstants.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/FoldConstants.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/NameFunctions.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/NameFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/NameFunctions.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/ParseMaps.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/ParseMaps.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/ParseMaps.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src5.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src5.cpp -new file mode 100644 -index 0000000000..4a056d0b55 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src5.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "frontend/ParseNode.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/ParseNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/ParseNode.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "frontend/TokenStream.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "frontend/TokenStream.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "frontend/TokenStream.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Allocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Allocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Allocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Barrier.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Barrier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Barrier.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/GCTrace.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/GCTrace.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/GCTrace.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Iteration.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Iteration.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Iteration.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src6.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src6.cpp -new file mode 100644 -index 0000000000..2c0af2b856 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src6.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "gc/Marking.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Marking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Marking.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Memory.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Memory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Memory.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/MemoryProfiler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/MemoryProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/MemoryProfiler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Nursery.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Nursery.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Nursery.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/RootMarking.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/RootMarking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/RootMarking.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Statistics.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Statistics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Statistics.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src7.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src7.cpp -new file mode 100644 -index 0000000000..edc5d0ddec ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src7.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "gc/Tracer.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Tracer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Tracer.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Verifier.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Verifier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Verifier.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "gc/Zone.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "gc/Zone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "gc/Zone.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/NativeRegExpMacroAssembler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/NativeRegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/NativeRegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpAST.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpAST.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpAST.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpEngine.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpEngine.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpEngine.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src8.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src8.cpp -new file mode 100644 -index 0000000000..4150698a38 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src8.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "irregexp/RegExpInterpreter.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpInterpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpInterpreter.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpMacroAssembler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpParser.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpParser.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "irregexp/RegExpStack.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "irregexp/RegExpStack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "irregexp/RegExpStack.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/AliasAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/AliasAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/AliasAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/AlignmentMaskAnalysis.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/AlignmentMaskAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/AlignmentMaskAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src9.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src9.cpp -new file mode 100644 -index 0000000000..a02b358e40 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src9.cpp -@@ -0,0 +1,55 @@ -+#define MOZ_UNIFIED_BUILD -+#include "jit/BacktrackingAllocator.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BacktrackingAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BacktrackingAllocator.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/Bailouts.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/Bailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/Bailouts.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineBailouts.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineBailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineBailouts.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineCompiler.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineCompiler.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineDebugModeOSR.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineDebugModeOSR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineDebugModeOSR.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -+#include "jit/BaselineFrame.cpp" -+#ifdef PL_ARENA_CONST_ALIGN_MASK -+#error "jit/BaselineFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." -+#undef PL_ARENA_CONST_ALIGN_MASK -+#endif -+#ifdef INITGUID -+#error "jit/BaselineFrame.cpp defines INITGUID, so it cannot be built in unified mode." -+#undef INITGUID -+#endif -\ No newline at end of file -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/js-confdefs.h b/src/third_party/mozjs-45/platform/ppc64/linux/build/js-confdefs.h -new file mode 100644 -index 0000000000..2b1a51d09f ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/js-confdefs.h -@@ -0,0 +1,97 @@ -+/* List of defines generated by configure. Included with preprocessor flag, -+ * -include, to avoid long list of -D defines on the compile command-line. -+ * Do not edit. -+ */ -+ -+#ifndef js_confdefs_h -+#define js_confdefs_h -+ -+#define CPP_THROW_NEW throw() -+#define D_INO d_ino -+#define EDITLINE 1 -+#define HAVE_64BIT_BUILD 1 -+#define HAVE_ACOSH 1 -+#define HAVE_ALLOCA_H 1 -+#define HAVE_ASINH 1 -+#define HAVE_ATANH 1 -+#define HAVE_CBRT 1 -+#define HAVE_CLOCK_MONOTONIC 1 -+#define HAVE_CPP_AMBIGUITY_RESOLVING_USING 1 -+#define HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR 1 -+#define HAVE_DIRENT_H 1 -+#define HAVE_DLOPEN 1 -+#define HAVE_ENDIAN_H 1 -+#define HAVE_EXPM1 1 -+#define HAVE_GETC_UNLOCKED 1 -+#define HAVE_GETOPT_H 1 -+#define HAVE_GMTIME_R 1 -+#define HAVE_GNU_LIBC_VERSION_H 1 -+#define HAVE_I18N_LC_MESSAGES 1 -+#define HAVE_LANGINFO_CODESET 1 -+#define HAVE_LIBM 1 -+#define HAVE_LINUX_QUOTA_H 1 -+#define HAVE_LOCALECONV 1 -+#define HAVE_LOCALECONV 1 -+#define HAVE_LOCALTIME_R 1 -+#define HAVE_LOG1P 1 -+#define HAVE_LOG2 1 -+#define HAVE_MALLOC_H 1 -+#define HAVE_MALLOC_H 1 -+#define HAVE_MALLOC_USABLE_SIZE 1 -+#define HAVE_MBRTOWC 1 -+#define HAVE_MEMALIGN 1 -+#define HAVE_MEMORY_H 1 -+#define HAVE_NL_TYPES_H 1 -+#define HAVE_POSIX_FADVISE 1 -+#define HAVE_POSIX_FALLOCATE 1 -+#define HAVE_POSIX_MEMALIGN 1 -+#define HAVE_RES_NINIT 1 -+#define HAVE_SETLOCALE 1 -+#define HAVE_SSIZE_T 1 -+#define HAVE_STRNDUP 1 -+#define HAVE_SYS_BITYPES_H 1 -+#define HAVE_SYS_CDEFS_H 1 -+#define HAVE_SYS_MOUNT_H 1 -+#define HAVE_SYS_QUOTA_H 1 -+#define HAVE_SYS_STATFS_H 1 -+#define HAVE_SYS_STATVFS_H 1 -+#define HAVE_SYS_VFS_H 1 -+#define HAVE_THREAD_TLS_KEYWORD 1 -+#define HAVE_TM_ZONE_TM_GMTOFF 1 -+#define HAVE_UNISTD_H 1 -+#define HAVE_VALLOC 1 -+#define HAVE_VA_COPY 1 -+#define HAVE_VISIBILITY_ATTRIBUTE 1 -+#define HAVE_VISIBILITY_HIDDEN_ATTRIBUTE 1 -+#define HAVE_WCRTOMB 1 -+#define HAVE___CXA_DEMANGLE 1 -+#define JS_CODEGEN_NONE 1 -+#define JS_DEFAULT_JITREPORT_GRANULARITY 3 -+#define JS_HAVE_ENDIAN_H 1 -+#define JS_POSIX_NSPR 1 -+#define JS_PUNBOX64 1 -+#define JS_STANDALONE 1 -+#define MALLOC_H -+#define MALLOC_USABLE_SIZE_CONST_PTR -+#define MOZILLA_UAVERSION "45.0" -+#define MOZILLA_VERSION "45.8.0" -+#define MOZILLA_VERSION_U 45.8.0 -+#define MOZJS_MAJOR_VERSION 45 -+#define MOZJS_MINOR_VERSION 8 -+#define MOZ_DEBUG_SYMBOLS 1 -+#define MOZ_DLL_SUFFIX ".so" -+#define MOZ_GLUE_IN_PROGRAM 1 -+#define MOZ_MEMORY 1 -+#define MOZ_MEMORY_LINUX 1 -+#define MOZ_UPDATE_CHANNEL default -+#define NO_NSPR_10_SUPPORT 1 -+#define RELEASE_BUILD 1 -+#define STDC_HEADERS 1 -+#define VA_COPY va_copy -+#define XP_UNIX 1 -+#define X_DISPLAY_MISSING 1 -+#define _REENTRANT 1 -+ -+#include "js/RequiredDefines.h" -+ -+#endif /* js_confdefs_h */ -diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/include/js-config.h b/src/third_party/mozjs-45/platform/ppc64/linux/include/js-config.h -new file mode 100644 -index 0000000000..e4dcddbe68 ---- /dev/null -+++ b/src/third_party/mozjs-45/platform/ppc64/linux/include/js-config.h -@@ -0,0 +1,59 @@ -+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- -+ * vim: set ts=8 sw=4 et tw=78: -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -+ -+#ifndef js_config_h -+#define js_config_h -+ -+/* Definitions set at build time that affect SpiderMonkey's public API. -+ This header file is generated by the SpiderMonkey configure script, -+ and installed along with jsapi.h. */ -+ -+/* Define to 1 if SpiderMonkey is in debug mode. */ -+/* #undef JS_DEBUG */ -+ -+/* Define to 1 if SpiderMonkey should not use struct types in debug builds. */ -+/* #undef JS_NO_JSVAL_JSID_STRUCT_TYPES */ -+ -+/* Define to 1 if SpiderMonkey should support multi-threaded clients. */ -+/* #undef JS_THREADSAFE */ -+ -+/* Define to 1 if SpiderMonkey should include ctypes support. */ -+/* #undef JS_HAS_CTYPES */ -+ -+/* Define to 1 if SpiderMonkey should support the ability to perform -+ entirely too much GC. */ -+/* #undef JS_GC_ZEAL */ -+ -+/* Define to 1 if SpiderMonkey should use small chunks. */ -+/* #undef JS_GC_SMALL_CHUNK_SIZE */ -+ -+/* Define to 1 to perform extra assertions and heap poisoning. */ -+/* #undef JS_CRASH_DIAGNOSTICS */ -+ -+/* Define to 1 if the header is present and -+ useable. See jscpucfg.h. */ -+#define JS_HAVE_ENDIAN_H 1 -+ -+/* Define to 1 if the header is present and -+ useable. See jscpucfg.h. */ -+/* #undef JS_HAVE_MACHINE_ENDIAN_H */ -+ -+/* Define to 1 if the header is present and -+ useable. See jscpucfg.h. */ -+/* #undef JS_HAVE_SYS_ISA_DEFS_H */ -+ -+/* Define to 1 if SpiderMonkey is in NUNBOX32 mode. */ -+/* #undef JS_NUNBOX32 */ -+ -+/* Define to 1 if SpiderMonkey is in PUNBOX64 mode. */ -+#define JS_PUNBOX64 1 -+ -+/* MOZILLA JSAPI version number components */ -+#define MOZJS_MAJOR_VERSION 45 -+#define MOZJS_MINOR_VERSION 8 -+ -+#endif /* js_config_h */ diff --git a/ppc64.patch b/ppc64.patch deleted file mode 100644 index 663bcc4..0000000 --- a/ppc64.patch +++ /dev/null @@ -1,76 +0,0 @@ -diff --git a/SConstruct b/SConstruct -index fe7975b..88d6650 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -980,6 +980,7 @@ processor_macros = { - 'arm' : { 'endian': 'little', 'defines': ('__arm__',) }, - 'aarch64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')}, - 'i386' : { 'endian': 'little', 'defines': ('__i386', '_M_IX86')}, -+ 'ppc64' : { 'endian': 'big', 'defines': ('__powerpc64__) && defined(__BIG_ENDIAN__',)}, - 'ppc64le' : { 'endian': 'little', 'defines': ('__powerpc64__',)}, - 's390x' : { 'endian': 'big', 'defines': ('__s390x__',)}, - 'sparc' : { 'endian': 'big', 'defines': ('__sparc',)}, -diff --git a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/float128/architecture.h b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/float128/architecture.h -index 355d70e..afefe7b 100755 ---- a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/float128/architecture.h -+++ b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/float128/architecture.h -@@ -570,7 +570,7 @@ - # endif - - --#elif (defined(__s390x__)) -+#elif (defined(__s390x__)) || (defined(__powerpc64__) && defined(__BIG_ENDIAN__)) - - # undef vax - # undef mips -diff --git a/src/third_party/IntelRDFPMathLib20U1/SConscript b/src/third_party/IntelRDFPMathLib20U1/SConscript -index 20287a6..a495e9c 100644 ---- a/src/third_party/IntelRDFPMathLib20U1/SConscript -+++ b/src/third_party/IntelRDFPMathLib20U1/SConscript -@@ -313,6 +313,9 @@ elif processor == 'x86_64' or processor == 'ppc64le': - cpp_defines['efi2'] = '1' - cpp_defines['EFI2'] = '1' - # Using 64 bit big endian -+elif processor == 'ppc64': -+ cpp_defines['ppc64'] = '1' -+ cpp_defines['BID_BIG_ENDIAN'] = '1' - elif processor == 's390x': - cpp_defines['s390x'] = '1' - cpp_defines['BID_BIG_ENDIAN'] = '1' -diff --git a/src/third_party/timelib-2017.05/parse_tz.c b/src/third_party/timelib-2017.05/parse_tz.c -index 3b68549..6460475 100644 ---- a/src/third_party/timelib-2017.05/parse_tz.c -+++ b/src/third_party/timelib-2017.05/parse_tz.c -@@ -38,7 +38,7 @@ - # endif - #endif - --#if defined(__s390__) -+#if defined(__s390__) || defined(__powerpc64__) - # if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ - # define WORDS_BIGENDIAN - # else -diff --git a/src/third_party/wiredtiger/SConscript b/src/third_party/wiredtiger/SConscript -index 1e07852..8a671b6 100644 ---- a/src/third_party/wiredtiger/SConscript -+++ b/src/third_party/wiredtiger/SConscript -@@ -135,7 +135,7 @@ condition_map = { - 'WINDOWS_HOST' : env.TargetOSIs('windows'), - - 'ARM64_HOST' : env['TARGET_ARCH'] == 'aarch64', -- 'POWERPC_HOST' : env['TARGET_ARCH'] == 'ppc64le', -+ 'POWERPC_HOST' : env['TARGET_ARCH'] == 'ppc64le' or env['TARGET_ARCH'] == 'ppc64', - 'X86_HOST' : env['TARGET_ARCH'] == 'x86_64', - 'ZSERIES_HOST' : env['TARGET_ARCH'] == 's390x', - } -@@ -167,6 +167,10 @@ if useSnappy: - if not (env['TARGET_ARCH'] == 's390x' and get_option("use-s390x-crc32") == "off"): - env.Append(CPPDEFINES=["HAVE_CRC32_HARDWARE"]) - -+# It is not possible to pass ASFLAGS through variables to scons now -+if env['TARGET_ARCH'] == 'ppc64': -+ env.Append(ASFLAGS=["-mcpu=power8"]) -+ - wtlib = env.Library( - target="wiredtiger", - source=wtsources, diff --git a/ppc64le-fix-altivec.patch b/ppc64le-fix-altivec.patch deleted file mode 100644 index 314ef45..0000000 --- a/ppc64le-fix-altivec.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/SConstruct b/SConstruct -index 4d52f24b85..06ce2bf6f4 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -3116,7 +3116,7 @@ def doConfigure(myenv): - - outputIndex = next((idx for idx in [0,1] if conf.CheckAltivecVbpermqOutput(idx)), None) - if outputIndex is not None: -- conf.env.SetConfigHeaderDefine("MONGO_CONFIG_ALTIVEC_VEC_VBPERMQ_OUTPUT_INDEX", outputIndex) -+ conf.env.SetConfigHeaderDefine("MONGO_CONFIG_ALTIVEC_VEC_VBPERMQ_OUTPUT_INDEX", outputIndex) - else: - myenv.ConfError("Running on ppc64le, but can't find a correct vec_vbpermq output index. Compiler or platform not supported") - diff --git a/python3-buildscripts-tests.patch b/python3-buildscripts-tests.patch deleted file mode 100644 index 0e33963..0000000 --- a/python3-buildscripts-tests.patch +++ /dev/null @@ -1,1798 +0,0 @@ -diff --git a/SConstruct b/SConstruct -index 4d52f24b85..b2d85d6acf 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -388,7 +388,7 @@ win_version_min_choices = { - } - - add_option('win-version-min', -- choices=win_version_min_choices.keys(), -+ choices=list(win_version_min_choices.keys()), - default=None, - help='minimum Windows version to support', - type='choice', -@@ -497,7 +497,7 @@ except ValueError as e: - def variable_shlex_converter(val): - # If the argument is something other than a string, propogate - # it literally. -- if not isinstance(val, basestring): -+ if not isinstance(val, str): - return val - parse_mode = get_option('variable-parse-mode') - if parse_mode == 'auto': -@@ -826,7 +826,7 @@ SConsignFile(str(sconsDataDir.File('sconsign'))) - def printLocalInfo(): - import sys, SCons - print( "scons version: " + SCons.__version__ ) -- print( "python version: " + " ".join( [ `i` for i in sys.version_info ] ) ) -+ print( "python version: " + " ".join( [ str(i) for i in sys.version_info ] ) ) - - printLocalInfo() - -@@ -1938,7 +1938,7 @@ def doConfigure(myenv): - # to make them real errors. - cloned.Append(CCFLAGS=['-Werror']) - conf = Configure(cloned, help=False, custom_tests = { -- 'CheckFlag' : lambda(ctx) : CheckFlagTest(ctx, tool, extension, flag) -+ 'CheckFlag' : lambda ctx : CheckFlagTest(ctx, tool, extension, flag) - }) - available = conf.CheckFlag() - conf.Finish() -@@ -2410,7 +2410,7 @@ def doConfigure(myenv): - "undefined" : myenv.File("#etc/ubsan.blacklist"), - } - -- blackfiles = set([v for (k, v) in blackfiles_map.iteritems() if k in sanitizer_list]) -+ blackfiles = set([v for (k, v) in blackfiles_map.items() if k in sanitizer_list]) - blacklist_options=["-fsanitize-blacklist=%s" % blackfile - for blackfile in blackfiles - if os.stat(blackfile.path).st_size != 0] -diff --git a/buildscripts/clang_format.py b/buildscripts/clang_format.py -index cf9884d8b1..c0f4140e59 100755 ---- a/buildscripts/clang_format.py -+++ b/buildscripts/clang_format.py -@@ -20,7 +20,7 @@ import sys - import tarfile - import tempfile - import threading --import urllib2 -+import urllib.request, urllib.error, urllib.parse - from distutils import spawn - from optparse import OptionParser - from multiprocessing import cpu_count -@@ -96,11 +96,11 @@ def get_clang_format_from_cache_and_extract(url, tarball_ext): - num_tries = 5 - for attempt in range(num_tries): - try: -- resp = urllib2.urlopen(url) -+ resp = urllib.request.urlopen(url) - with open(temp_tar_file, 'wb') as f: - f.write(resp.read()) - break -- except urllib2.URLError: -+ except urllib.error.URLError: - if attempt == num_tries - 1: - raise - continue -@@ -436,7 +436,7 @@ def reformat_branch(clang_format, commit_prior_to_reformat, commit_after_reforma - - # Check if anything needed reformatting, and if so amend the commit - if not repo.is_working_tree_dirty(): -- print ("Commit %s needed no reformatting" % commit_hash) -+ print("Commit %s needed no reformatting" % commit_hash) - else: - repo.commit(["--all", "--amend", "--no-edit"]) - -diff --git a/buildscripts/cpplint.py b/buildscripts/cpplint.py -index 6979cbcd4e..bc9ff038fd 100755 ---- a/buildscripts/cpplint.py -+++ b/buildscripts/cpplint.py -@@ -835,7 +835,7 @@ class _CppLintState(object): - - def PrintErrorCounts(self): - """Print a summary of errors by category, and the total.""" -- for category, count in self.errors_by_category.iteritems(): -+ for category, count in self.errors_by_category.items(): - sys.stderr.write('Category \'%s\' errors found: %d\n' % - (category, count)) - sys.stderr.write('Total errors found: %d\n' % self.error_count) -@@ -1388,7 +1388,7 @@ def FindEndOfExpressionInLine(line, startpos, stack): - On finding an unclosed expression: (-1, None) - Otherwise: (-1, new stack at end of this line) - """ -- for i in xrange(startpos, len(line)): -+ for i in range(startpos, len(line)): - char = line[i] - if char in '([{': - # Found start of parenthesized expression, push to expression stack -@@ -1681,7 +1681,7 @@ def CheckForCopyright(filename, lines, error): - - # We'll say it should occur by line 10. Don't forget there's a - # dummy line at the front. -- for line in xrange(1, min(len(lines), 11)): -+ for line in range(1, min(len(lines), 11)): - if re.search(r'Copyright', lines[line], re.I): break - else: # means no copyright line was found - error(filename, 0, 'legal/copyright', 5, -@@ -1832,7 +1832,7 @@ def CheckForBadCharacters(filename, lines, error): - error: The function to call with any errors found. - """ - for linenum, line in enumerate(lines): -- if u'\ufffd' in line: -+ if '\ufffd' in line: - error(filename, linenum, 'readability/utf8', 5, - 'Line contains invalid UTF-8 (or Unicode replacement character).') - if '\0' in line: -@@ -2878,7 +2878,7 @@ def CheckForFunctionLengths(filename, clean_lines, linenum, - - if starting_func: - body_found = False -- for start_linenum in xrange(linenum, clean_lines.NumLines()): -+ for start_linenum in range(linenum, clean_lines.NumLines()): - start_line = lines[start_linenum] - joined_line += ' ' + start_line.lstrip() - if Search(r'(;|})', start_line): # Declarations and trivial functions -@@ -3355,7 +3355,7 @@ def CheckBracesSpacing(filename, clean_lines, linenum, error): - trailing_text = '' - if endpos > -1: - trailing_text = endline[endpos:] -- for offset in xrange(endlinenum + 1, -+ for offset in range(endlinenum + 1, - min(endlinenum + 3, clean_lines.NumLines() - 1)): - trailing_text += clean_lines.elided[offset] - if not Match(r'^[\s}]*[{.;,)<>\]:]', trailing_text): -@@ -3524,7 +3524,7 @@ def IsRValueType(clean_lines, nesting_state, linenum, column): - - # Look for the previous 'for(' in the previous lines. - before_text = match_symbol.group(1) -- for i in xrange(start - 1, max(start - 6, 0), -1): -+ for i in range(start - 1, max(start - 6, 0), -1): - before_text = clean_lines.elided[i] + before_text - if Search(r'for\s*\([^{};]*$', before_text): - # This is the condition inside a for-loop -@@ -3651,12 +3651,12 @@ def IsRValueAllowed(clean_lines, linenum): - True if line is within the region where RValue references are allowed. - """ - # Allow region marked by PUSH/POP macros -- for i in xrange(linenum, 0, -1): -+ for i in range(linenum, 0, -1): - line = clean_lines.elided[i] - if Match(r'GOOGLE_ALLOW_RVALUE_REFERENCES_(?:PUSH|POP)', line): - if not line.endswith('PUSH'): - return False -- for j in xrange(linenum, clean_lines.NumLines(), 1): -+ for j in range(linenum, clean_lines.NumLines(), 1): - line = clean_lines.elided[j] - if Match(r'GOOGLE_ALLOW_RVALUE_REFERENCES_(?:PUSH|POP)', line): - return line.endswith('POP') -@@ -4136,7 +4136,7 @@ def CheckCheck(filename, clean_lines, linenum, error): - expression = lines[linenum][start_pos + 1:end_pos - 1] - else: - expression = lines[linenum][start_pos + 1:] -- for i in xrange(linenum + 1, end_line): -+ for i in range(linenum + 1, end_line): - expression += lines[i] - expression += last_line[0:end_pos - 1] - -@@ -4264,7 +4264,7 @@ def GetLineWidth(line): - The width of the line in column positions, accounting for Unicode - combining characters and wide characters. - """ -- if isinstance(line, unicode): -+ if isinstance(line, str): - width = 0 - for uc in unicodedata.normalize('NFC', line): - if unicodedata.east_asian_width(uc) in ('W', 'F'): -@@ -4617,7 +4617,7 @@ def _GetTextInside(text, start_pattern): - - # Give opening punctuations to get the matching close-punctuations. - matching_punctuation = {'(': ')', '{': '}', '[': ']'} -- closing_punctuation = set(matching_punctuation.itervalues()) -+ closing_punctuation = set(matching_punctuation.values()) - - # Find the position to start extracting text. - match = re.search(start_pattern, text, re.M) -@@ -4943,7 +4943,7 @@ def IsDerivedFunction(clean_lines, linenum): - virt-specifier. - """ - # Scan back a few lines for start of current function -- for i in xrange(linenum, max(-1, linenum - 10), -1): -+ for i in range(linenum, max(-1, linenum - 10), -1): - match = Match(r'^([^()]*\w+)\(', clean_lines.elided[i]) - if match: - # Look for "override" after the matching closing parenthesis -@@ -4964,7 +4964,7 @@ def IsInitializerList(clean_lines, linenum): - True if current line appears to be inside constructor initializer - list, False otherwise. - """ -- for i in xrange(linenum, 1, -1): -+ for i in range(linenum, 1, -1): - line = clean_lines.elided[i] - if i == linenum: - remove_function_body = Match(r'^(.*)\{\s*$', line) -@@ -5060,7 +5060,7 @@ def CheckForNonConstReference(filename, clean_lines, linenum, - # Found the matching < on an earlier line, collect all - # pieces up to current line. - line = '' -- for i in xrange(startline, linenum + 1): -+ for i in range(startline, linenum + 1): - line += clean_lines.elided[i].strip() - - # Check for non-const references in function parameters. A single '&' may -@@ -5084,7 +5084,7 @@ def CheckForNonConstReference(filename, clean_lines, linenum, - # appear inside the second set of parentheses on the current line as - # opposed to the first set. - if linenum > 0: -- for i in xrange(linenum - 1, max(0, linenum - 10), -1): -+ for i in range(linenum - 1, max(0, linenum - 10), -1): - previous_line = clean_lines.elided[i] - if not Search(r'[),]\s*$', previous_line): - break -@@ -5115,7 +5115,7 @@ def CheckForNonConstReference(filename, clean_lines, linenum, - # Don't see a whitelisted function on this line. Actually we - # didn't see any function name on this line, so this is likely a - # multi-line parameter list. Try a bit harder to catch this case. -- for i in xrange(2): -+ for i in range(2): - if (linenum > i and - Search(whitelisted_functions, clean_lines.elided[linenum - i - 1])): - return -@@ -5277,7 +5277,7 @@ def CheckCStyleCast(filename, clean_lines, linenum, cast_type, pattern, error): - # Try expanding current context to see if we one level of - # parentheses inside a macro. - if linenum > 0: -- for i in xrange(linenum - 1, max(0, linenum - 5), -1): -+ for i in range(linenum - 1, max(0, linenum - 5), -1): - context = clean_lines.elided[i] + context - if Match(r'.*\b[_A-Z][_A-Z0-9]*\s*\((?:\([^()]*\)|[^()])*$', context): - return False -@@ -5534,7 +5534,7 @@ def CheckForIncludeWhatYouUse(filename, clean_lines, include_state, error, - required = {} # A map of header name to linenumber and the template entity. - # Example of required: { '': (1219, 'less<>') } - -- for linenum in xrange(clean_lines.NumLines()): -+ for linenum in range(clean_lines.NumLines()): - line = clean_lines.elided[linenum] - if not line or line[0] == '#': - continue -@@ -5583,7 +5583,7 @@ def CheckForIncludeWhatYouUse(filename, clean_lines, include_state, error, - - # include_dict is modified during iteration, so we iterate over a copy of - # the keys. -- header_keys = include_dict.keys() -+ header_keys = list(include_dict.keys()) - for header in header_keys: - (same_module, common_path) = FilesBelongToSameModule(abs_filename, header) - fullpath = common_path + header -@@ -5678,7 +5678,7 @@ def CheckRedundantVirtual(filename, clean_lines, linenum, error): - end_col = -1 - end_line = -1 - start_col = len(virtual.group(1)) -- for start_line in xrange(linenum, min(linenum + 3, clean_lines.NumLines())): -+ for start_line in range(linenum, min(linenum + 3, clean_lines.NumLines())): - line = clean_lines.elided[start_line][start_col:] - parameter_list = Match(r'^([^(]*)\(', line) - if parameter_list: -@@ -5693,7 +5693,7 @@ def CheckRedundantVirtual(filename, clean_lines, linenum, error): - - # Look for "override" or "final" after the parameter list - # (possibly on the next few lines). -- for i in xrange(end_line, min(end_line + 3, clean_lines.NumLines())): -+ for i in range(end_line, min(end_line + 3, clean_lines.NumLines())): - line = clean_lines.elided[i][end_col:] - match = Search(r'\b(override|final)\b', line) - if match: -@@ -5920,7 +5920,7 @@ def ProcessFileData(filename, file_extension, lines, error, - - RemoveMultiLineComments(filename, lines, error) - clean_lines = CleansedLines(lines) -- for line in xrange(clean_lines.NumLines()): -+ for line in range(clean_lines.NumLines()): - ProcessLine(filename, file_extension, clean_lines, line, - include_state, function_state, nesting_state, error, - extra_check_functions) -diff --git a/buildscripts/errorcodes.py b/buildscripts/errorcodes.py -index cc46789907..7351e6a12e 100755 ---- a/buildscripts/errorcodes.py -+++ b/buildscripts/errorcodes.py -@@ -5,13 +5,16 @@ - Parses .cpp files for assertions and verifies assertion codes are distinct. - Optionally replaces zero codes in source code with new distinct values. - """ -+from __future__ import unicode_literals -+import io - - import bisect - import os - import sys --import utils -+from . import utils - from collections import defaultdict, namedtuple - from optparse import OptionParser -+from functools import reduce - - try: - import regex as re -@@ -66,9 +69,9 @@ def parseSourceFiles( callback ): - - for sourceFile in utils.getAllSourceFiles(prefix='src/mongo/'): - if list_files: -- print 'scanning file: ' + sourceFile -+ print('scanning file: ' + sourceFile) - -- with open(sourceFile) as f: -+ with io.open(sourceFile, encoding="utf-8") as f: - text = f.read() - - if not any([zz in text for zz in quick]): -@@ -159,7 +162,7 @@ def readErrorCodes(): - - parseSourceFiles( checkDups ) - -- if seen.has_key("0"): -+ if "0" in seen: - code = "0" - bad = seen[code] - errors.append( bad ) -@@ -167,7 +170,7 @@ def readErrorCodes(): - print( "ZERO_CODE:" ) - print( " %s:%d:%d:%s" % (bad.sourceFile, line, col, bad.lines) ) - -- for code, locations in dups.items(): -+ for code, locations in list(dups.items()): - print( "DUPLICATE IDS: %s" % code ) - for loc in locations: - line, col = getLineAndColumnForPosition(loc) -@@ -189,19 +192,19 @@ def replaceBadCodes( errors, nextCode ): - - for loc in skip_errors: - line, col = getLineAndColumnForPosition(loc) -- print ("SKIPPING NONZERO code=%s: %s:%d:%d" -+ print("SKIPPING NONZERO code=%s: %s:%d:%d" - % (loc.code, loc.sourceFile, line, col)) - - # Dedupe, sort, and reverse so we don't have to update offsets as we go. - for assertLoc in reversed(sorted(set(zero_errors))): - (sourceFile, byteOffset, lines, code) = assertLoc - lineNum, _ = getLineAndColumnForPosition(assertLoc) -- print "UPDATING_FILE: %s:%s" % (sourceFile, lineNum) -+ print("UPDATING_FILE: %s:%s" % (sourceFile, lineNum)) - - ln = lineNum - 1 - - with open(sourceFile, 'r+') as f: -- print "LINE_%d_BEFORE:%s" % (lineNum, f.readlines()[ln].rstrip()) -+ print("LINE_%d_BEFORE:%s" % (lineNum, f.readlines()[ln].rstrip())) - - f.seek(0) - text = f.read() -@@ -212,7 +215,7 @@ def replaceBadCodes( errors, nextCode ): - f.write(text[byteOffset+1:]) - f.seek(0) - -- print "LINE_%d_AFTER :%s" % (lineNum, f.readlines()[ln].rstrip()) -+ print("LINE_%d_AFTER :%s" % (lineNum, f.readlines()[ln].rstrip())) - nextCode += 1 - - -@@ -281,7 +284,7 @@ def main(): - elif options.replace: - replaceBadCodes(errors, next) - else: -- print ERROR_HELP -+ print(ERROR_HELP) - sys.exit(1) - - -diff --git a/buildscripts/eslint.py b/buildscripts/eslint.py -index c1ab04fbab..d5c6aef4fc 100755 ---- a/buildscripts/eslint.py -+++ b/buildscripts/eslint.py -@@ -18,7 +18,7 @@ import sys - import tarfile - import tempfile - import threading --import urllib -+import urllib.request, urllib.parse, urllib.error - from distutils import spawn - from optparse import OptionParser - -@@ -81,7 +81,7 @@ def get_eslint_from_cache(dest_file, platform, arch): - # Download the file - print("Downloading ESLint %s from %s, saving to %s" % (ESLINT_VERSION, - url, temp_tar_file)) -- urllib.urlretrieve(url, temp_tar_file) -+ urllib.request.urlretrieve(url, temp_tar_file) - - eslint_distfile = ESLINT_SOURCE_TAR_BASE.substitute(platform=platform, arch=arch) - extract_eslint(temp_tar_file, eslint_distfile) -diff --git a/buildscripts/idl/idl/binder.py b/buildscripts/idl/idl/binder.py -index 354acca974..9612e39305 100644 ---- a/buildscripts/idl/idl/binder.py -+++ b/buildscripts/idl/idl/binder.py -@@ -608,7 +608,7 @@ def _validate_enum_int(ctxt, idl_enum): - min_value = min(int_values_set) - max_value = max(int_values_set) - -- valid_int = {x for x in xrange(min_value, max_value + 1)} -+ valid_int = {x for x in range(min_value, max_value + 1)} - - if valid_int != int_values_set: - ctxt.add_enum_non_continuous_range_error(idl_enum, idl_enum.name) -diff --git a/buildscripts/idl/idl/bson.py b/buildscripts/idl/idl/bson.py -index 214b67a7bf..b84421d657 100644 ---- a/buildscripts/idl/idl/bson.py -+++ b/buildscripts/idl/idl/bson.py -@@ -141,7 +141,7 @@ def cpp_bson_type_name(name): - def list_valid_types(): - # type: () -> List[unicode] - """Return a list of supported bson types.""" -- return [a for a in _BSON_TYPE_INFORMATION.iterkeys()] -+ return [a for a in _BSON_TYPE_INFORMATION.keys()] - - - def is_valid_bindata_subtype(name): -diff --git a/buildscripts/idl/idl/cpp_types.py b/buildscripts/idl/idl/cpp_types.py -index aafcf87224..e989664eee 100644 ---- a/buildscripts/idl/idl/cpp_types.py -+++ b/buildscripts/idl/idl/cpp_types.py -@@ -28,6 +28,7 @@ from . import writer - - _STD_ARRAY_UINT8_16 = 'std::array' - -+ABC = ABCMeta(str('ABC'), (object,), {'__slots__': ()}) - - def is_primitive_scalar_type(cpp_type): - # type: (unicode) -> bool -@@ -75,11 +76,9 @@ def _qualify_array_type(cpp_type): - return "std::vector<%s>" % (cpp_type) - - --class CppTypeBase(object): -+class CppTypeBase(ABC): - """Base type for C++ Type information.""" - -- __metaclass__ = ABCMeta -- - def __init__(self, field): - # type: (ast.Field) -> None - """Construct a CppTypeBase.""" -@@ -537,11 +536,9 @@ def get_cpp_type(field): - return cpp_type_info - - --class BsonCppTypeBase(object): -+class BsonCppTypeBase(ABC): - """Base type for custom C++ support for BSON Types information.""" - -- __metaclass__ = ABCMeta -- - def __init__(self, field): - # type: (ast.Field) -> None - """Construct a BsonCppTypeBase.""" -diff --git a/buildscripts/idl/idl/enum_types.py b/buildscripts/idl/idl/enum_types.py -index 3caed6f67d..f17c926748 100644 ---- a/buildscripts/idl/idl/enum_types.py -+++ b/buildscripts/idl/idl/enum_types.py -@@ -29,11 +29,11 @@ from . import common - from . import syntax - from . import writer - -+ABC = ABCMeta(str('ABC'), (object,), {'__slots__': ()}) - --class EnumTypeInfoBase(object): -- """Base type for enumeration type information.""" - -- __metaclass__ = ABCMeta -+class EnumTypeInfoBase(ABC): -+ """Base type for enumeration type information.""" - - def __init__(self, idl_enum): - # type: (Union[syntax.Enum,ast.Enum]) -> None -@@ -108,8 +108,6 @@ class EnumTypeInfoBase(object): - class _EnumTypeInt(EnumTypeInfoBase): - """Type information for integer enumerations.""" - -- __metaclass__ = ABCMeta -- - def __init__(self, idl_enum): - # type: (Union[syntax.Enum,ast.Enum]) -> None - super(_EnumTypeInt, self).__init__(idl_enum) -@@ -189,8 +187,6 @@ def _get_constant_enum_name(idl_enum, enum_value): - class _EnumTypeString(EnumTypeInfoBase): - """Type information for string enumerations.""" - -- __metaclass__ = ABCMeta -- - def __init__(self, idl_enum): - # type: (Union[syntax.Enum,ast.Enum]) -> None - super(_EnumTypeString, self).__init__(idl_enum) -diff --git a/buildscripts/idl/idl/generator.py b/buildscripts/idl/idl/generator.py -index 9f591eccc4..8f97abf28c 100644 ---- a/buildscripts/idl/idl/generator.py -+++ b/buildscripts/idl/idl/generator.py -@@ -33,6 +33,7 @@ from . import enum_types - from . import struct_types - from . import writer - -+ABC = ABCMeta(str('ABC'), (object,), {'__slots__': ()}) - - def _get_field_member_name(field): - # type: (ast.Field) -> unicode -@@ -105,11 +106,9 @@ def _get_bson_type_check(bson_element, ctxt_name, field): - return '%s.checkAndAssertTypes(%s, %s)' % (ctxt_name, bson_element, type_list) - - --class _FieldUsageCheckerBase(object): -+class _FieldUsageCheckerBase(ABC): - """Check for duplicate fields, and required fields as needed.""" - -- __metaclass__ = ABCMeta -- - def __init__(self, indented_writer): - # type: (writer.IndentedTextWriter) -> None - """Create a field usage checker.""" -@@ -1470,8 +1469,8 @@ def _generate_header(spec, file_name): - header.generate(spec) - - # Generate structs -- with io.open(file_name, mode='wb') as file_handle: -- file_handle.write(stream.getvalue().encode()) -+ with io.open(file_name, mode='w') as file_handle: -+ file_handle.write(stream.getvalue()) - - - def _generate_source(spec, file_name, header_file_name): -@@ -1485,8 +1484,8 @@ def _generate_source(spec, file_name, header_file_name): - source.generate(spec, header_file_name) - - # Generate structs -- with io.open(file_name, mode='wb') as file_handle: -- file_handle.write(stream.getvalue().encode()) -+ with io.open(file_name, mode='w') as file_handle: -+ file_handle.write(stream.getvalue()) - - - def generate_code(spec, output_base_dir, header_file_name, source_file_name): -diff --git a/buildscripts/idl/idl/parser.py b/buildscripts/idl/idl/parser.py -index fd0af9b144..ac36a3a280 100644 ---- a/buildscripts/idl/idl/parser.py -+++ b/buildscripts/idl/idl/parser.py -@@ -30,6 +30,7 @@ from . import common - from . import errors - from . import syntax - -+ABC = ABCMeta(str('ABC'), (object,), {'__slots__': ()}) - - class _RuleDesc(object): - """ -@@ -486,11 +487,9 @@ def _parse(stream, error_file_name): - return syntax.IDLParsedSpec(spec, None) - - --class ImportResolverBase(object): -+class ImportResolverBase(ABC): - """Base class for resolving imported files.""" - -- __metaclass__ = ABCMeta -- - def __init__(self): - # type: () -> None - """Construct a ImportResolver.""" -diff --git a/buildscripts/idl/idl/struct_types.py b/buildscripts/idl/idl/struct_types.py -index 9e2a9504ac..cd46e7c0ff 100644 ---- a/buildscripts/idl/idl/struct_types.py -+++ b/buildscripts/idl/idl/struct_types.py -@@ -23,6 +23,7 @@ from . import ast - from . import common - from . import writer - -+ABC = ABCMeta(str('ABC'), (object,), {'__slots__': ()}) - - class ArgumentInfo(object): - """Class that encapsulates information about an argument to a method.""" -@@ -125,11 +126,9 @@ class MethodInfo(object): - "${method_name}(${args});", method_name=self.method_name, args=args) - - --class StructTypeInfoBase(object): -+class StructTypeInfoBase(ABC): - """Base class for struct and command code generation.""" - -- __metaclass__ = ABCMeta -- - @abstractmethod - def get_constructor_method(self): - # type: () -> MethodInfo -diff --git a/buildscripts/idl/idl/syntax.py b/buildscripts/idl/idl/syntax.py -index 056d2e9dc3..ff9a3953db 100644 ---- a/buildscripts/idl/idl/syntax.py -+++ b/buildscripts/idl/idl/syntax.py -@@ -82,7 +82,7 @@ def _item_and_type(dic): - # type: (Dict[Any, List[Any]]) -> Iterator[Tuple[Any, Any]] - """Return an Iterator of (key, value) pairs from a dictionary.""" - return itertools.chain.from_iterable((_zip_scalar(value, key) -- for (key, value) in dic.viewitems())) -+ for (key, value) in dic.items())) - - - class SymbolTable(object): -diff --git a/buildscripts/idl/tests/test_binder.py b/buildscripts/idl/tests/test_binder.py -index 5502b69d36..b0f4ba4269 100644 ---- a/buildscripts/idl/tests/test_binder.py -+++ b/buildscripts/idl/tests/test_binder.py -@@ -72,7 +72,7 @@ class TestBinder(testcase.IDLTestcase): - cpp_includes: - - 'bar' - - 'foo'""")) -- self.assertEquals(spec.globals.cpp_namespace, "something") -+ self.assertEqual(spec.globals.cpp_namespace, "something") - self.assertListEqual(spec.globals.cpp_includes, ['bar', 'foo']) - - def test_type_positive(self): -diff --git a/buildscripts/lint.py b/buildscripts/lint.py -index d4061a9b04..b1ca5b6169 100644 ---- a/buildscripts/lint.py -+++ b/buildscripts/lint.py -@@ -2,8 +2,8 @@ - import sys - import codecs - --import cpplint --import utils -+from . import cpplint -+from . import utils - - class CheckForConfigH: - def __init__(self): -diff --git a/buildscripts/linter/base.py b/buildscripts/linter/base.py -index f22f59e4f0..09931a673b 100644 ---- a/buildscripts/linter/base.py -+++ b/buildscripts/linter/base.py -@@ -5,12 +5,11 @@ from __future__ import print_function - from abc import ABCMeta, abstractmethod - from typing import Dict, List, Optional - -+ABC = ABCMeta(str('ABC'), (object,), {'__slots__': ()}) - --class LinterBase(object): -+class LinterBase(ABC): - """Base Class for all linters.""" - -- __metaclass__ = ABCMeta -- - def __init__(self, cmd_name, required_version, cmd_location=None): - # type: (str, str, Optional[str]) -> None - """ -diff --git a/buildscripts/linter/git.py b/buildscripts/linter/git.py -index edde6d0a49..4680e2f5fd 100644 ---- a/buildscripts/linter/git.py -+++ b/buildscripts/linter/git.py -@@ -175,7 +175,7 @@ def get_files_to_check_from_patch(patches, filter_function): - - lines = [] # type: List[str] - for patch in patches: -- with open(patch, "rb") as infile: -+ with open(patch, "r") as infile: - lines += infile.readlines() - - candidates = [check.match(line).group(1) for line in lines if check.match(line)] -diff --git a/buildscripts/linter/parallel.py b/buildscripts/linter/parallel.py -index 0648bfb16e..361da0c559 100644 ---- a/buildscripts/linter/parallel.py -+++ b/buildscripts/linter/parallel.py -@@ -2,7 +2,12 @@ - from __future__ import absolute_import - from __future__ import print_function - --import Queue -+try: -+ import queue -+except ImportError: -+ #Python 2 -+ import Queue as queue -+ - import threading - import time - from multiprocessing import cpu_count -@@ -17,7 +22,7 @@ def parallel_process(items, func): - except NotImplementedError: - cpus = 1 - -- task_queue = Queue.Queue() # type: Queue.Queue -+ task_queue = queue.Queue() # type: queue.Queue - - # Use a list so that worker function will capture this variable - pp_event = threading.Event() -@@ -30,7 +35,7 @@ def parallel_process(items, func): - while not pp_event.is_set(): - try: - item = task_queue.get_nowait() -- except Queue.Empty: -+ except queue.Empty: - # if the queue is empty, exit the worker thread - pp_event.set() - return -diff --git a/buildscripts/resmokeconfig/loggers/__init__.py b/buildscripts/resmokeconfig/loggers/__init__.py -index 6511d49636..454f675ca2 100644 ---- a/buildscripts/resmokeconfig/loggers/__init__.py -+++ b/buildscripts/resmokeconfig/loggers/__init__.py -@@ -21,7 +21,7 @@ def _get_named_loggers(): - named_loggers = {} - - try: -- (root, _dirs, files) = os.walk(dirname).next() -+ (root, _dirs, files) = next(os.walk(dirname)) - for filename in files: - (short_name, ext) = os.path.splitext(filename) - if ext in (".yml", ".yaml"): -diff --git a/buildscripts/resmokeconfig/suites/__init__.py b/buildscripts/resmokeconfig/suites/__init__.py -index e075dd22e0..2ca2187e6e 100644 ---- a/buildscripts/resmokeconfig/suites/__init__.py -+++ b/buildscripts/resmokeconfig/suites/__init__.py -@@ -21,7 +21,7 @@ def _get_named_suites(): - named_suites = {} - - try: -- (root, _dirs, files) = os.walk(dirname).next() -+ (root, _dirs, files) = next(os.walk(dirname)) - for filename in files: - (short_name, ext) = os.path.splitext(filename) - if ext in (".yml", ".yaml"): -diff --git a/buildscripts/resmokelib/config.py b/buildscripts/resmokelib/config.py -index 5a71bd9f4e..761ef21ab3 100644 ---- a/buildscripts/resmokelib/config.py -+++ b/buildscripts/resmokelib/config.py -@@ -65,7 +65,7 @@ DEFAULTS = { - "repeat": 1, - "report_failure_status": "fail", - "report_file": None, -- "seed": long(time.time() * 256), # Taken from random.py code in Python 2.7. -+ "seed": int(time.time() * 256), # Taken from random.py code in Python 2.7. - "service_executor": None, - "shell_conn_string": None, - "shell_port": None, -diff --git a/buildscripts/resmokelib/core/process.py b/buildscripts/resmokelib/core/process.py -index 03fb849616..e70f90abb4 100644 ---- a/buildscripts/resmokelib/core/process.py -+++ b/buildscripts/resmokelib/core/process.py -@@ -196,8 +196,8 @@ class Process(object): - finally: - win32api.CloseHandle(mongo_signal_handle) - -- print "Failed to cleanly exit the program, calling TerminateProcess() on PID: " +\ -- str(self._process.pid) -+ print("Failed to cleanly exit the program, calling TerminateProcess() on PID: " +\ -+ str(self._process.pid)) - - # Adapted from implementation of Popen.terminate() in subprocess.py of Python 2.7 - # because earlier versions do not catch exceptions. -diff --git a/buildscripts/resmokelib/logging/buildlogger.py b/buildscripts/resmokelib/logging/buildlogger.py -index 9ffe302d72..72f09f9286 100644 ---- a/buildscripts/resmokelib/logging/buildlogger.py -+++ b/buildscripts/resmokelib/logging/buildlogger.py -@@ -290,7 +290,7 @@ class BuildloggerServer(object): - def __init__(self): - tmp_globals = {} - self.config = {} -- execfile(_BUILDLOGGER_CONFIG, tmp_globals, self.config) -+ exec(compile(open(_BUILDLOGGER_CONFIG).read(), _BUILDLOGGER_CONFIG, 'exec'), tmp_globals, self.config) - - # Rename "slavename" to "username" if present. - if "slavename" in self.config and "username" not in self.config: -diff --git a/buildscripts/resmokelib/selector.py b/buildscripts/resmokelib/selector.py -index 77ee0afb95..2d131c8efa 100644 ---- a/buildscripts/resmokelib/selector.py -+++ b/buildscripts/resmokelib/selector.py -@@ -66,7 +66,7 @@ class TestFileExplorer(object): - A list of paths as a list(str). - """ - tests = [] -- with open(root_file_path, "rb") as filep: -+ with open(root_file_path, "r") as filep: - for test_path in filep: - test_path = test_path.strip() - tests.append(test_path) -@@ -294,7 +294,7 @@ def make_expression(conf): - elif isinstance(conf, dict): - if len(conf) != 1: - raise ValueError("Tag matching expressions should only contain one key") -- key = conf.keys()[0] -+ key = next(iter(conf.keys())) - value = conf[key] - if key == "$allOf": - return _AllOfExpression(_make_expression_list(value)) -diff --git a/buildscripts/resmokelib/testing/executor.py b/buildscripts/resmokelib/testing/executor.py -index 9e733e4d89..43c1f517d5 100644 ---- a/buildscripts/resmokelib/testing/executor.py -+++ b/buildscripts/resmokelib/testing/executor.py -@@ -72,7 +72,7 @@ class TestSuiteExecutor(object): - jobs_to_start = num_tests - - # Must be done after getting buildlogger configuration. -- self._jobs = [self._make_job(job_num) for job_num in xrange(jobs_to_start)] -+ self._jobs = [self._make_job(job_num) for job_num in range(jobs_to_start)] - - def run(self): - """ -@@ -298,7 +298,7 @@ class TestSuiteExecutor(object): - queue.put(test_case) - - # Add sentinel value for each job to indicate when there are no more items to process. -- for _ in xrange(len(self._jobs)): -+ for _ in range(len(self._jobs)): - queue.put(None) - - return queue -diff --git a/buildscripts/resmokelib/testing/fixtures/interface.py b/buildscripts/resmokelib/testing/fixtures/interface.py -index af694ba3e0..198cae386f 100644 ---- a/buildscripts/resmokelib/testing/fixtures/interface.py -+++ b/buildscripts/resmokelib/testing/fixtures/interface.py -@@ -5,6 +5,7 @@ Interface of the different fixtures for executing JSTests against. - from __future__ import absolute_import - - import os.path -+import six - import time - - import pymongo -@@ -30,13 +31,11 @@ def make_fixture(class_name, *args, **kwargs): - return _FIXTURES[class_name](*args, **kwargs) - - --class Fixture(object): -+class Fixture(six.with_metaclass(registry.make_registry_metaclass(_FIXTURES), object)): - """ - Base class for all fixtures. - """ - -- __metaclass__ = registry.make_registry_metaclass(_FIXTURES) -- - # We explicitly set the 'REGISTERED_NAME' attribute so that PyLint realizes that the attribute - # is defined for all subclasses of Fixture. - REGISTERED_NAME = "Fixture" -diff --git a/buildscripts/resmokelib/testing/fixtures/replicaset.py b/buildscripts/resmokelib/testing/fixtures/replicaset.py -index 269dd46830..fe62a2b937 100644 ---- a/buildscripts/resmokelib/testing/fixtures/replicaset.py -+++ b/buildscripts/resmokelib/testing/fixtures/replicaset.py -@@ -75,7 +75,7 @@ class ReplicaSetFixture(interface.ReplFixture): - self.replset_name = self.mongod_options.get("replSet", "rs") - - if not self.nodes: -- for i in xrange(self.num_nodes): -+ for i in range(self.num_nodes): - node = self._new_mongod(i, self.replset_name) - self.nodes.append(node) - -diff --git a/buildscripts/resmokelib/testing/fixtures/shardedcluster.py b/buildscripts/resmokelib/testing/fixtures/shardedcluster.py -index e1a0c7bfe3..0daadda9e6 100644 ---- a/buildscripts/resmokelib/testing/fixtures/shardedcluster.py -+++ b/buildscripts/resmokelib/testing/fixtures/shardedcluster.py -@@ -81,7 +81,7 @@ class ShardedClusterFixture(interface.Fixture): - self.configsvr.setup() - - if not self.shards: -- for i in xrange(self.num_shards): -+ for i in range(self.num_shards): - if self.num_rs_nodes_per_shard is None: - shard = self._new_standalone_shard(i) - elif isinstance(self.num_rs_nodes_per_shard, int): -diff --git a/buildscripts/resmokelib/testing/hooks/interface.py b/buildscripts/resmokelib/testing/hooks/interface.py -index cd5200764f..958cc92192 100644 ---- a/buildscripts/resmokelib/testing/hooks/interface.py -+++ b/buildscripts/resmokelib/testing/hooks/interface.py -@@ -7,6 +7,7 @@ from __future__ import absolute_import - from ...logging import loggers - from ...utils import registry - -+import six - - _HOOKS = {} - -@@ -22,13 +23,11 @@ def make_custom_behavior(class_name, *args, **kwargs): - return _HOOKS[class_name](*args, **kwargs) - - --class CustomBehavior(object): -+class CustomBehavior(six.with_metaclass(registry.make_registry_metaclass(_HOOKS), object)): - """ - The common interface all CustomBehaviors will inherit from. - """ - -- __metaclass__ = registry.make_registry_metaclass(_HOOKS) -- - REGISTERED_NAME = registry.LEAVE_UNREGISTERED - - @staticmethod -diff --git a/buildscripts/resmokelib/testing/suite.py b/buildscripts/resmokelib/testing/suite.py -index 132a2d70d9..07262d194a 100644 ---- a/buildscripts/resmokelib/testing/suite.py -+++ b/buildscripts/resmokelib/testing/suite.py -@@ -262,7 +262,7 @@ class Suite(object): - sb.append("Executed %d times in %0.2f seconds:" % (num_iterations, total_time_taken)) - - combined_summary = _summary.Summary(0, 0.0, 0, 0, 0, 0) -- for iteration in xrange(num_iterations): -+ for iteration in range(num_iterations): - # Summarize each execution as a bulleted list of results. - bulleter_sb = [] - summary = self._summarize_report( -diff --git a/buildscripts/resmokelib/testing/summary.py b/buildscripts/resmokelib/testing/summary.py -index bb44472caa..54da2181d5 100644 ---- a/buildscripts/resmokelib/testing/summary.py -+++ b/buildscripts/resmokelib/testing/summary.py -@@ -17,6 +17,6 @@ def combine(summary1, summary2): - Returns a summary representing the sum of 'summary1' and 'summary2'. - """ - args = [] -- for i in xrange(len(Summary._fields)): -+ for i in range(len(Summary._fields)): - args.append(summary1[i] + summary2[i]) - return Summary._make(args) -diff --git a/buildscripts/resmokelib/testing/testcases/interface.py b/buildscripts/resmokelib/testing/testcases/interface.py -index be7f14afd5..f736bd5c36 100644 ---- a/buildscripts/resmokelib/testing/testcases/interface.py -+++ b/buildscripts/resmokelib/testing/testcases/interface.py -@@ -7,6 +7,7 @@ from __future__ import absolute_import - - import os - import os.path -+import six - import unittest - - from ... import config -@@ -27,13 +28,11 @@ def make_test_case(test_kind, *args, **kwargs): - return _TEST_CASES[test_kind](*args, **kwargs) - - --class TestCase(unittest.TestCase): -+class TestCase(six.with_metaclass(registry.make_registry_metaclass(_TEST_CASES), unittest.TestCase)): - """ - A test case to execute. - """ - -- __metaclass__ = registry.make_registry_metaclass(_TEST_CASES) -- - REGISTERED_NAME = registry.LEAVE_UNREGISTERED - - def __init__(self, logger, test_kind, test_name): -@@ -46,10 +45,10 @@ class TestCase(unittest.TestCase): - if not isinstance(logger, logging.Logger): - raise TypeError("logger must be a Logger instance") - -- if not isinstance(test_kind, basestring): -+ if not isinstance(test_kind, str): - raise TypeError("test_kind must be a string") - -- if not isinstance(test_name, basestring): -+ if not isinstance(test_name, str): - raise TypeError("test_name must be a string") - - # When the TestCase is created by the TestSuiteExecutor (through a call to make_test_case()) -diff --git a/buildscripts/resmokelib/testing/testcases/jstest.py b/buildscripts/resmokelib/testing/testcases/jstest.py -index 7327ead9fc..192761d8c9 100644 ---- a/buildscripts/resmokelib/testing/testcases/jstest.py -+++ b/buildscripts/resmokelib/testing/testcases/jstest.py -@@ -240,7 +240,7 @@ class JSTestCase(interface.TestCase): - test_cases = [] - try: - # If there are multiple clients, make a new thread for each client. -- for thread_id in xrange(self.num_clients): -+ for thread_id in range(self.num_clients): - logger = self.logger.new_test_thread_logger(self.test_kind, str(thread_id)) - test_case = self._create_test_case_for_thread(logger, thread_id) - test_cases.append(test_case) -diff --git a/buildscripts/resmokelib/utils/__init__.py b/buildscripts/resmokelib/utils/__init__.py -index 7e528bc698..04da36aa5c 100644 ---- a/buildscripts/resmokelib/utils/__init__.py -+++ b/buildscripts/resmokelib/utils/__init__.py -@@ -51,10 +51,10 @@ def rmtree(path, **kwargs): - See https://github.com/pypa/setuptools/issues/706. - """ - if is_windows(): -- if not isinstance(path, unicode): -- path = unicode(path, "utf-8") -+ if not isinstance(path, str): -+ path = str(path, "utf-8") - else: -- if isinstance(path, unicode): -+ if isinstance(path, str): - path = path.encode("utf-8") - shutil.rmtree(path, **kwargs) - -@@ -68,14 +68,14 @@ def is_string_list(lst): - """ - Returns true if 'lst' is a list of strings, and false otherwise. - """ -- return isinstance(lst, list) and all(isinstance(x, basestring) for x in lst) -+ return isinstance(lst, list) and all(isinstance(x, str) for x in lst) - - - def is_string_set(value): - """ - Returns true if 'value' is a set of strings, and false otherwise. - """ -- return isinstance(value, set) and all(isinstance(x, basestring) for x in value) -+ return isinstance(value, set) and all(isinstance(x, str) for x in value) - - - def is_js_file(filename): -diff --git a/buildscripts/resmokelib/utils/archival.py b/buildscripts/resmokelib/utils/archival.py -index 1002f2ce90..7f52d22907 100644 ---- a/buildscripts/resmokelib/utils/archival.py -+++ b/buildscripts/resmokelib/utils/archival.py -@@ -4,7 +4,11 @@ Archival utility. - - from __future__ import absolute_import - --import Queue -+try: -+ import queue -+except ImportError: -+ #Python 2 -+ import Queue as queue - import collections - import json - import math -@@ -52,7 +56,7 @@ def file_list_size(files): - def directory_size(directory): - """ Return size (in bytes) of files in 'directory' tree. """ - dir_bytes = 0 -- for root_dir, _, files in os.walk(unicode(directory)): -+ for root_dir, _, files in os.walk(str(directory)): - for name in files: - full_name = os.path.join(root_dir, name) - try: -@@ -114,7 +118,7 @@ class Archival(object): - self._lock = threading.Lock() - - # Start the worker thread to update the 'archival_json_file'. -- self._archive_file_queue = Queue.Queue() -+ self._archive_file_queue = queue.Queue() - self._archive_file_worker = threading.Thread( - target=self._update_archive_file_wkr, - args=(self._archive_file_queue, logger), -@@ -127,7 +131,7 @@ class Archival(object): - self.s3_client = s3_client - - # Start the worker thread which uploads the archive. -- self._upload_queue = Queue.Queue() -+ self._upload_queue = queue.Queue() - self._upload_worker = threading.Thread( - target=self._upload_to_s3_wkr, - args=(self._upload_queue, self._archive_file_queue, logger, self.s3_client), -diff --git a/buildscripts/resmokelib/utils/globstar.py b/buildscripts/resmokelib/utils/globstar.py -index 644ebfe3e3..52100d7d9d 100644 ---- a/buildscripts/resmokelib/utils/globstar.py -+++ b/buildscripts/resmokelib/utils/globstar.py -@@ -145,7 +145,7 @@ def _list_dir(pathname): - """ - - try: -- (_root, dirs, files) = os.walk(pathname).next() -+ (_root, dirs, files) = next(os.walk(pathname)) - return (dirs, files) - except StopIteration: - return None # 'pathname' directory does not exist -diff --git a/buildscripts/resmokelib/utils/jscomment.py b/buildscripts/resmokelib/utils/jscomment.py -index 18da788582..a393c43723 100644 ---- a/buildscripts/resmokelib/utils/jscomment.py -+++ b/buildscripts/resmokelib/utils/jscomment.py -@@ -39,7 +39,7 @@ def get_tags(pathname): - # TODO: it might be worth supporting the block (indented) style of YAML lists in - # addition to the flow (bracketed) style - tags = yaml.safe_load(_strip_jscomments(match.group(1))) -- if not isinstance(tags, list) and all(isinstance(tag, basestring) for tag in tags): -+ if not isinstance(tags, list) and all(isinstance(tag, str) for tag in tags): - raise TypeError("Expected a list of string tags, but got '%s'" % (tags)) - return tags - except yaml.YAMLError as err: -diff --git a/buildscripts/resmokelib/utils/queue.py b/buildscripts/resmokelib/utils/queue.py -index 80da5e2cc6..41d23d54bf 100644 ---- a/buildscripts/resmokelib/utils/queue.py -+++ b/buildscripts/resmokelib/utils/queue.py -@@ -9,15 +9,20 @@ See https://bugs.python.org/issue1167930 for more details. - - from __future__ import absolute_import - --import Queue -+try: -+ import queue -+except ImportError: -+ #Python 2 -+ import Queue as queue -+ - import time - - - # Exception that is raised when get_nowait() is called on an empty Queue. --Empty = Queue.Empty -+Empty = queue.Empty - - --class Queue(Queue.Queue): -+class Queue(queue.Queue): - """ - A multi-producer, multi-consumer queue. - """ -diff --git a/buildscripts/utils.py b/buildscripts/utils.py -index 69a78921ca..93c697adca 100644 ---- a/buildscripts/utils.py -+++ b/buildscripts/utils.py -@@ -122,7 +122,7 @@ def getprocesslist(): - raw = "" - try: - raw = execsys( "/bin/ps axww" )[0] -- except Exception,e: -+ except Exception as e: - print( "can't get processlist: " + str( e ) ) - - r = re.compile( "[\r\n]+" ) -@@ -145,7 +145,7 @@ def choosePathExist( choices , default=None): - return default - - def filterExists(paths): -- return filter(os.path.exists, paths) -+ return list(filter(os.path.exists, paths)) - - def ensureDir( name ): - d = os.path.dirname( name ) -@@ -176,7 +176,7 @@ def didMongodStart( port=27017 , timeout=20 ): - try: - checkMongoPort( port ) - return True -- except Exception,e: -+ except Exception as e: - print( e ) - timeout = timeout - 1 - return False -@@ -213,7 +213,7 @@ def find_python(min_version=(2, 5)): - pass - - version = re.compile(r'[Pp]ython ([\d\.]+)', re.MULTILINE) -- binaries = ('python27', 'python2.7', 'python26', 'python2.6', 'python25', 'python2.5', 'python') -+ binaries = ('python3', 'python27', 'python2.7', 'python26', 'python2.6', 'python25', 'python2.5', 'python') - for binary in binaries: - try: - out, err = subprocess.Popen([binary, '-V'], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() -@@ -251,7 +251,7 @@ def run_smoke_command(*args): - # at the position they occurred - def replace_with_repr(unicode_error): - offender = unicode_error.object[unicode_error.start:unicode_error.end] -- return (unicode(repr(offender).strip("'").strip('"')), unicode_error.end) -+ return (str(repr(offender).strip("'").strip('"')), unicode_error.end) - - codecs.register_error('repr', replace_with_repr) - -diff --git a/site_scons/libdeps.py b/site_scons/libdeps.py -index 632ed29be5..1641c3ba90 100644 ---- a/site_scons/libdeps.py -+++ b/site_scons/libdeps.py -@@ -122,7 +122,7 @@ def __get_libdeps(node): - marked.add(n.target_node) - tsorted.append(n.target_node) - -- except DependencyCycleError, e: -+ except DependencyCycleError as e: - if len(e.cycle_nodes) == 1 or e.cycle_nodes[0] != e.cycle_nodes[-1]: - e.cycle_nodes.insert(0, n.target_node) - raise -@@ -150,7 +150,7 @@ def __get_syslibdeps(node): - for lib in __get_libdeps(node): - for syslib in node.get_env().Flatten(lib.get_env().get(syslibdeps_env_var, [])): - if syslib: -- if type(syslib) in (str, unicode) and syslib.startswith(missing_syslibdep): -+ if type(syslib) in (str, str) and syslib.startswith(missing_syslibdep): - print("Target '%s' depends on the availability of a " - "system provided library for '%s', " - "but no suitable library was found during configuration." % -@@ -209,7 +209,7 @@ def get_syslibdeps(source, target, env, for_signature): - # they're believed to represent library short names, that should be prefixed with -l - # or the compiler-specific equivalent. I.e., 'm' becomes '-lm', but 'File("m.a") is passed - # through whole cloth. -- if type(d) in (str, unicode): -+ if type(d) in (str, str): - result.append('%s%s%s' % (lib_link_prefix, d, lib_link_suffix)) - else: - result.append(d) -diff --git a/site_scons/mongo/__init__.py b/site_scons/mongo/__init__.py -index 510bd7bcc2..f77478092b 100644 ---- a/site_scons/mongo/__init__.py -+++ b/site_scons/mongo/__init__.py -@@ -5,4 +5,4 @@ - def print_build_failures(): - from SCons.Script import GetBuildFailures - for bf in GetBuildFailures(): -- print "%s failed: %s" % (bf.node, bf.errstr) -+ print("%s failed: %s" % (bf.node, bf.errstr)) -diff --git a/site_scons/mongo/generators.py b/site_scons/mongo/generators.py -index c07e86a4d1..5958e6923b 100644 ---- a/site_scons/mongo/generators.py -+++ b/site_scons/mongo/generators.py -@@ -1,6 +1,6 @@ - # -*- mode: python; -*- - --import md5 -+import hashlib - - # Default and alternative generator definitions go here. - -@@ -44,7 +44,7 @@ def default_variant_dir_generator(target, source, env, for_signature): - - # Hash the named options and their values, and take the first 8 characters of the hash as - # the variant name -- hasher = md5.md5() -+ hasher = hashlib.md5() - for option in variant_options: - hasher.update(option) - hasher.update(str(env.GetOption(option))) -diff --git a/site_scons/site_tools/dagger/__init__.py b/site_scons/site_tools/dagger/__init__.py -index f05228cfe4..f10b4027e1 100644 ---- a/site_scons/site_tools/dagger/__init__.py -+++ b/site_scons/site_tools/dagger/__init__.py -@@ -5,7 +5,7 @@ import logging - - import SCons - --import dagger -+from . import dagger - - def generate(env, **kwargs): - """The entry point for our tool. However, the builder for -diff --git a/site_scons/site_tools/dagger/dagger.py b/site_scons/site_tools/dagger/dagger.py -index 1eeefe1ea3..03e7603d29 100644 ---- a/site_scons/site_tools/dagger/dagger.py -+++ b/site_scons/site_tools/dagger/dagger.py -@@ -40,8 +40,8 @@ import sys - - import SCons - --import graph --import graph_consts -+from . import graph -+from . import graph_consts - - - LIB_DB = [] # Stores every SCons library nodes -@@ -269,7 +269,7 @@ def write_obj_db(target, source, env): - for obj in OBJ_DB: - __generate_file_rels(obj, g) - -- for exe in EXE_DB.keys(): -+ for exe in list(EXE_DB.keys()): - __generate_exe_rels(exe, g) - - # target is given as a list of target SCons nodes - this builder is only responsible for -diff --git a/site_scons/site_tools/dagger/graph.py b/site_scons/site_tools/dagger/graph.py -index 5ebe6f4506..379d5245e6 100644 ---- a/site_scons/site_tools/dagger/graph.py -+++ b/site_scons/site_tools/dagger/graph.py -@@ -4,11 +4,13 @@ import abc - import json - import copy - --import graph_consts -+from . import graph_consts - - if sys.version_info >= (3, 0): - basestring = str - -+ABC = abc.ABCMeta('ABC', (object,), {'__slots__': ()}) -+ - class Graph(object): - """Graph class for storing the build dependency graph. The graph stores the - directed edges as a nested dict of { RelationshipType: {From_Node: Set of -@@ -141,7 +143,7 @@ class Graph(object): - node_dict["id"] = id - node_dict["node"] = {} - -- for property, value in vars(node).iteritems(): -+ for property, value in vars(node).items(): - if isinstance(value, set): - node_dict["node"][property] = list(value) - else: -@@ -170,10 +172,9 @@ class Graph(object): - sum(len(x) for x in self._edges.values()), hash(self)) - - --class NodeInterface(object): -+class NodeInterface(ABC): - """Abstract base class for all Node Objects - All nodes must have an id and name - """ -- __metaclass__ = abc.ABCMeta - - @abc.abstractproperty - def id(self): -@@ -190,7 +191,7 @@ class NodeLib(NodeInterface): - def __init__(self, id, name, input=None): - if isinstance(input, dict): - should_fail = False -- for k, v in input.iteritems(): -+ for k, v in input.items(): - try: - if isinstance(v, list): - setattr(self, k, set(v)) -@@ -310,7 +311,7 @@ class NodeSymbol(NodeInterface): - if isinstance(input, dict): - should_fail = False - -- for k, v in input.iteritems(): -+ for k, v in input.items(): - try: - if isinstance(v, list): - setattr(self, k, set(v)) -@@ -435,7 +436,7 @@ class NodeFile(NodeInterface): - def __init__(self, id, name, input=None): - if isinstance(input, dict): - should_fail = False -- for k, v in input.iteritems(): -+ for k, v in input.items(): - try: - if isinstance(v, list): - setattr(self, k, set(v)) -@@ -551,7 +552,7 @@ class NodeExe(NodeInterface): - def __init__(self, id, name, input=None): - if isinstance(input, dict): - should_fail = False -- for k, v in input.iteritems(): -+ for k, v in input.items(): - try: - if isinstance(v, list): - setattr(self, k, set(v)) -diff --git a/site_scons/site_tools/dagger/graph_consts.py b/site_scons/site_tools/dagger/graph_consts.py -index 81fe86d75c..a922a4f3f6 100644 ---- a/site_scons/site_tools/dagger/graph_consts.py -+++ b/site_scons/site_tools/dagger/graph_consts.py -@@ -17,8 +17,8 @@ NODE_SYM = 2 - NODE_FILE = 3 - NODE_EXE = 4 - --RELATIONSHIP_TYPES = range(1, 9) --NODE_TYPES = range(1, 5) -+RELATIONSHIP_TYPES = list(range(1, 9)) -+NODE_TYPES = list(range(1, 5)) - - - """Error/query codes""" -diff --git a/site_scons/site_tools/dagger/graph_test.py b/site_scons/site_tools/dagger/graph_test.py -index bc84f5868c..6c0168cf97 100644 ---- a/site_scons/site_tools/dagger/graph_test.py -+++ b/site_scons/site_tools/dagger/graph_test.py -@@ -5,8 +5,8 @@ from JSON - - import json - import unittest --import graph --import graph_consts -+from . import graph -+from . import graph_consts - - - def generate_graph(): -@@ -122,15 +122,15 @@ class TestGraphMethods(unittest.TestCase, CustomAssertions): - node = graph.NodeLib("test_node", "test_node") - self.g._nodes = {"test_node": node} - -- self.assertEquals(self.g.get_node("test_node"), node) -+ self.assertEqual(self.g.get_node("test_node"), node) - -- self.assertEquals(self.g.get_node("missing_node"), None) -+ self.assertEqual(self.g.get_node("missing_node"), None) - - def test_add_node(self): - node = graph.NodeLib("test_node", "test_node") - self.g.add_node(node) - -- self.assertEquals(self.g.get_node("test_node"), node) -+ self.assertEqual(self.g.get_node("test_node"), node) - - self.assertRaises(ValueError, self.g.add_node, node) - -@@ -153,16 +153,16 @@ class TestGraphMethods(unittest.TestCase, CustomAssertions): - self.g.add_edge(graph_consts.LIB_FIL, self.from_node_lib.id, - self.to_node_file.id) - -- self.assertEquals(self.g.edges[graph_consts.LIB_LIB][ -+ self.assertEqual(self.g.edges[graph_consts.LIB_LIB][ - self.from_node_lib.id], set([self.to_node_lib.id])) - -- self.assertEquals(self.g.edges[graph_consts.LIB_SYM][ -+ self.assertEqual(self.g.edges[graph_consts.LIB_SYM][ - self.from_node_lib.id], set([self.to_node_sym.id])) - -- self.assertEquals(self.g.edges[graph_consts.LIB_FIL][ -+ self.assertEqual(self.g.edges[graph_consts.LIB_FIL][ - self.from_node_lib.id], set([self.to_node_file.id])) - -- self.assertEquals(self.to_node_lib.dependent_libs, -+ self.assertEqual(self.to_node_lib.dependent_libs, - set([self.from_node_lib.id])) - - def test_add_edge_files(self): -@@ -173,14 +173,14 @@ class TestGraphMethods(unittest.TestCase, CustomAssertions): - self.g.add_edge(graph_consts.FIL_LIB, self.from_node_file.id, - self.to_node_lib.id) - -- self.assertEquals(self.g.edges[graph_consts.FIL_FIL][ -+ self.assertEqual(self.g.edges[graph_consts.FIL_FIL][ - self.from_node_file.id], set([self.to_node_file.id])) -- self.assertEquals(self.g.edges[graph_consts.FIL_SYM][ -+ self.assertEqual(self.g.edges[graph_consts.FIL_SYM][ - self.from_node_file.id], set([self.to_node_sym.id])) -- self.assertEquals(self.g.edges[graph_consts.FIL_LIB][ -+ self.assertEqual(self.g.edges[graph_consts.FIL_LIB][ - self.from_node_file.id], set([self.to_node_lib.id])) - -- self.assertEquals(self.to_node_file.dependent_files, -+ self.assertEqual(self.to_node_file.dependent_files, - set([self.from_node_file.id])) - - def test_export_to_json(self): -@@ -188,7 +188,7 @@ class TestGraphMethods(unittest.TestCase, CustomAssertions): - generated_graph.export_to_json("export_test.json") - generated = open("export_test.json", "r") - correct = open("test_graph.json", "r") -- self.assertEquals(json.load(generated), json.load(correct)) -+ self.assertEqual(json.load(generated), json.load(correct)) - generated.close() - correct.close() - -@@ -205,7 +205,7 @@ class TestGraphMethods(unittest.TestCase, CustomAssertions): - self.assertNodeEquals( - graph_fromJSON.get_node(id), correct_graph.get_node(id)) - -- self.assertEquals(graph_fromJSON.edges, correct_graph.edges) -+ self.assertEqual(graph_fromJSON.edges, correct_graph.edges) - - - if __name__ == '__main__': -diff --git a/site_scons/site_tools/distsrc.py b/site_scons/site_tools/distsrc.py -index 861f5d9e2e..d2dff0b612 100644 ---- a/site_scons/site_tools/distsrc.py -+++ b/site_scons/site_tools/distsrc.py -@@ -20,7 +20,7 @@ import shutil - import tarfile - import time - import zipfile --import StringIO -+import io - - from distutils.spawn import find_executable - -@@ -82,7 +82,7 @@ class DistSrcTarArchive(DistSrcArchive): - - def append_file_contents(self, filename, file_contents, - mtime=time.time(), -- mode=0644, -+ mode=0o644, - uname="root", - gname="root"): - file_metadata = tarfile.TarInfo(name=filename) -@@ -91,7 +91,7 @@ class DistSrcTarArchive(DistSrcArchive): - file_metadata.uname = uname - file_metadata.gname = gname - file_metadata.size = len(file_contents) -- file_buf = StringIO.StringIO(file_contents) -+ file_buf = io.StringIO(file_contents) - if self.archive_mode == 'r': - self.archive_file.close() - self.archive_file = tarfile.open( -@@ -119,7 +119,7 @@ class DistSrcZipArchive(DistSrcArchive): - name=key, - size=item_data.file_size, - mtime=time.mktime(fixed_time), -- mode=0775 if is_dir else 0664, -+ mode=0o775 if is_dir else 0o664, - type=tarfile.DIRTYPE if is_dir else tarfile.REGTYPE, - uid=0, - gid=0, -@@ -129,7 +129,7 @@ class DistSrcZipArchive(DistSrcArchive): - - def append_file_contents(self, filename, file_contents, - mtime=time.time(), -- mode=0644, -+ mode=0o644, - uname="root", - gname="root"): - self.archive_file.writestr(filename, file_contents) -@@ -139,7 +139,7 @@ class DistSrcZipArchive(DistSrcArchive): - - def build_error_action(msg): - def error_stub(target=None, source=None, env=None): -- print msg -+ print(msg) - env.Exit(1) - return [ error_stub ] - -@@ -162,7 +162,7 @@ def distsrc_action_generator(source, target, env, for_signature): - - target_ext = str(target[0])[-3:] - if not target_ext in [ 'zip', 'tar' ]: -- print "Invalid file format for distsrc. Must be tar or zip file" -+ print("Invalid file format for distsrc. Must be tar or zip file") - env.Exit(1) - - git_cmd = "\"%s\" archive --format %s --output %s --prefix ${MONGO_DIST_SRC_PREFIX} HEAD" % ( -diff --git a/site_scons/site_tools/icecream.py b/site_scons/site_tools/icecream.py -index 9838b63349..fdf0c26030 100644 ---- a/site_scons/site_tools/icecream.py -+++ b/site_scons/site_tools/icecream.py -@@ -99,7 +99,7 @@ def generate(env): - suffixes = _CSuffixes + _CXXSuffixes - for object_builder in SCons.Tool.createObjBuilders(env): - emitterdict = object_builder.builder.emitter -- for suffix in emitterdict.iterkeys(): -+ for suffix in emitterdict.keys(): - if not suffix in suffixes: - continue - base = emitterdict[suffix] -diff --git a/site_scons/site_tools/idl_tool.py b/site_scons/site_tools/idl_tool.py -index 78bedfaa74..628f345361 100755 ---- a/site_scons/site_tools/idl_tool.py -+++ b/site_scons/site_tools/idl_tool.py -@@ -47,7 +47,7 @@ def idl_scanner(node, env, path): - - deps_list = deps_str.splitlines() - -- nodes_deps_list = [ env.File(d) for d in deps_list] -+ nodes_deps_list = [ env.File(d.decode("utf-8")) for d in deps_list] - nodes_deps_list.extend(env.Glob('#buildscripts/idl/*.py')) - nodes_deps_list.extend(env.Glob('#buildscripts/idl/idl/*.py')) - -diff --git a/site_scons/site_tools/jstoh.py b/site_scons/site_tools/jstoh.py -index dc90b324b2..567958a50f 100644 ---- a/site_scons/site_tools/jstoh.py -+++ b/site_scons/site_tools/jstoh.py -@@ -1,3 +1,5 @@ -+from __future__ import unicode_literals -+ - import os - import sys - -@@ -39,8 +41,8 @@ def jsToHeader(target, source): - - text = '\n'.join(h) - -- print "writing: %s" % outFile -- with open(outFile, 'wb') as out: -+ print("writing: %s" % outFile) -+ with open(outFile, 'w') as out: - try: - out.write(text) - finally: -@@ -49,7 +51,7 @@ def jsToHeader(target, source): - - if __name__ == "__main__": - if len(sys.argv) < 3: -- print "Must specify [target] [source] " -+ print("Must specify [target] [source] ") - sys.exit(1) - - jsToHeader(sys.argv[1], sys.argv[2:]) -diff --git a/site_scons/site_tools/mongo_benchmark.py b/site_scons/site_tools/mongo_benchmark.py -index 7c12627bc4..16fc1045c1 100644 ---- a/site_scons/site_tools/mongo_benchmark.py -+++ b/site_scons/site_tools/mongo_benchmark.py -@@ -14,7 +14,7 @@ def benchmark_list_builder_action(env, target, source): - ofile = open(str(target[0]), 'wb') - try: - for s in _benchmarks: -- print '\t' + str(s) -+ print('\t' + str(s)) - ofile.write('%s\n' % s) - finally: - ofile.close() -diff --git a/site_scons/site_tools/mongo_integrationtest.py b/site_scons/site_tools/mongo_integrationtest.py -index ff9a5f451b..fccbbebb47 100644 ---- a/site_scons/site_tools/mongo_integrationtest.py -+++ b/site_scons/site_tools/mongo_integrationtest.py -@@ -12,10 +12,10 @@ def register_integration_test(env, test): - env.Alias('$INTEGRATION_TEST_ALIAS', installed_test) - - def integration_test_list_builder_action(env, target, source): -- ofile = open(str(target[0]), 'wb') -+ ofile = open(str(target[0]), 'w') - try: - for s in _integration_tests: -- print '\t' + str(s) -+ print('\t' + str(s)) - ofile.write('%s\n' % s) - finally: - ofile.close() -diff --git a/site_scons/site_tools/mongo_unittest.py b/site_scons/site_tools/mongo_unittest.py -index ec99ab2d45..a4185a6b41 100644 ---- a/site_scons/site_tools/mongo_unittest.py -+++ b/site_scons/site_tools/mongo_unittest.py -@@ -11,10 +11,10 @@ def register_unit_test(env, test): - env.Alias('$UNITTEST_ALIAS', test) - - def unit_test_list_builder_action(env, target, source): -- ofile = open(str(target[0]), 'wb') -+ ofile = open(str(target[0]), 'w') - try: - for s in _unittests: -- print '\t' + str(s) -+ print('\t' + str(s)) - ofile.write('%s\n' % s) - finally: - ofile.close() -diff --git a/site_scons/site_tools/split_dwarf.py b/site_scons/site_tools/split_dwarf.py -index 95130c9e9a..c02d78619f 100644 ---- a/site_scons/site_tools/split_dwarf.py -+++ b/site_scons/site_tools/split_dwarf.py -@@ -52,7 +52,7 @@ def generate(env): - - for object_builder in SCons.Tool.createObjBuilders(env): - emitterdict = object_builder.builder.emitter -- for suffix in emitterdict.iterkeys(): -+ for suffix in emitterdict.keys(): - if not suffix in suffixes: - continue - base = emitterdict[suffix] -diff --git a/site_scons/site_tools/thin_archive.py b/site_scons/site_tools/thin_archive.py -index 511c0ef6e5..0d8a83b83a 100644 ---- a/site_scons/site_tools/thin_archive.py -+++ b/site_scons/site_tools/thin_archive.py -@@ -41,7 +41,7 @@ def exists(env): - for line in pipe.stdout: - if isgnu: - continue # consume all data -- isgnu = re.search(r'^GNU ar', line) -+ isgnu = re.search(b'^GNU ar', line) - - return bool(isgnu) - -diff --git a/site_scons/site_tools/xcode.py b/site_scons/site_tools/xcode.py -index 9ec68c3547..5ddebb2e00 100644 ---- a/site_scons/site_tools/xcode.py -+++ b/site_scons/site_tools/xcode.py -@@ -9,4 +9,4 @@ def generate(env): - - if 'DEVELOPER_DIR' in os.environ: - env['ENV']['DEVELOPER_DIR'] = os.environ['DEVELOPER_DIR'] -- print "NOTE: Xcode detected; propagating DEVELOPER_DIR from shell environment to subcommands" -+ print("NOTE: Xcode detected; propagating DEVELOPER_DIR from shell environment to subcommands") -diff --git a/src/mongo/SConscript b/src/mongo/SConscript -index 9c340ac2f8..617415ea4a 100644 ---- a/src/mongo/SConscript -+++ b/src/mongo/SConscript -@@ -157,7 +157,7 @@ js_engine_ver = get_option("js-engine") if get_option("server-js") == "on" else - - # On windows, we need to escape the backslashes in the command-line - # so that windows paths look okay. --cmd_line = " ".join(sys.argv).encode('string-escape') -+cmd_line = " ".join(sys.argv).encode('unicode_escape') - if env.TargetOSIs('windows'): - cmd_line = cmd_line.replace('\\', r'\\') - -@@ -604,7 +604,7 @@ env.Append(MODULE_BANNERS = [distsrc.File('README'), - distsrc.File('MPL-2')]) - - # If no module has introduced a file named LICENSE.txt, then inject the AGPL. --if sum(itertools.imap(lambda x: x.name == "LICENSE.txt", env['MODULE_BANNERS'])) == 0: -+if sum(map(lambda x: x.name == "LICENSE.txt", env['MODULE_BANNERS'])) == 0: - env.Append(MODULE_BANNERS = [distsrc.File('GNU-AGPL-3.0')]) - - # All module banners get staged to the top level of the tarfile, so we -@@ -623,7 +623,7 @@ module_banner_transforms = ["--transform %s=$SERVER_DIST_BASENAME" % d for d in - # Allow modules to map original file name directories to subdirectories - # within the archive (e.g. { "src/mongo/db/modules/enterprise/docs": "snmp"}) - archive_addition_transforms = [] --for full_dir, archive_dir in env["ARCHIVE_ADDITION_DIR_MAP"].items(): -+for full_dir, archive_dir in list(env["ARCHIVE_ADDITION_DIR_MAP"].items()): - archive_addition_transforms.append("--transform \"%s=$SERVER_DIST_BASENAME/%s\"" % - (full_dir, archive_dir)) - -diff --git a/src/mongo/base/generate_error_codes.py b/src/mongo/base/generate_error_codes.py -index 420ee964ff..b704767a01 100644 ---- a/src/mongo/base/generate_error_codes.py -+++ b/src/mongo/base/generate_error_codes.py -@@ -26,6 +26,8 @@ - # delete this exception statement from all source files in the program, - # then also delete it in the license file. - -+from __future__ import unicode_literals -+ - """Generate error_codes.{h,cpp} from error_codes.err. - - Format of error_codes.err: -@@ -93,7 +95,7 @@ def main(argv): - categories=error_classes, - ) - -- with open(output, 'wb') as outfile: -+ with open(output, 'w') as outfile: - outfile.write(text) - - def die(message=None): -diff --git a/src/mongo/db/auth/generate_action_types.py b/src/mongo/db/auth/generate_action_types.py -index b712b29666..39252ed293 100755 ---- a/src/mongo/db/auth/generate_action_types.py -+++ b/src/mongo/db/auth/generate_action_types.py -@@ -227,7 +227,7 @@ def hasDuplicateActionTypes(actionTypes): - prevActionType = sortedActionTypes[0] - for actionType in sortedActionTypes[1:]: - if actionType == prevActionType: -- print 'Duplicate actionType %s\n' % actionType -+ print('Duplicate actionType %s\n' % actionType) - didFail = True - prevActionType = actionType - -@@ -240,7 +240,7 @@ def parseActionTypesFromFile(actionTypesFilename): - - if __name__ == "__main__": - if len(sys.argv) != 4: -- print "Usage: generate_action_types.py
" -+ print("Usage: generate_action_types.py
") - sys.exit(-1) - - actionTypes = parseActionTypesFromFile(sys.argv[1]) -diff --git a/src/mongo/db/fts/generate_stop_words.py b/src/mongo/db/fts/generate_stop_words.py -index e0dc801ca9..e0aad760e8 100644 ---- a/src/mongo/db/fts/generate_stop_words.py -+++ b/src/mongo/db/fts/generate_stop_words.py -@@ -7,7 +7,7 @@ def generate( header, source, language_files ): - for x in language_files: - print( "\t%s" % x ) - -- out = open( header, "wb" ) -+ out = open( header, "w" ) - out.write( """ - #pragma once - #include -@@ -24,7 +24,7 @@ namespace fts { - - - -- out = open( source, "wb" ) -+ out = open( source, "w" ) - out.write( '#include "%s"' % header.rpartition( "/" )[2].rpartition( "\\" )[2] ) - out.write( """ - namespace mongo { -@@ -40,7 +40,7 @@ namespace fts { - out.write( ' // %s\n' % l_file ) - out.write( ' {\n' ) - out.write( ' const char* const words[] = {\n' ) -- for word in open( l_file, "rb" ): -+ for word in open( l_file, "r" ): - out.write( ' "%s",\n' % word.strip() ) - out.write( ' };\n' ) - out.write( ' const size_t wordcnt = sizeof(words) / sizeof(words[0]);\n' ) -diff --git a/src/mongo/db/fts/unicode/gen_diacritic_map.py b/src/mongo/db/fts/unicode/gen_diacritic_map.py -index 08cfa95cda..7c623aff60 100644 ---- a/src/mongo/db/fts/unicode/gen_diacritic_map.py -+++ b/src/mongo/db/fts/unicode/gen_diacritic_map.py -@@ -45,7 +45,7 @@ def add_diacritic_mapping(codepoint): - # c : recomposed unicode character with diacritics removed - a = chr(codepoint) - d = normalize('NFD', a) -- r = u'' -+ r = '' - - for i in range(len(d)): - if ord(d[i]) not in diacritics: -diff --git a/src/mongo/db/query/collation/generate_icu_init_cpp.py b/src/mongo/db/query/collation/generate_icu_init_cpp.py -index 8ae084aeec..7c576f6ffe 100755 ---- a/src/mongo/db/query/collation/generate_icu_init_cpp.py -+++ b/src/mongo/db/query/collation/generate_icu_init_cpp.py -@@ -26,6 +26,9 @@ - # delete this exception statement from all source files in the program, - # then also delete it in the license file. - -+from __future__ import unicode_literals -+ -+import array - import optparse - import os - import sys -@@ -110,8 +113,8 @@ MONGO_INITIALIZER(LoadICUData)(InitializerContext* context) { - ''' - decimal_encoded_data = '' - with open(data_file_path, 'rb') as data_file: -- decimal_encoded_data = ','.join([str(ord(byte)) for byte in data_file.read()]) -- with open(cpp_file_path, 'wb') as cpp_file: -+ decimal_encoded_data = ','.join([str(byte) for byte in array.array("B", data_file.read()).tolist()]) -+ with open(cpp_file_path, 'w') as cpp_file: - cpp_file.write(source_template % dict(decimal_encoded_data=decimal_encoded_data)) - - if __name__ == '__main__':