From da70217b325c3cd6cebddbddae20e90449725e5b Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Fri, 12 Apr 2024 12:21:04 +0300 Subject: [PATCH] import mongodb-3.6.8-1.module_el8.0.0+31+fdc76a87 --- .gitignore | 1 + .mongodb.metadata | 1 + SOURCES/32bit-support.patch | 45 + SOURCES/README | 57 + SOURCES/boost-1.66.patch | 18 + SOURCES/mongod.conf | 119 + SOURCES/mongod.init | 170 + SOURCES/mongod.service | 15 + SOURCES/mongod.sysconf | 5 + SOURCES/mongodb-tmpfile | 3 + SOURCES/mongodb.logrotate | 12 + SOURCES/mongos.conf | 86 + SOURCES/mongos.init | 170 + SOURCES/mongos.service | 15 + SOURCES/mongos.sysconf | 5 + SOURCES/ppc64-altivec.patch | 13 + SOURCES/ppc64-arm-i386-mozjs-code.patch | 7079 ++++++++++++++++++++++ SOURCES/ppc64.patch | 76 + SOURCES/ppc64le-fix-altivec.patch | 13 + SOURCES/python3-buildscripts-tests.patch | 1798 ++++++ SPECS/mongodb.spec | 1226 ++++ 21 files changed, 10927 insertions(+) create mode 100644 .gitignore create mode 100644 .mongodb.metadata create mode 100644 SOURCES/32bit-support.patch create mode 100644 SOURCES/README create mode 100644 SOURCES/boost-1.66.patch create mode 100644 SOURCES/mongod.conf create mode 100644 SOURCES/mongod.init create mode 100644 SOURCES/mongod.service create mode 100644 SOURCES/mongod.sysconf create mode 100644 SOURCES/mongodb-tmpfile create mode 100644 SOURCES/mongodb.logrotate create mode 100644 SOURCES/mongos.conf create mode 100644 SOURCES/mongos.init create mode 100644 SOURCES/mongos.service create mode 100644 SOURCES/mongos.sysconf create mode 100644 SOURCES/ppc64-altivec.patch create mode 100644 SOURCES/ppc64-arm-i386-mozjs-code.patch create mode 100644 SOURCES/ppc64.patch create mode 100644 SOURCES/ppc64le-fix-altivec.patch create mode 100644 SOURCES/python3-buildscripts-tests.patch create mode 100644 SPECS/mongodb.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6818d78 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/r3.6.8.tar.gz diff --git a/.mongodb.metadata b/.mongodb.metadata new file mode 100644 index 0000000..7feefe6 --- /dev/null +++ b/.mongodb.metadata @@ -0,0 +1 @@ +ef2fdf8750a10af58a78cde3aeaa38790c353d42 SOURCES/r3.6.8.tar.gz diff --git a/SOURCES/32bit-support.patch b/SOURCES/32bit-support.patch new file mode 100644 index 0000000..1201d5c --- /dev/null +++ b/SOURCES/32bit-support.patch @@ -0,0 +1,45 @@ +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/SOURCES/README b/SOURCES/README new file mode 100644 index 0000000..6ad77fc --- /dev/null +++ b/SOURCES/README @@ -0,0 +1,57 @@ +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/SOURCES/boost-1.66.patch b/SOURCES/boost-1.66.patch new file mode 100644 index 0000000..17a183e --- /dev/null +++ b/SOURCES/boost-1.66.patch @@ -0,0 +1,18 @@ +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/SOURCES/mongod.conf b/SOURCES/mongod.conf new file mode 100644 index 0000000..46beac3 --- /dev/null +++ b/SOURCES/mongod.conf @@ -0,0 +1,119 @@ +## +## 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/SOURCES/mongod.init b/SOURCES/mongod.init new file mode 100644 index 0000000..ee1df3e --- /dev/null +++ b/SOURCES/mongod.init @@ -0,0 +1,170 @@ +#!/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/SOURCES/mongod.service b/SOURCES/mongod.service new file mode 100644 index 0000000..1281d4c --- /dev/null +++ b/SOURCES/mongod.service @@ -0,0 +1,15 @@ +[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/SOURCES/mongod.sysconf b/SOURCES/mongod.sysconf new file mode 100644 index 0000000..e2e3587 --- /dev/null +++ b/SOURCES/mongod.sysconf @@ -0,0 +1,5 @@ +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/SOURCES/mongodb-tmpfile b/SOURCES/mongodb-tmpfile new file mode 100644 index 0000000..634b44e --- /dev/null +++ b/SOURCES/mongodb-tmpfile @@ -0,0 +1,3 @@ +# 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/SOURCES/mongodb.logrotate b/SOURCES/mongodb.logrotate new file mode 100644 index 0000000..8df6558 --- /dev/null +++ b/SOURCES/mongodb.logrotate @@ -0,0 +1,12 @@ +/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/SOURCES/mongos.conf b/SOURCES/mongos.conf new file mode 100644 index 0000000..b460fe8 --- /dev/null +++ b/SOURCES/mongos.conf @@ -0,0 +1,86 @@ +## +## 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/SOURCES/mongos.init b/SOURCES/mongos.init new file mode 100644 index 0000000..bc770de --- /dev/null +++ b/SOURCES/mongos.init @@ -0,0 +1,170 @@ +#!/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/SOURCES/mongos.service b/SOURCES/mongos.service new file mode 100644 index 0000000..6dae7aa --- /dev/null +++ b/SOURCES/mongos.service @@ -0,0 +1,15 @@ +[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/SOURCES/mongos.sysconf b/SOURCES/mongos.sysconf new file mode 100644 index 0000000..8741ddd --- /dev/null +++ b/SOURCES/mongos.sysconf @@ -0,0 +1,5 @@ +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/SOURCES/ppc64-altivec.patch b/SOURCES/ppc64-altivec.patch new file mode 100644 index 0000000..c027f5b --- /dev/null +++ b/SOURCES/ppc64-altivec.patch @@ -0,0 +1,13 @@ +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/SOURCES/ppc64-arm-i386-mozjs-code.patch b/SOURCES/ppc64-arm-i386-mozjs-code.patch new file mode 100644 index 0000000..e36ba29 --- /dev/null +++ b/SOURCES/ppc64-arm-i386-mozjs-code.patch @@ -0,0 +1,7079 @@ +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/SOURCES/ppc64.patch b/SOURCES/ppc64.patch new file mode 100644 index 0000000..663bcc4 --- /dev/null +++ b/SOURCES/ppc64.patch @@ -0,0 +1,76 @@ +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/SOURCES/ppc64le-fix-altivec.patch b/SOURCES/ppc64le-fix-altivec.patch new file mode 100644 index 0000000..314ef45 --- /dev/null +++ b/SOURCES/ppc64le-fix-altivec.patch @@ -0,0 +1,13 @@ +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/SOURCES/python3-buildscripts-tests.patch b/SOURCES/python3-buildscripts-tests.patch new file mode 100644 index 0000000..0e33963 --- /dev/null +++ b/SOURCES/python3-buildscripts-tests.patch @@ -0,0 +1,1798 @@ +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__': diff --git a/SPECS/mongodb.spec b/SPECS/mongodb.spec new file mode 100644 index 0000000..96f8dab --- /dev/null +++ b/SPECS/mongodb.spec @@ -0,0 +1,1226 @@ +%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 +ExclusiveArch: %{upstream_arches} +%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.