summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2021-02-05 12:19:37 -0500
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-02-11 17:32:01 +0000
commitf4b7d9465834ab88e25190088512c1a46131b57d (patch)
tree993691863ee081e16ab5476b5fb9925f6ec83705
parentb731eff97e575dfc6673065eb61cf26bd7644f58 (diff)
downloadmongo-f4b7d9465834ab88e25190088512c1a46131b57d.tar.gz
SERVER-53744 Fix build on FreeBSD/powerpc64le.
Changes done: 1. Patch MozJS registers for R01_sig and R32_sig on FreeBSD/powerpc64le. 2. Add stanza for ppc64le/freebsd to extract script. Signed-off-by: Andrew Morrow <acm@mongodb.com> Closes #1390
-rwxr-xr-xsrc/third_party/mozjs-60/extract.sh1
-rwxr-xr-xsrc/third_party/mozjs-60/gen-config.sh3
-rw-r--r--src/third_party/mozjs-60/patches/freebsd-powerpc64le-fix.patch15
3 files changed, 19 insertions, 0 deletions
diff --git a/src/third_party/mozjs-60/extract.sh b/src/third_party/mozjs-60/extract.sh
index 4ae30ee6a78..6c02d830ce0 100755
--- a/src/third_party/mozjs-60/extract.sh
+++ b/src/third_party/mozjs-60/extract.sh
@@ -220,3 +220,4 @@ patch -p4 < patches/big-endian-fixes.patch
patch -p4 < patches/windows-Time.cpp-GetModuleHandle.patch
patch -p4 < patches/JSGCConfig.patch
patch -p4 < patches/struct-hasher.patch
+patch -p4 < patches/freebsd-powerpc64le-fix.patch
diff --git a/src/third_party/mozjs-60/gen-config.sh b/src/third_party/mozjs-60/gen-config.sh
index 76533e49fc3..c1ad3efa546 100755
--- a/src/third_party/mozjs-60/gen-config.sh
+++ b/src/third_party/mozjs-60/gen-config.sh
@@ -31,6 +31,9 @@ case "$_Path" in
"platform/aarch64/linux")
_CONFIG_OPTS="--host=aarch64-linux"
;;
+ "platform/ppc64le/freebsd")
+ _CONFIG_OPTS="--host=ppc64le-freebsd"
+ ;;
"platform/ppc64le/linux")
_CONFIG_OPTS="--host=ppc64le-linux"
;;
diff --git a/src/third_party/mozjs-60/patches/freebsd-powerpc64le-fix.patch b/src/third_party/mozjs-60/patches/freebsd-powerpc64le-fix.patch
new file mode 100644
index 00000000000..ff065a7b8a4
--- /dev/null
+++ b/src/third_party/mozjs-60/patches/freebsd-powerpc64le-fix.patch
@@ -0,0 +1,15 @@
+diff --git a/src/third_party/mozjs-60/extract/js/src/wasm/WasmSignalHandlers.cpp b/src/third_party/mozjs-60/extract/js/src/wasm/WasmSignalHandlers.cpp
+index b35461579c..0cd89e301d 100644
+--- a/src/third_party/mozjs-60/extract/js/src/wasm/WasmSignalHandlers.cpp
++++ b/src/third_party/mozjs-60/extract/js/src/wasm/WasmSignalHandlers.cpp
+@@ -263,6 +263,10 @@ struct AutoSignalHandler
+ # define EPC_sig(p) ((p)->uc_mcontext.mc_pc)
+ # define RFP_sig(p) ((p)->uc_mcontext.mc_regs[30])
+ # endif
++# if defined(__FreeBSD__) && defined(__powerpc64__)
++# define R01_sig(p) ((p)->uc_mcontext.mc_frame[1])
++# define R32_sig(p) ((p)->uc_mcontext.mc_srr0)
++# endif
+ #elif defined(XP_DARWIN)
+ # define EIP_sig(p) ((p)->uc_mcontext->__ss.__eip)
+ # define EBP_sig(p) ((p)->uc_mcontext->__ss.__ebp)