[Debichem-devel] Bug#992180: Bug#992180: Bug#992180: MR with fix available Re: openmm FTBFS on amd64/arm64/ppc64el

Andrius Merkys merkys at debian.org
Fri Nov 24 15:40:12 GMT 2023


Hi Michael,

On 2023-11-24 09:30, Andrius Merkys wrote:
> On 2023-11-23 19:25, Michael R. Crusoe wrote:
>> It won't fix the FTBFS on armel / armhf; that's due to them being 
>> detected as arm64 and inappropriate NEON intrinsics being used
> 
> Thanks for spotting this, I will give it a look, although I understand 
> very little about vectorization.

I successfully patched the build on armel by leaving NEON vectorization 
for arm64 only:

--- a/libraries/vecmath/src/vecmath.cpp
+++ b/libraries/vecmath/src/vecmath.cpp
@@ -1,4 +1,4 @@
-#if defined(__ARM__) || defined(__ARM64__)
+#if defined(__ARM64__)
      #include "neon_mathfun.h"
  #else
      #if !defined(__PNACL__)
--- a/openmmapi/include/openmm/internal/vectorize.h
+++ b/openmmapi/include/openmm/internal/vectorize.h
@@ -32,7 +32,7 @@
   * USE OR OTHER DEALINGS IN THE SOFTWARE. 
        *
   * 
-------------------------------------------------------------------------- 
*/

-#if defined(__ARM__) || defined(__ARM64__)
+#if defined(__ARM64__)
      #include "vectorize_neon.h"
  #elif defined(__PPC__)
      #include "vectorize_ppc.h"

Build on armel succeeded, however, some tests segfault:

The following tests FAILED:
	 10 - TestReferenceCustomCentroidBondForce (SEGFAULT)
	 11 - TestReferenceCustomCompoundBondForce (SEGFAULT)
	 12 - TestReferenceCustomExternalForce (SEGFAULT)
	 13 - TestReferenceCustomGBForce (SEGFAULT)
	 15 - TestReferenceCustomIntegrator (SEGFAULT)
	 16 - TestReferenceCustomManyParticleForce (SEGFAULT)
	 17 - TestReferenceCustomNonbondedForce (Subprocess aborted)
	 18 - TestReferenceCustomTorsionForce (SEGFAULT)
	 69 - TestReferenceRpmd (Timeout)
	110 - TestParser (SEGFAULT)

I gave TestParser a look with gdb:

(gdb) run
Starting program: 
/home/merkys/openmm-8.0.0+dfsg/obj-arm-linux-gnueabi/TestParser
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabi/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
Lepton::CompiledExpression::generateTwoArgCall 
(this=this at entry=0xbefff004, c=..., dest=..., arg1=..., arg2=..., 
function=<optimized out>) at 
./libraries/lepton/src/CompiledExpression.cpp:511
511	    invoke->setArg(0, arg1);
(gdb) print arg1
$1 = (asmjit::_abi_1_9::arm::Vec &) @0x4186f8: 
{<asmjit::_abi_1_9::arm::Reg> = {<asmjit::_abi_1_9::BaseReg> = 
{<asmjit::_abi_1_9::Operand> = {<asmjit::_abi_1_9::Operand_> = 
{_signature = {_bits = 0},
           _baseId = 0, _data = {0, 0}}, <No data fields>}, <No data 
fields>}, <No data fields>}, <No data fields>}

My wild guess is that asmjit is incompatible with armel/armhf as in 
standalone asmjit (see #1049872). Building openmm without asmjit support 
seems possible, I will try that.

Best,
Andrius



More information about the Debichem-devel mailing list