-
Notifications
You must be signed in to change notification settings - Fork 17
Description
Tracking issue for https://github.com/MerosCrypto/Meros/tree/platform-support.
Ubuntu 18.04 and 20.04 should work without issue.
Arch Linux should work without issue.
- Windows isn't supported.
- Ubuntu 14.04 fails to compile mc_minisketch.
macOS has several issues.
- M1 machines don't support choosenim.
- M1 machines don't support JIT RandomX. Meros will segfault when attempting this. https://github.com/MerosCrypto/mc_randomx should disable the JIT flag, which is automatically suggested, for us. We should also add checks to it for null pointers being returned and throw proper exceptions.
-
-z muldefsis used due to our multiple Rust libraries. This flag doesn't exist on macOS and isn't needed. - https://github.com/MerosCrypto/mc_wry links with
-framework WebKit.CoreFoundation,CoreGraphics,CoreVideo,ColorSync, andAppKitare also needed frameworks. - The tests expect a
.sofile extension when not on Windows; macOS uses.dylib. I'm curious which BSD uses as well. - Pylint can't find the MultilineExpansionChecker. I have no idea why a scripted environment has difficulty here yet it does.
- Python's Milagro needs to manually import libamcl_core.
- argon2 Python package doesn't work due to _ffi not being available.
- The WalletDB test fails due to an LMDB error;
booting Meros causes26 (invalid data!)to be printed which is another LMDB error. - Meros consistently prints
26 (invalid data!)on macOS. - ULimit code does not work, instead always returning 10/11 open FDs.
- Pylint has several false positives for some reason.
And there may be more I have yet to find. I also needed to set a manual CPATH/LIBRARY_PATH so gmpy2 would build. I installed the dependencies with brew install gmp mpfr libmpc and it worked without issue, yet after rebooting, and deciding to rebuild on Python 3.8 instead of 3.9 as an experiment, I needed to set a CPATH for gmp and LIBRARY_PATH for all three...
Windows hasn't been supported in ages. I have no idea if we'll want to go with msvc or mingw when we add support for it. While it'd be great to say "MS ecosystem! msvc!", I do remember msvc has some quirks, such as not supporting C99, and I believe horrible CMake integration. That said, the last system I tried on had so much development cruft it's hard to actually say. Multiple libraries only have Linux build instructions. We also don't support tracking file handles on Windows, so Meros will fail to build there as well.