plumed/plumed2

`asmjit` supported architectures

casparvl opened this issue · 4 comments

I was building PLUMED 2.7.3 on an aarch64 architecture (neoverse_v1 and neoverse_n1, using the configure line:

./configure --prefix=/tmp/easybuild/software/PLUMED/2.7.3-foss-2021b  --build=aarch64-unknown-linux-gnu  --host=aarch64-unknown-linux-gnu --exec-prefix=/tmp/easybuild/software/PLUMED/2.7.3-foss-2021b --enable-gsl --enable-modules=all --enable-python --enable-boost_graph --enable-boost_serialization --enable-asmjit 

This build ran into an error

In file included from ./././codeholder.h:37,
                 from ././codeemitter.h:37,
                 from ./assembler.h:36,
                 from assembler.cpp:33:
././././func.h:210:3: error: #error "[asmjit] Couldn't determine the target's calling convention."
  210 | # error "[asmjit] Couldn't determine the target's calling convention."
      |   ^~~~~
make[6]: *** [../maketools/make.rules:16: assembler.o] Error 1
make[6]: Leaving directory '/tmp/easybuild/easybuild/build/PLUMED/2.7.3/foss-2021b/plumed-2.7.3/src/asmjit'
make[5]: *** [Makefile:423: ../asmjit] Error 2
make[5]: *** Waiting for unfinished jobs....

This made me wonder on which architectures asmjit is supported for PLUMED. I found this for conda which suggests that ppc64le and aarch64 are not supported by PLUMED's asmjit.

Is there a support matrix of PLUMED versions and supported architectures for the asmjit functionality? I could not find something like this in the official documentation, hoping someone here can tell me :)

Hey Giovanni,

Thanks for the quick response! Those macro's are pretty clear, indeed means it won't work for aarch64.

From what you're saying about the automatic enablement of asmjit from 2.8 onwards (just checking if I got that right): I guess that means

  • for Plumed <2.8, one has to check if one is on an architecture listed by that macro. If so, pass --enable-asmjit explicitely. If not, don't set --enable-asmjit, as it will lead to the error I encountered.
  • And if I ever want to build Plumed >= 2.8, I better just leave out the flag, and rely on the macro detection by the ./configure script alltogether

right?

Yes this is correct

Thanks again! I'll close this issue, all is clear :)