Skip to content

All: Cross platform support

Paula edited this page Nov 16, 2017 · 2 revisions

NeuroField development is currently based on Linux systems. However, NeuroField has been run successfully on MacOS. Unfortunately, we have tested the code under Windows.

Some options below


Linux

If you get the following error

Error: suffix or operands invalid for (something), Error: no such instruction:

We have seen this error on some of the newest School of Physics machines. The error looks like

/tmp/ccbp1n2t.s:2093: Error: suffix or operands invalid for `vpand'

or

/tmp/ccOwep2t.s:4537: Error: no such instruction: `vpermpd $27,(%rdi),%ymm4'

The root cause of this problem is an old version of the as tool included in GNU binutils. If you are on a School of Physics system, this problem can be resolved by using a newer version. If you are managing your own system, you should ensure that the binutils package is up to date. As a temporary solution, this can be fixed by removing the march=native and mtune=native switches from the GCC command in the makefile.

Windows

1) Get the binary on a Linux system using mingw-w64

We have not tested compiling NeuroField in Visual Studio or with any compiler other than GCC. We have successfully built and run NeuroField for Windows by using the mingw cross compiler, which runs on Linux. In Arch Linux, the relevant package is mingw-w64. After installing mingw, the compiler command is

x86_64-w64-mingw32-g++ -lm -Wall -O3 -msse -msse2 -msse3 -mfpmath=sse -funroll-loops -flto -m64 -std=gnu++11 -static -static-libgcc -static-libstdc++

Most of the command flags are present from the standard compiler command, except those relating to tuning based on the native architecture. The most important thing is static linking of libgcc and libstdc++. If the static switches are omitted, you will have to find the relevant DLLs on the Linux system, and copy them along with the _NeuroField _ binary to the Windows system that NeuroField is being run on.

2) If you are using 64-bit Windows 10 Anniversary Update or later (build 1607+)

You're lucky!. You can install a Linux subsystem under Windows and run NeuroField following the regular installation and compiling instructions.

3) Create a Virtual Machine

Here are some useful links to instructions on how to get a VM going.

4) Don't use Windows

Seriously. Don't. Just switch to Linux already.