I had an opportunity to try the 1.8.5rc2 tarball on a little-endian POWER8
(aka ppc64el or powerpc64le).
The good news is that things "just worked" as they did when I tried ARMv8
(aka aarch64).

However, I see a little room for improvement with almost no work at all.

I noticed:

checking for __sync builtin atomics... yes
checking for assembly architecture... UNSUPPORTED
checking for builtin atomics... BUILTIN_SYNC
checking for atomic assembly filename... none

and I confirmed the same behavior on master.

The existing powerpc64 inline asm should work.
So, I made a one-line change (at bottom of this email) to recognize the
architecture and now get "native" atomics.

checking if PowerPC registers have r prefix... no
checking if powerpc64le-linux-gnu-gcc-4.9 -std=gnu99 supports GCC inline
assembly... yes
checking if powerpc64le-linux-gnu-gcc-4.9 -std=gnu99 supports DEC inline
assembly... no
checking if powerpc64le-linux-gnu-gcc-4.9 -std=gnu99 supports XLC inline
assembly... no
checking for assembly format... default-.text-.globl-:--.L-@-1-1-0-1-1
checking for assembly architecture... POWERPC64
checking for builtin atomics... BUILTIN_NO
checking for perl... (cached) perl
checking for pre-built assembly file... no (not in asm-data)
checking whether possible to generate assembly file... yes
checking for atomic assembly filename... atomic-local.s


and

phargrov@ppc64el:~/OMPI/ompi-master/BLD$ make -C test/asm check
[...]
============================================================================
Testsuite summary for Open MPI gitclone
============================================================================
# TOTAL: 8
# PASS:  8
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================



In addition to the one-line patch below, I needed to run autogen.pl with a
new enough config/config.{guess,sub}.
Along the way I noticed
        opal/mca/common/libfabric/libfabric/config/config.guess
        opal/mca/common/libfabric/libfabric/config/config.sub
        opal/mca/hwloc/hwloc191/hwloc/config/config.guess
        opal/mca/hwloc/hwloc191/hwloc/config/config.sub
which appear to be too old to recognize powerpc64le and are *not* updated
when autogen.pl is run.
I manually updated them, but somebody may want to either commit newer
versions to git or teach autogen.pl to update them.
FWIW, it appears that tarballs *are* generated with up-to-date versions.
Go figure.


-Paul

diff --git a/config/opal_config_asm.m4 b/config/opal_config_asm.m4
index 7ceadfc..c5f72c5 100644
--- a/config/opal_config_asm.m4
+++ b/config/opal_config_asm.m4
@@ -988,7 +988,7 @@ AC_DEFUN([OPAL_CONFIG_ASM],[
             OPAL_GCC_INLINE_ASSIGN='"or %0,[$]0,[$]0" : "=&r"(ret)'
             ;;

-        powerpc-*|powerpc64-*|rs6000-*|ppc-*)
+        powerpc-*|powerpc64-*|powerpc64le-*|rs6000-*|ppc-*)
             OPAL_CHECK_POWERPC_REG
             if test "$ac_cv_sizeof_long" = "4" ; then
                 opal_cv_asm_arch="POWERPC32"


-- 
Paul H. Hargrove                          phhargr...@lbl.gov
Computer Languages & Systems Software (CLaSS) Group
Computer Science Department               Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900

Reply via email to