<pre>Hi Jon,</pre><pre><br></pre><pre>First of all, thanks for doing this.</pre><pre><br></pre><pre>Now on to some picky feedback:</pre><pre>- The only current difference between the ARMV6 and the ARMV7 versions is the use of cp15</pre>
<pre>  or DMB in the standalone barrier functions. Could this not be done through some sort of</pre><pre>  macro instead?</pre><pre>- If we&#39;re playing around in here, might as well add support for (32-bit) ARMv8?</pre>
<pre>- Can you not set ompi_cv_asm__arch to the target file name rather than copying around?</pre><pre><br></pre><pre>Together, this could end up with a config patchset something like (freehanded, not tested):</pre><pre>---</pre>
<pre>        armv8*|armv7*)
            ompi_cv_asm_arch=&quot;ARM&quot;
            OPAL_ASM_SUPPORT_64BIT=1
            OPAL_ASM_ARM_VERSION=7
            AC_DEFINE_UNQUOTED([OPAL_ASM_ARM_VERSION], [$OPAL_ASM_ARM_VERSION],
                               [What ARM assembly version to use])
            OMPI_GCC_INLINE_ASSIGN=&#39;&quot;mov %0, #0&quot; : &quot;=&amp;r&quot;(ret)&#39;
            ;;

        armv6*)
            ompi_cv_asm_arch=&quot;ARM&quot;
            OPAL_ASM_SUPPORT_64BIT=0
            OPAL_ASM_ARM_VERSION=6
            AC_DEFINE_UNQUOTED([OPAL_ASM_ARM_VERSION], [$OPAL_ASM_ARM_VERSION],
                               [What ARM assembly version to use])
            OMPI_GCC_INLINE_ASSIGN=&#39;&quot;mov %0, #0&quot; : &quot;=&amp;r&quot;(ret)&#39;
            ;;

        armv5*linux*|armv4*linux*)
            # uses Linux kernel helpers for some atomic operations
            ompi_cv_asm_arch=&quot;ARMV5&quot;
            OPAL_ASM_SUPPORT_64BIT=0
            OPAL_ASM_ARM_VERSION=5
            AC_DEFINE_UNQUOTED([OPAL_ASM_ARM_VERSION], [$OPAL_ASM_ARM_VERSION],
                               [What ARM assembly version to use])
            OMPI_GCC_INLINE_ASSIGN=&#39;&quot;mov %0, #0&quot; : &quot;=&amp;r&quot;(ret)&#39;
            ;;
</pre><div>---</div><pre>whilst containing one less source file, and not doing any copying as part of the configure step.</pre><pre><br></pre><pre>I realise this would require at least touching <a href="http://generate-asm.pl">generate-asm.pl</a>, but it might be possible</pre>
<pre>to get away with mostly gas macros and the end result would be a lot neater.</pre><pre><br></pre><pre>/</pre><pre>    Leif</pre>