The seqan-2.4.0 deb package in their Github release does not work on ARM. libseqan2-dev is available in the default Ubuntu repository starting with Ubuntu 20.04 LTS. This package can be used for both X86 and ARM. So here's what I have done ...
Ubuntu versions older than 20.04 LTS are now deemed "old OS".
Building on ARM64 & "old OS" is not supported. The InstallPrerequisites-Ubuntu.sh script will complain and bail.
ARM64
Uses portable SPOA
Compiles Shasta without the -mcx16 flag resulting in a sub-optimal implementation of __sync_bool_compare_and_swap
X86
Uses SPOA with CPU dispatch for Ubuntu 20.04 LTS. Uses portable SPOA for "old OS".
Compiles Shasta with the -mcx16 flag for optimal implementation of __sync_bool_compare_and_swap
These choices seem reasonable because shasta-Linux is generated on Ubuntu 20.04 LTS. The only regression here will be for Ubuntu 18.04 LTS users, who will have to use the portable version of SPOA when they build from source.
Test Plan:
Github actions ran regression tests on x86_64.
I was able to build from source on a Graviton instance in AWS (on aarch64).
The seqan-2.4.0 deb package in their Github release does not work on ARM.
libseqan2-dev
is available in the default Ubuntu repository starting with Ubuntu 20.04 LTS. This package can be used for both X86 and ARM. So here's what I have done ...InstallPrerequisites-Ubuntu.sh
script will complain and bail.-mcx16
flag resulting in a sub-optimal implementation of__sync_bool_compare_and_swap
-mcx16
flag for optimal implementation of__sync_bool_compare_and_swap
These choices seem reasonable because
shasta-Linux
is generated on Ubuntu 20.04 LTS. The only regression here will be for Ubuntu 18.04 LTS users, who will have to use the portable version of SPOA when they build from source.Test Plan:
aarch64
).