Hi Ronald -
Nice work, thanks for letting us know. A few comments:
- The Intel library changes look reasonable.
- The change to exclude extract/js/src/jit/ProcessExecutableMemory.cpp seems reasonable, but it looks like it has already been done on master.
- The addition of the MozJS freebsd/aarch64 files for that platform looks correct.
- The WT crc32 support changes look OK, except that I'd expect the hardware CRC32 support to actually work. In our CI and release environment, we build mongodb with CCFLAGS="-march=armv8-a+crc". I'm not sure if the FreeBSD/aarch64 port is allowed to assume the presence of the CRC functional units. But if so, you can probably add that (or the clang analogue?) to your port options and drop this change.
In terms of getting things merged, I think the Intel library changes could likely be merged to HEAD. I think the MozJS SConscript change will prove unneeded on HEAD. We probably would not merge the addition of the FreeBSD/aarch64 generated mozjs sources, because we lack a CI environment in which to ensure they continue to work. The WT changes I think require some more information before we can make a decision: please also see
https://jira.mongodb.org/browse/SERVER-30893. It is possible we should be doing a better job here of detecting whether the hardware CRC32 support is actually available, rather than assuming it, and that could certainly be landed on master.
Most likely we wouldn't backport those changes to the v3.4 though branch, so I think you will need to hold on to changes on your side either way.
Do you also have patches for MongoDB v3.6 and v4.0?
Thanks,
Andrew