diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ba8757e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+SOURCES/openmpi-1.10.7.tar.bz2
+SOURCES/openmpi-1.6.4-clean.tar.xz
+SOURCES/openmpi-3.0.0.tar.bz2
diff --git a/.openmpi.metadata b/.openmpi.metadata
new file mode 100644
index 0000000..dc068e2
--- /dev/null
+++ b/.openmpi.metadata
@@ -0,0 +1,3 @@
+fe359d8caa4888625308cf03343d913dd5ac6198 SOURCES/openmpi-1.10.7.tar.bz2
+24ec0fd3b82c72df9086e5b6b6be6d0a72f70892 SOURCES/openmpi-1.6.4-clean.tar.xz
+fa63990db1aec88b36335a1d79abf47ac6348e23 SOURCES/openmpi-3.0.0.tar.bz2
diff --git a/README.md b/README.md
deleted file mode 100644
index 0e7897f..0000000
--- a/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-The master branch has no content
- 
-Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6
- 
-If you find this file in a distro specific branch, it means that no content has been checked in yet
diff --git a/SOURCES/0001-Add-Chelsio-T6-adapter-device-parameters.patch b/SOURCES/0001-Add-Chelsio-T6-adapter-device-parameters.patch
new file mode 100644
index 0000000..b4dba68
--- /dev/null
+++ b/SOURCES/0001-Add-Chelsio-T6-adapter-device-parameters.patch
@@ -0,0 +1,33 @@
+From 0d4d36a2dd40bddb866d10fe056e371a8441a116 Mon Sep 17 00:00:00 2001
+From: Potnuri Bharat Teja <bharat@chelsio.com>
+Date: Tue, 23 Aug 2016 10:38:13 +0530
+Subject: [PATCH] Add Chelsio T6 adapter device parameters.
+
+Signed-off-by: Potnuri Bharat Teja <bharat@chelsio.com>
+(cherry picked from commit 9b7f9ece2031531d159283000ebeecb0eaa1ef0d)
+---
+ ompi/mca/btl/openib/mca-btl-openib-device-params.ini | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/ompi/mca/btl/openib/mca-btl-openib-device-params.ini b/ompi/mca/btl/openib/mca-btl-openib-device-params.ini
+index a61b91ffcb..406f2f917e 100644
+--- a/ompi/mca/btl/openib/mca-btl-openib-device-params.ini
++++ b/ompi/mca/btl/openib/mca-btl-openib-device-params.ini
+@@ -253,6 +253,14 @@ mtu = 2048
+ receive_queues = P,65536,64
+ max_inline_data = 280
+ 
++[Chelsio T6]
++vendor_id = 0x1425
++vendor_part_id = 0x6400,0x6401,0x6402,0x6403,0x6404,0x6405,0x6406,0x6407,0x6408,0x6409,0x640d,0x6410,0x6411,0x6414,0x6415
++use_eager_rdma = 1
++mtu = 2048
++receive_queues = P,65536,64
++max_inline_data = 280
++
+ ############################################################################
+ 
+ # I'm *assuming* that 0x4040 is the PCI ID...
+-- 
+2.9.3
+
diff --git a/SOURCES/0001-tests-disable-opal_fifo-test.patch b/SOURCES/0001-tests-disable-opal_fifo-test.patch
new file mode 100644
index 0000000..c1c042c
--- /dev/null
+++ b/SOURCES/0001-tests-disable-opal_fifo-test.patch
@@ -0,0 +1,133 @@
+From 666ed459887782994fa963f77f3144eb647e2b1e Mon Sep 17 00:00:00 2001
+From: Michal Schmidt <mschmidt@redhat.com>
+Date: Fri, 3 Nov 2017 10:34:07 +0100
+Subject: [PATCH] tests: disable opal_fifo test
+
+The opal_fifo test hangs on ppc64le.
+https://github.com/open-mpi/ompi/issues/2526
+https://github.com/open-mpi/ompi/issues/2966
+---
+ test/class/Makefile.am | 16 +++++++++-------
+ test/class/Makefile.in | 26 +++-----------------------
+ 2 files changed, 12 insertions(+), 30 deletions(-)
+
+diff --git a/test/class/Makefile.am b/test/class/Makefile.am
+index 4dc7daf24c..fc325ef96e 100644
+--- a/test/class/Makefile.am
++++ b/test/class/Makefile.am
+@@ -35,8 +35,7 @@ check_PROGRAMS = \
+ 	opal_list \
+ 	opal_value_array \
+ 	opal_pointer_array \
+-	opal_lifo \
+-	opal_fifo
++	opal_lifo
+ 
+ TESTS = $(check_PROGRAMS)
+ 
+@@ -95,11 +94,14 @@ opal_lifo_LDADD = \
+ 	$(top_builddir)/test/support/libsupport.a
+ opal_lifo_DEPENDENCIES = $(opal_lifo_LDADD)
+ 
+-opal_fifo_SOURCES = opal_fifo.c
+-opal_fifo_LDADD = \
+-        $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \
+-	$(top_builddir)/test/support/libsupport.a
+-opal_fifo_DEPENDENCIES = $(opal_fifo_LDADD)
++# Disabled due to:
++# https://github.com/open-mpi/ompi/issues/2526
++# https://github.com/open-mpi/ompi/issues/2966
++#opal_fifo_SOURCES = opal_fifo.c
++#opal_fifo_LDADD = \
++#        $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \
++#	$(top_builddir)/test/support/libsupport.a
++#opal_fifo_DEPENDENCIES = $(opal_fifo_LDADD)
+ 
+ clean-local:
+ 	rm -f opal_bitmap_test_out.txt opal_hash_table_test_out.txt opal_proc_table_test_out.txt
+diff --git a/test/class/Makefile.in b/test/class/Makefile.in
+index c6c20f30b9..2ed128a77f 100644
+--- a/test/class/Makefile.in
++++ b/test/class/Makefile.in
+@@ -115,7 +115,7 @@ check_PROGRAMS = $(am__EXEEXT_1) opal_bitmap$(EXEEXT) \
+ 	opal_hash_table$(EXEEXT) opal_proc_table$(EXEEXT) \
+ 	opal_tree$(EXEEXT) opal_list$(EXEEXT) \
+ 	opal_value_array$(EXEEXT) opal_pointer_array$(EXEEXT) \
+-	opal_lifo$(EXEEXT) opal_fifo$(EXEEXT)
++	opal_lifo$(EXEEXT)
+ subdir = test/class
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \
+@@ -426,8 +426,6 @@ am__v_lt_0 = --silent
+ am__v_lt_1 = 
+ am_opal_bitmap_OBJECTS = opal_bitmap.$(OBJEXT)
+ opal_bitmap_OBJECTS = $(am_opal_bitmap_OBJECTS)
+-am_opal_fifo_OBJECTS = opal_fifo.$(OBJEXT)
+-opal_fifo_OBJECTS = $(am_opal_fifo_OBJECTS)
+ am_opal_hash_table_OBJECTS = opal_hash_table.$(OBJEXT)
+ opal_hash_table_OBJECTS = $(am_opal_hash_table_OBJECTS)
+ am_opal_lifo_OBJECTS = opal_lifo.$(OBJEXT)
+@@ -477,12 +475,12 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+ am__v_CCLD_0 = @echo "  CCLD    " $@;
+ am__v_CCLD_1 = 
+ SOURCES = $(ompi_rb_tree_SOURCES) $(opal_bitmap_SOURCES) \
+-	$(opal_fifo_SOURCES) $(opal_hash_table_SOURCES) \
++	$(opal_hash_table_SOURCES) \
+ 	$(opal_lifo_SOURCES) $(opal_list_SOURCES) \
+ 	$(opal_pointer_array_SOURCES) $(opal_proc_table_SOURCES) \
+ 	$(opal_tree_SOURCES) $(opal_value_array_SOURCES)
+ DIST_SOURCES = $(ompi_rb_tree_SOURCES) $(opal_bitmap_SOURCES) \
+-	$(opal_fifo_SOURCES) $(opal_hash_table_SOURCES) \
++	$(opal_hash_table_SOURCES) \
+ 	$(opal_lifo_SOURCES) $(opal_list_SOURCES) \
+ 	$(opal_pointer_array_SOURCES) $(opal_proc_table_SOURCES) \
+ 	$(opal_tree_SOURCES) $(opal_value_array_SOURCES)
+@@ -1974,12 +1972,6 @@ opal_lifo_LDADD = \
+ 	$(top_builddir)/test/support/libsupport.a
+ 
+ opal_lifo_DEPENDENCIES = $(opal_lifo_LDADD)
+-opal_fifo_SOURCES = opal_fifo.c
+-opal_fifo_LDADD = \
+-        $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \
+-	$(top_builddir)/test/support/libsupport.a
+-
+-opal_fifo_DEPENDENCIES = $(opal_fifo_LDADD)
+ all: all-am
+ 
+ .SUFFIXES:
+@@ -2031,10 +2023,6 @@ opal_bitmap$(EXEEXT): $(opal_bitmap_OBJECTS) $(opal_bitmap_DEPENDENCIES) $(EXTRA
+ 	@rm -f opal_bitmap$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(opal_bitmap_OBJECTS) $(opal_bitmap_LDADD) $(LIBS)
+ 
+-opal_fifo$(EXEEXT): $(opal_fifo_OBJECTS) $(opal_fifo_DEPENDENCIES) $(EXTRA_opal_fifo_DEPENDENCIES) 
+-	@rm -f opal_fifo$(EXEEXT)
+-	$(AM_V_CCLD)$(LINK) $(opal_fifo_OBJECTS) $(opal_fifo_LDADD) $(LIBS)
+-
+ opal_hash_table$(EXEEXT): $(opal_hash_table_OBJECTS) $(opal_hash_table_DEPENDENCIES) $(EXTRA_opal_hash_table_DEPENDENCIES) 
+ 	@rm -f opal_hash_table$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(opal_hash_table_OBJECTS) $(opal_hash_table_LDADD) $(LIBS)
+@@ -2071,7 +2059,6 @@ distclean-compile:
+ 
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ompi_rb_tree.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_bitmap.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_fifo.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_hash_table.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_lifo.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_list.Po@am__quote@
+@@ -2366,13 +2353,6 @@ opal_lifo.log: opal_lifo$(EXEEXT)
+ 	--log-file $$b.log --trs-file $$b.trs \
+ 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ 	"$$tst" $(AM_TESTS_FD_REDIRECT)
+-opal_fifo.log: opal_fifo$(EXEEXT)
+-	@p='opal_fifo$(EXEEXT)'; \
+-	b='opal_fifo'; \
+-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+-	--log-file $$b.log --trs-file $$b.trs \
+-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+-	"$$tst" $(AM_TESTS_FD_REDIRECT)
+ .test.log:
+ 	@p='$<'; \
+ 	$(am__set_b); \
+-- 
+2.13.6
+
diff --git a/SOURCES/0002-btl-openib-fix-segmentation-fault.patch b/SOURCES/0002-btl-openib-fix-segmentation-fault.patch
new file mode 100644
index 0000000..725ba66
--- /dev/null
+++ b/SOURCES/0002-btl-openib-fix-segmentation-fault.patch
@@ -0,0 +1,37 @@
+From 5efe6f70f310858f554287bcf7883442380a0701 Mon Sep 17 00:00:00 2001
+From: Nathan Hjelm <hjelmn@lanl.gov>
+Date: Tue, 28 Jun 2016 10:26:16 -0600
+Subject: [PATCH] btl/openib: fix segmentation fault
+
+This commit fixes a segmentation fault that occurs if a device can be
+initialized but not used. In this case the devices_count is not equal
+to the number of usable devices in the devices pointer array.
+
+Thanks to @artpol84 for tracking this down.
+
+Fixes open-mpi/ompi#1823
+
+Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
+(cherry picked from commit 8128c8eb29d6adde288fca5db3f71fb98e1727f6)
+---
+ ompi/mca/btl/openib/btl_openib_component.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/ompi/mca/btl/openib/btl_openib_component.c b/ompi/mca/btl/openib/btl_openib_component.c
+index 40831f2373..d1376e0a58 100644
+--- a/ompi/mca/btl/openib/btl_openib_component.c
++++ b/ompi/mca/btl/openib/btl_openib_component.c
+@@ -3630,7 +3630,9 @@ static int btl_openib_component_progress(void)
+     for(i = 0; i < mca_btl_openib_component.devices_count; i++) {
+         mca_btl_openib_device_t *device =
+             (mca_btl_openib_device_t *) opal_pointer_array_get_item(&mca_btl_openib_component.devices, i);
+-        count += progress_one_device(device);
++        if (NULL != device) {
++            count += progress_one_device(device);
++        }
+     }
+ 
+ #if OPAL_CUDA_SUPPORT /* CUDA_ASYNC_SEND */
+-- 
+2.13.5
+
diff --git a/SOURCES/macros.openmpi.in b/SOURCES/macros.openmpi.in
new file mode 100644
index 0000000..7232d2f
--- /dev/null
+++ b/SOURCES/macros.openmpi.in
@@ -0,0 +1,7 @@
+%_@MACRONAME@_load \
+ . /etc/profile.d/modules.sh; \
+ module load mpi/@MODULENAME@; \
+ export CFLAGS="$CFLAGS %{optflags}";
+%_@MACRONAME@_unload \
+ . /etc/profile.d/modules.sh; \
+ module unload mpi/@MODULENAME@;
diff --git a/SOURCES/macros.openmpi3 b/SOURCES/macros.openmpi3
new file mode 100644
index 0000000..7740881
--- /dev/null
+++ b/SOURCES/macros.openmpi3
@@ -0,0 +1,6 @@
+%_openmpi3_load \
+ . /etc/profile.d/modules.sh; \
+ module load mpi/openmpi3-%{_arch};
+%_openmpi3_unload \
+ . /etc/profile.d/modules.sh; \
+ module unload mpi/openmpi3-%{_arch};
diff --git a/SOURCES/openmpi-1.6.4-aarch64.patch b/SOURCES/openmpi-1.6.4-aarch64.patch
new file mode 100644
index 0000000..f9ccbbb
--- /dev/null
+++ b/SOURCES/openmpi-1.6.4-aarch64.patch
@@ -0,0 +1,657 @@
+From 351e63eeb4123aa2d2dc13a01912968ad1365fa1 Mon Sep 17 00:00:00 2001
+From: Brian Barrett <brbarret@open-mpi-git-mirror.example.com>
+Date: Wed, 23 Nov 2011 04:25:41 +0000
+Subject: [PATCH] Add (optional/last ditch effort) support for GCC/Intel
+ __sync_ builtin atomic operations.  Much easier than adding support for a new
+ architecture.
+
+---
+ LICENSE                                        |   2 +-
+ opal/config/opal_config_asm.m4                 |  38 +++++++-
+ opal/include/opal/sys/Makefile.am              |   2 +
+ opal/include/opal/sys/architecture.h           |   2 +
+ opal/include/opal/sys/atomic.h                 |   9 ++
+ opal/include/opal/sys/sync_builtin/Makefile.am |  24 +++++
+ opal/include/opal/sys/sync_builtin/atomic.h    | 116 +++++++++++++++++++++++++
+ opal/include/opal/sys/sync_builtin/timer.h     |  27 ++++++
+ 8 files changed, 217 insertions(+), 3 deletions(-)
+ create mode 100644 opal/include/opal/sys/sync_builtin/Makefile.am
+ create mode 100644 opal/include/opal/sys/sync_builtin/atomic.h
+ create mode 100644 opal/include/opal/sys/sync_builtin/timer.h
+
+diff --git a/LICENSE b/LICENSE
+index d6424ab..0712868 100644
+--- a/LICENSE
++++ b/LICENSE
+@@ -19,7 +19,7 @@ Copyright (c) 2006-2010 Los Alamos National Security, LLC.  All rights
+                         reserved. 
+ Copyright (c) 2006-2010 Cisco Systems, Inc.  All rights reserved.
+ Copyright (c) 2006-2010 Voltaire, Inc. All rights reserved.
+-Copyright (c) 2006-2010 Sandia National Laboratories. All rights reserved.
++Copyright (c) 2006-2011 Sandia National Laboratories. All rights reserved.
+ Copyright (c) 2006-2010 Sun Microsystems, Inc.  All rights reserved.
+                         Use is subject to license terms.
+ Copyright (c) 2006-2010 The University of Houston. All rights reserved.
+diff --git a/opal/config/opal_config_asm.m4 b/opal/config/opal_config_asm.m4
+index fc7fdcd..591f4c3 100644
+--- a/opal/config/opal_config_asm.m4
++++ b/opal/config/opal_config_asm.m4
+@@ -19,6 +19,17 @@ dnl $HEADER$
+ dnl
+ 
+ 
++AC_DEFUN([OPAL_CHECK_SYNC_BUILTINS], [
++  AC_MSG_CHECKING([for __sync builtin atomics])
++
++  AC_TRY_COMPILE([], [__sync_synchronize()], 
++    [AC_MSG_RESULT([yes])
++     $1],
++    [AC_MSG_RESULT([no])
++     $2])
++])
++
++
+ dnl #################################################################
+ dnl
+ dnl OMPI_CHECK_ASM_TEXT
+@@ -841,8 +852,21 @@ AC_DEFUN([OPAL_CONFIG_ASM],[
+     AC_DEFINE_UNQUOTED([OPAL_WANT_SMP_LOCKS], [$want_smp_locks],
+                        [whether we want to have smp locks in atomic ops or not])
+ 
++    AC_ARG_ENABLE([builtin-atomics],
++      [AC_HELP_STRING([--enable-builtin-atomics],
++         [Enable use of __sync builtin atomics (default: disabled)])])
++
+     if test "$ompi_cv_c_compiler_vendor" = "microsoft" ; then
+         ompi_cv_asm_arch="WINDOWS"
++    elif test "$enable_builtin_atomics" = "yes" ; then
++       OPAL_CHECK_SYNC_BUILTINS([ompi_cv_asm_arch="SYNC_BUILTIN"],
++         [AC_MSG_ERROR([__sync builtin atomics requested but not found.])])
++       AC_DEFINE([OPAL_C_GCC_INLINE_ASSEMBLY], [1],
++         [Whether C compiler supports GCC style inline assembly])
++       m4_ifdef([project_ompi],
++                [AS_IF([test "$WANT_MPI_CXX_SUPPORT" = "1"],
++         [AC_DEFINE([OMPI_CXX_GCC_INLINE_ASSEMBLY], [1],
++           [Whether C++ compiler supports GCC style inline assembly])])])
+     else
+         OMPI_CHECK_ASM_PROC
+         OMPI_CHECK_ASM_TEXT
+@@ -946,10 +970,19 @@ AC_MSG_ERROR([Can not continue.])
+             ;;
+ 
+         *)
+-            AC_MSG_ERROR([No atomic primitives available for $host])
++            OPAL_CHECK_SYNC_BUILTINS([ompi_cv_asm_arch="SYNC_BUILTIN"],
++              [AC_MSG_ERROR([No atomic primitives available for $host])])
+             ;;
+         esac
+ 
++      if test "$ompi_cv_asm_arch" = "SYNC_BUILTIN" ; then
++        AC_DEFINE([OPAL_C_GCC_INLINE_ASSEMBLY], [1],
++          [Whether C compiler supports GCC style inline assembly])
++        m4_ifdef([project_ompi],
++                 [AS_IF([test "$WANT_MPI_CXX_SUPPORT" = "1"],
++          [AC_DEFINE([OMPI_CXX_GCC_INLINE_ASSEMBLY], [1],
++            [Whether C++ compiler supports GCC style inline assembly])])])
++      else
+         AC_DEFINE_UNQUOTED([OPAL_ASM_SUPPORT_64BIT],
+             [$OPAL_ASM_SUPPORT_64BIT],
+             [Whether we can do 64bit assembly operations or not.  Should not be used outside of the assembly header files])
+@@ -1004,6 +1037,7 @@ AC_MSG_ERROR([Can not continue.])
+         AC_DEFINE_UNQUOTED([OPAL_ASSEMBLY_FORMAT], ["$OPAL_ASSEMBLY_FORMAT"],
+                            [Format of assembly file])
+         AC_SUBST([OPAL_ASSEMBLY_FORMAT])
++      fi # if ompi_cv_asm_arch = SYNC_BUILTIN
+     fi # if cv_c_compiler_vendor = microsoft
+ 
+     result="OMPI_$ompi_cv_asm_arch"
+@@ -1032,7 +1066,7 @@ AC_DEFUN([OMPI_ASM_FIND_FILE], [
+     AC_REQUIRE([AC_PROG_GREP])
+     AC_REQUIRE([AC_PROG_FGREP])
+ 
+-if test "$ompi_cv_asm_arch" != "WINDOWS" ; then
++if test "$ompi_cv_asm_arch" != "WINDOWS" -a "$ompi_cv_asm_arch" != "SYNC_BUILTIN" ; then
+     AC_CHECK_PROG([PERL], [perl], [perl])
+ 
+     # see if we have a pre-built one already
+diff --git a/opal/include/opal/sys/Makefile.am b/opal/include/opal/sys/Makefile.am
+index 0917c7d..6c411c5 100644
+--- a/opal/include/opal/sys/Makefile.am
++++ b/opal/include/opal/sys/Makefile.am
+@@ -10,6 +10,7 @@
+ # Copyright (c) 2004-2005 The Regents of the University of California.
+ #                         All rights reserved.
+ # Copyright (c) 2010      Cisco Systems, Inc.  All rights reserved.
++# Copyright (c) 2011      Sandia National Laboratories. All rights reserved.
+ # $COPYRIGHT$
+ # 
+ # Additional copyrights may follow
+@@ -34,3 +35,4 @@ include opal/sys/mips/Makefile.am
+ include opal/sys/sparc/Makefile.am
+ include opal/sys/sparcv9/Makefile.am
+ include opal/sys/win32/Makefile.am
++include opal/sys/sync_builtin/Makefile.am
+diff --git a/opal/include/opal/sys/architecture.h b/opal/include/opal/sys/architecture.h
+index 2e7d007..62430fa 100644
+--- a/opal/include/opal/sys/architecture.h
++++ b/opal/include/opal/sys/architecture.h
+@@ -9,6 +9,7 @@
+  *                         University of Stuttgart.  All rights reserved.
+  * Copyright (c) 2004-2005 The Regents of the University of California.
+  *                         All rights reserved.
++ * Copyright (c) 2011      Sandia National Laboratories. All rights reserved.
+  * $COPYRIGHT$
+  * 
+  * Additional copyrights may follow
+@@ -37,6 +38,7 @@
+ #define OMPI_SPARCV9_64     0062
+ #define OMPI_MIPS           0070
+ #define OMPI_ARM            0100
++#define OMPI_SYNC_BUILTIN   0200
+ 
+ /* Formats */
+ #define OMPI_DEFAULT        1000  /* standard for given architecture */
+diff --git a/opal/include/opal/sys/atomic.h b/opal/include/opal/sys/atomic.h
+index 01e8366..bc3c07f 100644
+--- a/opal/include/opal/sys/atomic.h
++++ b/opal/include/opal/sys/atomic.h
+@@ -10,6 +10,7 @@
+  * Copyright (c) 2004-2005 The Regents of the University of California.
+  *                         All rights reserved.
+  * Copyright (c) 2007      Sun Microsystems, Inc.  All rights reserved.
++ * Copyright (c) 2011      Sandia National Laboratories. All rights reserved.
+  * $COPYRIGHT$
+  * 
+  * Additional copyrights may follow
+@@ -168,6 +169,8 @@ typedef struct opal_atomic_lock_t opal_atomic_lock_t;
+ #include "opal/sys/sparcv9/atomic.h"
+ #elif OPAL_ASSEMBLY_ARCH == OMPI_SPARCV9_64
+ #include "opal/sys/sparcv9/atomic.h"
++#elif OPAL_ASSEMBLY_ARCH == OMPI_SYNC_BUILTIN
++#include "opal/sys/sync_builtin/atomic.h"
+ #endif
+ 
+ #ifndef DOXYGEN
+@@ -180,6 +183,12 @@ typedef struct opal_atomic_lock_t opal_atomic_lock_t;
+ #ifndef OPAL_HAVE_ATOMIC_CMPSET_64
+ #define OPAL_HAVE_ATOMIC_CMPSET_64 0
+ #endif
++#ifndef OPAL_HAVE_ATOMIC_SWAP_32
++#define OPAL_HAVE_ATOMIC_SWAP_32 0
++#endif
++#ifndef OPAL_HAVE_ATOMIC_SWAP_64
++#define OPAL_HAVE_ATOMIC_SWAP_64 0
++#endif
+ #endif /* DOXYGEN */
+ 
+ /**********************************************************************
+diff --git a/opal/include/opal/sys/sync_builtin/Makefile.am b/opal/include/opal/sys/sync_builtin/Makefile.am
+new file mode 100644
+index 0000000..a0d993c
+--- /dev/null
++++ b/opal/include/opal/sys/sync_builtin/Makefile.am
+@@ -0,0 +1,24 @@
++#
++# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
++#                         University Research and Technology
++#                         Corporation.  All rights reserved.
++# Copyright (c) 2004-2005 The University of Tennessee and The University
++#                         of Tennessee Research Foundation.  All rights
++#                         reserved.
++# Copyright (c) 2004-2009 High Performance Computing Center Stuttgart, 
++#                         University of Stuttgart.  All rights reserved.
++# Copyright (c) 2004-2005 The Regents of the University of California.
++#                         All rights reserved.
++# Copyright (c) 2011      Sandia National Laboratories. All rights reserved.
++# $COPYRIGHT$
++# 
++# Additional copyrights may follow
++# 
++# $HEADER$
++#
++
++# This makefile.am does not stand on its own - it is included from opal/include/Makefile.am
++
++headers += \
++	opal/sys/sync_builtin/atomic.h \
++	opal/sys/sync_builtin/timer.h
+diff --git a/opal/include/opal/sys/sync_builtin/atomic.h b/opal/include/opal/sys/sync_builtin/atomic.h
+new file mode 100644
+index 0000000..307240a
+--- /dev/null
++++ b/opal/include/opal/sys/sync_builtin/atomic.h
+@@ -0,0 +1,116 @@
++/*
++ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
++ *                         University Research and Technology
++ *                         Corporation.  All rights reserved.
++ * Copyright (c) 2004-2006 The University of Tennessee and The University
++ *                         of Tennessee Research Foundation.  All rights
++ *                         reserved.
++ * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
++ *                         University of Stuttgart.  All rights reserved.
++ * Copyright (c) 2004-2005 The Regents of the University of California.
++ *                         All rights reserved.
++ * Copyright (c) 2011      Sandia National Laboratories. All rights reserved.
++ * $COPYRIGHT$
++ * 
++ * Additional copyrights may follow
++ * 
++ * $HEADER$
++ */
++
++#ifndef OMPI_SYS_ARCH_ATOMIC_H
++#define OMPI_SYS_ARCH_ATOMIC_H 1
++
++/**********************************************************************
++ *
++ * Memory Barriers
++ *
++ *********************************************************************/
++#define OPAL_HAVE_ATOMIC_MEM_BARRIER 1
++
++static inline void opal_atomic_mb(void)
++{    
++    __sync_synchronize();
++}
++
++static inline void opal_atomic_rmb(void)
++{
++    __sync_synchronize();
++}
++
++static inline void opal_atomic_wmb(void)
++{    
++    __sync_synchronize();
++}
++
++/**********************************************************************
++ *
++ * Atomic math operations
++ *
++ *********************************************************************/
++
++#define OPAL_HAVE_ATOMIC_CMPSET_32 1
++static inline int opal_atomic_cmpset_acq_32( volatile int32_t *addr,
++                                             int32_t oldval, int32_t newval)
++{
++    return __sync_bool_compare_and_swap(addr, oldval, newval);
++}
++
++
++static inline int opal_atomic_cmpset_rel_32( volatile int32_t *addr,
++                                             int32_t oldval, int32_t newval)
++{
++    return __sync_bool_compare_and_swap(addr, oldval, newval);}
++
++static inline int opal_atomic_cmpset_32( volatile int32_t *addr,
++                                         int32_t oldval, int32_t newval)
++{
++    return __sync_bool_compare_and_swap(addr, oldval, newval);
++}
++
++#define OPAL_HAVE_ATOMIC_MATH_32 1
++
++#define OPAL_HAVE_ATOMIC_ADD_32 1
++static inline int32_t opal_atomic_add_32(volatile int32_t *addr, int32_t delta)
++{
++    return __sync_fetch_and_add(addr, delta);
++}
++
++#define OPAL_HAVE_ATOMIC_SUB_32 1
++static inline int32_t opal_atomic_sub_32(volatile int32_t *addr, int32_t delta)
++{
++    return __sync_fetch_and_sub(addr, delta);
++}
++
++#define OPAL_HAVE_ATOMIC_CMPSET_64 1
++static inline int opal_atomic_cmpset_acq_64( volatile int64_t *addr,
++                                             int64_t oldval, int64_t newval)
++{
++    return __sync_bool_compare_and_swap(addr, oldval, newval);
++}
++
++static inline int opal_atomic_cmpset_rel_64( volatile int64_t *addr,
++                                             int64_t oldval, int64_t newval)
++{
++    return __sync_bool_compare_and_swap(addr, oldval, newval);}
++
++
++static inline int opal_atomic_cmpset_64( volatile int64_t *addr,
++                                         int64_t oldval, int64_t newval)
++{
++    return __sync_bool_compare_and_swap(addr, oldval, newval);
++}
++
++#define OPAL_HAVE_ATOMIC_MATH_64 1
++#define OPAL_HAVE_ATOMIC_ADD_64 1
++static inline int64_t opal_atomic_add_64(volatile int64_t *addr, int64_t delta)
++{
++    return __sync_fetch_and_add(addr, delta);
++}
++
++#define OPAL_HAVE_ATOMIC_SUB_64 1
++static inline int64_t opal_atomic_sub_64(volatile int64_t *addr, int64_t delta)
++{
++    return __sync_fetch_and_sub(addr, delta);
++}
++
++#endif /* ! OMPI_SYS_ARCH_ATOMIC_H */
+diff --git a/opal/include/opal/sys/sync_builtin/timer.h b/opal/include/opal/sys/sync_builtin/timer.h
+new file mode 100644
+index 0000000..aafbc9b
+--- /dev/null
++++ b/opal/include/opal/sys/sync_builtin/timer.h
+@@ -0,0 +1,27 @@
++/*
++ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
++ *                         University Research and Technology
++ *                         Corporation.  All rights reserved.
++ * Copyright (c) 2004-2005 The University of Tennessee and The University
++ *                         of Tennessee Research Foundation.  All rights
++ *                         reserved.
++ * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
++ *                         University of Stuttgart.  All rights reserved.
++ * Copyright (c) 2004-2005 The Regents of the University of California.
++ *                         All rights reserved.
++ * Copyright (c) 2011      Sandia National Laboratories. All rights reserved.
++ * $COPYRIGHT$
++ * 
++ * Additional copyrights may follow
++ * 
++ * $HEADER$
++ */
++
++#ifndef OMPI_SYS_ARCH_TIMER_H
++#define OMPI_SYS_ARCH_TIMER_H 1
++
++typedef long opal_timer_t;
++
++#define OPAL_HAVE_SYS_TIMER_GET_CYCLES 0
++
++#endif /* ! OMPI_SYS_ARCH_TIMER_H */
+-- 
+1.8.3.1
+
+From 1b2fdab7b6bf77bf4e818c84a798ba205c789483 Mon Sep 17 00:00:00 2001
+From: Brian Barrett <brbarret@open-mpi-git-mirror.example.com>
+Date: Wed, 23 Nov 2011 17:05:01 +0000
+Subject: [PATCH] * Shouldn't have a timer header for sync_builtin, since it
+ doesn't actually   have timer support * Default timer size should be a long,
+ not an int.  Int will roll over way   too fast, with no performance benifit
+ on 64 bit machines...
+
+---
+ opal/include/opal/sys/sync_builtin/Makefile.am |  3 +--
+ opal/include/opal/sys/sync_builtin/timer.h     | 27 --------------------------
+ opal/include/opal/sys/timer.h                  |  2 +-
+ 3 files changed, 2 insertions(+), 30 deletions(-)
+ delete mode 100644 opal/include/opal/sys/sync_builtin/timer.h
+
+diff --git a/opal/include/opal/sys/sync_builtin/Makefile.am b/opal/include/opal/sys/sync_builtin/Makefile.am
+index a0d993c..fbb8a60 100644
+--- a/opal/include/opal/sys/sync_builtin/Makefile.am
++++ b/opal/include/opal/sys/sync_builtin/Makefile.am
+@@ -20,5 +20,4 @@
+ # This makefile.am does not stand on its own - it is included from opal/include/Makefile.am
+ 
+ headers += \
+-	opal/sys/sync_builtin/atomic.h \
+-	opal/sys/sync_builtin/timer.h
++	opal/sys/sync_builtin/atomic.h
+diff --git a/opal/include/opal/sys/sync_builtin/timer.h b/opal/include/opal/sys/sync_builtin/timer.h
+deleted file mode 100644
+index aafbc9b..0000000
+--- a/opal/include/opal/sys/sync_builtin/timer.h
++++ /dev/null
+@@ -1,27 +0,0 @@
+-/*
+- * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+- *                         University Research and Technology
+- *                         Corporation.  All rights reserved.
+- * Copyright (c) 2004-2005 The University of Tennessee and The University
+- *                         of Tennessee Research Foundation.  All rights
+- *                         reserved.
+- * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+- *                         University of Stuttgart.  All rights reserved.
+- * Copyright (c) 2004-2005 The Regents of the University of California.
+- *                         All rights reserved.
+- * Copyright (c) 2011      Sandia National Laboratories. All rights reserved.
+- * $COPYRIGHT$
+- * 
+- * Additional copyrights may follow
+- * 
+- * $HEADER$
+- */
+-
+-#ifndef OMPI_SYS_ARCH_TIMER_H
+-#define OMPI_SYS_ARCH_TIMER_H 1
+-
+-typedef long opal_timer_t;
+-
+-#define OPAL_HAVE_SYS_TIMER_GET_CYCLES 0
+-
+-#endif /* ! OMPI_SYS_ARCH_TIMER_H */
+diff --git a/opal/include/opal/sys/timer.h b/opal/include/opal/sys/timer.h
+index 967b951..cc8b922 100644
+--- a/opal/include/opal/sys/timer.h
++++ b/opal/include/opal/sys/timer.h
+@@ -103,7 +103,7 @@ BEGIN_C_DECLS
+ #ifndef OPAL_HAVE_SYS_TIMER_GET_CYCLES
+ #define OPAL_HAVE_SYS_TIMER_GET_CYCLES 0
+ 
+-typedef int opal_timer_t;
++typedef long opal_timer_t;
+ #endif
+ #endif
+ 
+-- 
+1.8.3.1
+
+From e270e4d0f7b2b89d16d0f1ac736619118ad7f340 Mon Sep 17 00:00:00 2001
+From: George Bosilca <bosilca@open-mpi-git-mirror.example.com>
+Date: Sun, 15 Dec 2013 16:48:27 +0000
+Subject: [PATCH] Make the builtin atomics follow the same convention as every
+ other atomic support we have ([op]_and_fetch instead of fetch_and_[op]).
+
+---
+ opal/include/opal/sys/sync_builtin/atomic.h | 16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/opal/include/opal/sys/sync_builtin/atomic.h b/opal/include/opal/sys/sync_builtin/atomic.h
+index 307240a..e0dc76b 100644
+--- a/opal/include/opal/sys/sync_builtin/atomic.h
++++ b/opal/include/opal/sys/sync_builtin/atomic.h
+@@ -2,7 +2,7 @@
+  * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+  *                         University Research and Technology
+  *                         Corporation.  All rights reserved.
+- * Copyright (c) 2004-2006 The University of Tennessee and The University
++ * Copyright (c) 2004-2013 The University of Tennessee and The University
+  *                         of Tennessee Research Foundation.  All rights
+  *                         reserved.
+  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+@@ -42,6 +42,12 @@ static inline void opal_atomic_wmb(void)
+     __sync_synchronize();
+ }
+ 
++#if OPAL_WANT_SMP_LOCKS
++#define MB() opal_atomic_mb()
++#else
++#define MB()
++#endif
++
+ /**********************************************************************
+  *
+  * Atomic math operations
+@@ -72,13 +78,13 @@ static inline int opal_atomic_cmpset_32( volatile int32_t *addr,
+ #define OPAL_HAVE_ATOMIC_ADD_32 1
+ static inline int32_t opal_atomic_add_32(volatile int32_t *addr, int32_t delta)
+ {
+-    return __sync_fetch_and_add(addr, delta);
++    return __sync_add_and_fetch(addr, delta);
+ }
+ 
+ #define OPAL_HAVE_ATOMIC_SUB_32 1
+ static inline int32_t opal_atomic_sub_32(volatile int32_t *addr, int32_t delta)
+ {
+-    return __sync_fetch_and_sub(addr, delta);
++    return __sync_sub_and_fetch(addr, delta);
+ }
+ 
+ #define OPAL_HAVE_ATOMIC_CMPSET_64 1
+@@ -104,13 +110,13 @@ static inline int opal_atomic_cmpset_64( volatile int64_t *addr,
+ #define OPAL_HAVE_ATOMIC_ADD_64 1
+ static inline int64_t opal_atomic_add_64(volatile int64_t *addr, int64_t delta)
+ {
+-    return __sync_fetch_and_add(addr, delta);
++    return __sync_add_and_fetch(addr, delta);
+ }
+ 
+ #define OPAL_HAVE_ATOMIC_SUB_64 1
+ static inline int64_t opal_atomic_sub_64(volatile int64_t *addr, int64_t delta)
+ {
+-    return __sync_fetch_and_sub(addr, delta);
++    return __sync_sub_and_fetch(addr, delta);
+ }
+ 
+ #endif /* ! OMPI_SYS_ARCH_ATOMIC_H */
+-- 
+1.8.3.1
+
+diff --git a/configure b/configure
+index b585768..5d3eae1 100755
+--- a/configure
++++ b/configure
+@@ -1918,6 +1938,7 @@ with_wrapper_fcflags
+ enable_cxx_exceptions
+ with_exflags
+ enable_smp_locks
++enable_builtin_atomics
+ with_broken_qsort
+ with_threads
+ enable_opal_multi_threads
+@@ -2720,6 +2741,9 @@ Optional Features:
+   --enable-smp-locks      enable smp locks in atomic ops. Do not disable if
+                           code will ever run in SMP or multi-threaded
+                           environment. (default: enabled)
++  --enable-builtin-atomics
++                          Enable use of __sync builtin atomics (default:
++                          disabled)
+   --enable-opal-multi-threads
+                           Enable thread support inside OPAL (default:
+                           disabled)
+@@ -26558,8 +26684,49 @@ cat >>confdefs.h <<_ACEOF
+ _ACEOF
+ 
+ 
++    # Check whether --enable-builtin-atomics was given.
++if test "${enable_builtin_atomics+set}" = set; then :
++  enableval=$enable_builtin_atomics;
++fi
++
++
+     if test "$ompi_cv_c_compiler_vendor" = "microsoft" ; then
+         ompi_cv_asm_arch="WINDOWS"
++    elif test "$enable_builtin_atomics" = "yes" ; then
++
++  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync builtin atomics" >&5
++$as_echo_n "checking for __sync builtin atomics... " >&6; }
++
++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++int
++main ()
++{
++__sync_synchronize()
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++     ompi_cv_asm_arch="SYNC_BUILTIN"
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++     as_fn_error $? "__sync builtin atomics requested but not found." "$LINENO" 5
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++
++
++$as_echo "#define OPAL_C_GCC_INLINE_ASSEMBLY 1" >>confdefs.h
++
++       if test "$WANT_MPI_CXX_SUPPORT" = "1"; then :
++
++$as_echo "#define OMPI_CXX_GCC_INLINE_ASSEMBLY 1" >>confdefs.h
++
++fi
+     else
+ 
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking if .proc/endp is needed" >&5
+@@ -27464,10 +27631,45 @@ as_fn_error $? "Can not continue." "$LINENO" 5
+             ;;
+ 
+         *)
+-            as_fn_error $? "No atomic primitives available for $host" "$LINENO" 5
++
++  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync builtin atomics" >&5
++$as_echo_n "checking for __sync builtin atomics... " >&6; }
++
++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++int
++main ()
++{
++__sync_synchronize()
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++     ompi_cv_asm_arch="SYNC_BUILTIN"
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++     as_fn_error $? "No atomic primitives available for $host" "$LINENO" 5
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++
+             ;;
+         esac
+ 
++      if test "$ompi_cv_asm_arch" = "SYNC_BUILTIN" ; then
++
++$as_echo "#define OPAL_C_GCC_INLINE_ASSEMBLY 1" >>confdefs.h
++
++        if test "$WANT_MPI_CXX_SUPPORT" = "1"; then :
++
++$as_echo "#define OMPI_CXX_GCC_INLINE_ASSEMBLY 1" >>confdefs.h
++
++fi
++      else
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define OPAL_ASM_SUPPORT_64BIT $OPAL_ASM_SUPPORT_64BIT
+@@ -27866,6 +28068,7 @@ cat >>confdefs.h <<_ACEOF
+ _ACEOF
+ 
+ 
++      fi # if ompi_cv_asm_arch = SYNC_BUILTIN
+     fi # if cv_c_compiler_vendor = microsoft
+ 
+     result="OMPI_$ompi_cv_asm_arch"
+@@ -27885,7 +28088,7 @@ _ACEOF
+ 
+ 
+ 
+-if test "$ompi_cv_asm_arch" != "WINDOWS" ; then
++if test "$ompi_cv_asm_arch" != "WINDOWS" -a "$ompi_cv_asm_arch" != "SYNC_BUILTIN" ; then
+     # Extract the first word of "perl", so it can be a program name with args.
+ set dummy perl; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
diff --git a/SOURCES/openmpi-1.6.4-ppc64le.patch b/SOURCES/openmpi-1.6.4-ppc64le.patch
new file mode 100644
index 0000000..3e2fd36
--- /dev/null
+++ b/SOURCES/openmpi-1.6.4-ppc64le.patch
@@ -0,0 +1,30 @@
+diff -up openmpi-1.6.4/configure.ppc64le openmpi-1.6.4/configure
+--- openmpi-1.6.4/configure.ppc64le	2014-09-09 09:33:10.960054144 +0000
++++ openmpi-1.6.4/configure	2014-09-09 09:34:37.930058864 +0000
+@@ -27239,7 +27239,7 @@ _ACEOF
+             OMPI_GCC_INLINE_ASSIGN='"or %0,$0,$0" : "=&r"(ret)'
+             ;;
+ 
+-        powerpc-*|powerpc64-*)
++        powerpc-*|powerpc64-*|powerpc64le-*)
+ 
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking if PowerPC registers have r prefix" >&5
+ $as_echo_n "checking if PowerPC registers have r prefix... " >&6; }
+@@ -79533,7 +79533,7 @@ $as_echo "$compile_mode" >&6; }
+ 
+ 
+    case "${host}" in
+-   i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|sparc*-*linux*)
++   i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|powerpc64le-*linux*|sparc*-*linux*)
+               if test -r "/proc/cpuinfo"; then :
+   pstat_linux_happy="yes"
+ else
+@@ -85999,7 +85999,7 @@ fi
+ fi
+ 
+    case "${host}" in
+-   i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|sparc*-*linux*)
++   i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|powerpc64le-*linux*|sparc*-*linux*)
+         if test "$timer_linux_happy" = "yes"; then :
+   if test -r "/proc/cpuinfo"; then :
+   timer_linux_happy="yes"
diff --git a/SOURCES/openmpi-ltdl.patch b/SOURCES/openmpi-ltdl.patch
new file mode 100644
index 0000000..403b2c3
--- /dev/null
+++ b/SOURCES/openmpi-ltdl.patch
@@ -0,0 +1,89 @@
+diff -up openmpi-1.6.3/ompi/debuggers/dlopen_test.c.ltdl openmpi-1.6.3/ompi/debuggers/dlopen_test.c
+--- openmpi-1.6.3/ompi/debuggers/dlopen_test.c.ltdl	2012-04-03 08:30:25.000000000 -0600
++++ openmpi-1.6.3/ompi/debuggers/dlopen_test.c	2012-11-05 10:28:06.365041243 -0700
+@@ -13,7 +13,17 @@
+ #include <string.h>
+ #include <stdlib.h>
+ 
+-#include "opal/libltdl/ltdl.h"
++#if OPAL_WANT_LIBLTDL
++  #ifndef __WINDOWS__
++    #if OPAL_LIBLTDL_INTERNAL
++      #include "opal/libltdl/ltdl.h"
++    #else
++      #include "ltdl.h"
++    #endif
++  #else
++    #include "ltdl.h"
++  #endif
++#endif
+ 
+ static int do_test(void);
+ 
+diff -up openmpi-1.6.3/ompi/debuggers/Makefile.in.ltdl openmpi-1.6.3/ompi/debuggers/Makefile.in
+--- openmpi-1.6.3/ompi/debuggers/Makefile.in.ltdl	2012-10-24 09:40:15.000000000 -0600
++++ openmpi-1.6.3/ompi/debuggers/Makefile.in	2012-11-05 10:59:10.288662790 -0700
+@@ -346,7 +346,7 @@ libompi_debugger_canary_la_OBJECTS =  \
+ @OPAL_HAVE_DLOPEN_TRUE@am__EXEEXT_1 = dlopen_test$(EXEEXT)
+ am_dlopen_test_OBJECTS = dlopen_test-dlopen_test.$(OBJEXT)
+ dlopen_test_OBJECTS = $(am_dlopen_test_OBJECTS)
+-dlopen_test_DEPENDENCIES = $(top_builddir)/opal/libltdl/libltdlc.la
++dlopen_test_DEPENDENCIES =
+ am_predefined_gap_test_OBJECTS = predefined_gap_test.$(OBJEXT)
+ predefined_gap_test_OBJECTS = $(am_predefined_gap_test_OBJECTS)
+ predefined_gap_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+@@ -1216,8 +1216,8 @@ headers = \
+ 
+ # Simple checks to ensure that the DSOs are functional
+ dlopen_test_SOURCES = dlopen_test.c
+-dlopen_test_CPPFLAGS = -I$(top_srcdir)/opal/libltdl
+-dlopen_test_LDADD = $(top_builddir)/opal/libltdl/libltdlc.la
++dlopen_test_CPPFLAGS = $(LTDLINCL)
++dlopen_test_LDADD = $(LIBLTDL)
+ predefined_gap_test_SOURCES = predefined_gap_test.c
+ predefined_gap_test_LDFLAGS = $(WRAPPER_EXTRA_LDFLAGS)
+ predefined_gap_test_LDADD = $(top_builddir)/ompi/libmpi.la
+diff -up openmpi-1.6.3/test/support/components.c.ltdl openmpi-1.6.3/test/support/components.c
+--- openmpi-1.6.3/test/support/components.c.ltdl	2012-04-03 08:29:44.000000000 -0600
++++ openmpi-1.6.3/test/support/components.c	2012-11-05 10:28:06.366041244 -0700
+@@ -24,7 +24,17 @@
+ 
+ #include "opal/constants.h"
+ #include "opal/mca/mca.h"
+-#include "opal/libltdl/ltdl.h"
++#if OPAL_WANT_LIBLTDL
++  #ifndef __WINDOWS__
++    #if OPAL_LIBLTDL_INTERNAL
++      #include "opal/libltdl/ltdl.h"
++    #else
++      #include "ltdl.h"
++    #endif
++  #else
++    #include "ltdl.h"
++  #endif
++#endif
+ 
+ #include "components.h"
+ 
+diff -up openmpi-1.6.3/test/support/components.h.ltdl openmpi-1.6.3/test/support/components.h
+--- openmpi-1.6.3/test/support/components.h.ltdl	2012-04-03 08:29:44.000000000 -0600
++++ openmpi-1.6.3/test/support/components.h	2012-11-05 10:28:06.366041244 -0700
+@@ -20,7 +20,17 @@
+ #ifndef OMPI_SUPPORT_COMPONENTS_H
+ #define OMPI_SUPPORT_COMPONENTS_H
+ 
+-#include "opal/libltdl/ltdl.h"
++#if OPAL_WANT_LIBLTDL
++  #ifndef __WINDOWS__
++    #if OPAL_LIBLTDL_INTERNAL
++      #include "opal/libltdl/ltdl.h"
++    #else
++      #include "ltdl.h"
++    #endif
++  #else
++    #include "ltdl.h"
++  #endif
++#endif
+ #include "opal/mca/mca.h"
+ 
+ BEGIN_C_DECLS
diff --git a/SOURCES/openmpi-removed.patch b/SOURCES/openmpi-removed.patch
new file mode 100644
index 0000000..229226d
--- /dev/null
+++ b/SOURCES/openmpi-removed.patch
@@ -0,0 +1,31 @@
+--- openmpi-1.5.5/configure.orig	2012-03-20 20:05:01.000000000 +0000
++++ openmpi-1.5.5/configure	2012-04-03 12:58:28.871397855 +0100
+@@ -150328,10 +150328,6 @@
+ 
+ 
+ 
+-ac_config_files="$ac_config_files opal/mca/backtrace/darwin/Makefile"
+-
+-
+-
+ ac_config_files="$ac_config_files opal/mca/backtrace/execinfo/Makefile"
+ 
+ 
+@@ -174422,7 +174418,6 @@
+     "opal/mca/hwloc/hwloc132/hwloc/src/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/hwloc/hwloc132/hwloc/src/Makefile" ;;
+     "opal/mca/installdirs/config/install_dirs.h") CONFIG_FILES="$CONFIG_FILES opal/mca/installdirs/config/install_dirs.h" ;;
+     "opal/mca/backtrace/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/backtrace/Makefile" ;;
+-    "opal/mca/backtrace/darwin/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/backtrace/darwin/Makefile" ;;
+     "opal/mca/backtrace/execinfo/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/backtrace/execinfo/Makefile" ;;
+     "opal/mca/backtrace/none/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/backtrace/none/Makefile" ;;
+     "opal/mca/backtrace/printstack/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/backtrace/printstack/Makefile" ;;
+--- openmpi-1.5.5/Makefile.in.orig	2012-04-03 12:58:21.937232790 +0100
++++ openmpi-1.5.5/Makefile.in	2012-04-03 12:58:28.874397927 +0100
+@@ -197,7 +197,6 @@
+ 	$(top_srcdir)/config/ext_no_configure_components.m4 \
+ 	$(top_srcdir)/config/mca_m4_config_include.m4 \
+ 	$(top_srcdir)/opal/mca/backtrace/configure.m4 \
+-	$(top_srcdir)/opal/mca/backtrace/darwin/configure.m4 \
+ 	$(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \
+ 	$(top_srcdir)/opal/mca/backtrace/none/configure.m4 \
+ 	$(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \
diff --git a/SOURCES/openmpi.module.in b/SOURCES/openmpi.module.in
new file mode 100644
index 0000000..3f40823
--- /dev/null
+++ b/SOURCES/openmpi.module.in
@@ -0,0 +1,19 @@
+#%Module 1.0
+#
+#  OpenMPI module for use with 'environment-modules' package:
+#
+conflict		mpi
+prepend-path 		PATH 		@LIBDIR@/bin
+prepend-path 		LD_LIBRARY_PATH @LIBDIR@/lib
+prepend-path		PYTHONPATH	@PYSITEARCH@
+prepend-path		MANPATH		@MANDIR@
+setenv 			MPI_BIN		@LIBDIR@/bin
+setenv			MPI_SYSCONFIG	@ETCDIR@
+setenv			MPI_FORTRAN_MOD_DIR	@FMODDIR@
+setenv			MPI_INCLUDE	@INCDIR@
+setenv	 		MPI_LIB		@LIBDIR@/lib
+setenv			MPI_MAN		@MANDIR@
+setenv			MPI_PYTHON_SITEARCH	@PYSITEARCH@
+setenv			MPI_COMPILER	@COMPILER@
+setenv			MPI_SUFFIX	@SUFFIX@
+setenv	 		MPI_HOME	@LIBDIR@
diff --git a/SOURCES/openmpi3.module.in b/SOURCES/openmpi3.module.in
new file mode 100644
index 0000000..7a3479c
--- /dev/null
+++ b/SOURCES/openmpi3.module.in
@@ -0,0 +1,21 @@
+#%Module 1.0
+#
+#  OpenMPI module for use with 'environment-modules' package:
+#
+conflict		mpi
+prepend-path 		PATH 		@LIBDIR@/bin
+prepend-path 		LD_LIBRARY_PATH @LIBDIR@/lib
+prepend-path 		PKG_CONFIG_PATH	@LIBDIR@/lib/pkgconfig
+prepend-path		PYTHONPATH	@PY2SITEARCH@
+prepend-path		MANPATH		@MANDIR@
+setenv 			MPI_BIN		@LIBDIR@/bin
+setenv			MPI_SYSCONFIG	@ETCDIR@
+setenv			MPI_FORTRAN_MOD_DIR	@FMODDIR@
+setenv			MPI_INCLUDE	@INCDIR@
+setenv	 		MPI_LIB		@LIBDIR@/lib
+setenv			MPI_MAN		@MANDIR@
+setenv			MPI_PYTHON_SITEARCH	@PY2SITEARCH@
+setenv			MPI_PYTHON2_SITEARCH	@PY2SITEARCH@
+setenv			MPI_COMPILER	@COMPILER@
+setenv			MPI_SUFFIX	@SUFFIX@
+setenv	 		MPI_HOME	@LIBDIR@
diff --git a/SPECS/openmpi.spec b/SPECS/openmpi.spec
new file mode 100644
index 0000000..d8f3904
--- /dev/null
+++ b/SPECS/openmpi.spec
@@ -0,0 +1,1111 @@
+# We only compile with gcc, but other people may want other compilers.
+# Set the compiler here.
+%global opt_cc gcc
+# Optional CFLAGS to use with the specific compiler...gcc doesn't need any,
+# so uncomment and define to use
+#global opt_cflags
+%global opt_cxx g++
+#global opt_cxxflags
+%global opt_f77 gfortran
+#global opt_fflags
+%global opt_fc gfortran
+#global opt_fcflags
+
+%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
+# Optional name suffix to use...we leave it off when compiling with gcc, but
+# for other compiled versions to install side by side, it will need a
+# suffix in order to keep the names from conflicting.
+#global _cc_name_suffix -gcc
+
+%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
+
+%global majmin 1.10
+%global mainversion	%{majmin}.7
+
+Name:			openmpi%{?_cc_name_suffix}
+Version:		%{mainversion}
+Release:		1%{?dist}
+Summary:		Open Message Passing Interface
+Group:			Development/Libraries
+License:		BSD and MIT and Romio
+URL:			http://www.open-mpi.org/
+
+Source0:		http://www.open-mpi.org/software/ompi/v%{majmin}/downloads/openmpi-%{mainversion}.tar.bz2
+Source1:		openmpi.module.in
+Source2:		macros.openmpi.in
+Patch1:			0001-Add-Chelsio-T6-adapter-device-parameters.patch
+Patch2:			0002-btl-openib-fix-segmentation-fault.patch
+
+# openmpi-1.6.4-clean.tar.xz was generated by taking the upstream tarball
+# and removing license-incompatible files:
+# rm -r opal/mca/backtrace/darwin/MoreBacktrace
+Source100:		openmpi-1.6.4-clean.tar.xz
+# Patch to handle removed items
+Patch100:		openmpi-removed.patch
+# Patch to use system ltdl for tests
+Patch101:               openmpi-ltdl.patch
+# Learn configure about ppc64le
+Patch102:		openmpi-1.6.4-ppc64le.patch
+# Backport of gcc atomics needed for AArch64
+Patch103:		openmpi-1.6.4-aarch64.patch
+
+Source300:              https://www.open-mpi.org/software/ompi/v3.0/downloads/openmpi-3.0.0.tar.bz2
+Source301:              openmpi3.module.in
+Source302:              macros.openmpi3
+# Only for ppc64le
+# https://github.com/open-mpi/ompi/issues/2526
+# https://github.com/open-mpi/ompi/issues/2966
+Patch301:               0001-tests-disable-opal_fifo-test.patch
+
+BuildRequires:		gcc-gfortran
+#sparc 64 doesn't have valgrind
+%ifnarch %{sparc} s390
+BuildRequires:		valgrind-devel
+%endif
+BuildRequires:		libibverbs-devel >= 1.1.3, opensm-devel > 3.3.0
+BuildRequires:		librdmacm-devel
+BuildRequires:		hwloc-devel
+BuildRequires:		python libtool-ltdl-devel
+BuildRequires:		libesmtp-devel
+BuildRequires:		libfabric-devel
+%ifarch x86_64
+BuildRequires:		infinipath-psm-devel libpsm2-devel
+%endif
+%ifarch ppc64le
+BuildRequires:		automake
+%endif
+
+Obsoletes:             openmpi-libs
+Obsoletes:             openmpi-psm
+
+Provides:		mpi
+Requires:		environment-modules
+
+# Provides for compat with openmpi-1.10.0.
+# See the comment about libmpi_usempi.so.1 in the install section.
+%if 0%{?__isa_bits} == 64
+Provides:		libmpi_usempi.so.1()(64bit)
+%else
+Provides:		libmpi_usempi.so.1
+%endif
+
+# Private openmpi libraries
+%global __provides_exclude_from %{_libdir}/(openmpi3|openmpi|compat-openmpi16)/lib/(lib(mca|ompi|open-(pal|rte|trace))|openmpi/).*.so
+%global __requires_exclude lib(mca|ompi|open-(pal|rte|trace)|vt).*
+
+%description
+Open MPI is an open source, freely available implementation of both the 
+MPI-1 and MPI-2 standards, combining technologies and resources from
+several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in
+order to build the best MPI library available.  A completely new MPI-2
+compliant implementation, Open MPI offers advantages for system and
+software vendors, application developers, and computer science
+researchers. For more information, see http://www.open-mpi.org/ .
+
+%package devel
+Summary:        Development files for openmpi
+Group:          Development/Libraries
+Requires:       %{name} = %{mainversion}-%{release}, gcc-gfortran
+Provides:	mpi-devel
+Obsoletes:	openmpi-psm-devel
+
+%description devel
+Contains development headers and libraries for openmpi
+
+%ifnarch ppc ppc64
+%package -n openmpi3%{?_cc_name_suffix}
+Summary:        Open Message Passing Interface 3
+Group:          Development/Libraries
+Version:        3.0.0
+Release:        1%{?dist}
+Provides:       mpi
+Requires:       environment-modules
+Requires:       openssh-clients
+
+%description -n openmpi3%{?_cc_name_suffix}
+The Open MPI Project is an open source Message Passing Interface implementation
+that is developed and maintained by a consortium of academic, research, and
+industry partners. Open MPI is therefore able to combine the expertise,
+technologies, and resources from all across the High Performance Computing
+community in order to build the best MPI library available. Open MPI offers
+advantages for system and software vendors, application developers and computer
+science researchers.
+Features implemented or in short-term development for Open MPI include:
+ * Full MPI-3.1 standards conformance
+ * Thread safety and concurrency
+ * Dynamic process spawning
+ * Network and process fault tolerance
+ * Support network heterogeneity
+ * Single library supports all networks
+ * Run-time instrumentation
+ * Many job schedulers supported
+ * Many OS's supported (32 and 64 bit)
+ * Production quality software
+ * High performance on all platforms
+ * Portable and maintainable
+ * Tunable by installers and end-users
+ * Component-based design, documented APIs
+ * Active, responsive mailing list
+ * Open source license based on the BSD license
+
+%package -n openmpi3%{?_cc_name_suffix}-devel
+Summary:        Development files for openmpi3
+Group:          Development/Libraries
+Version:        3.0.0
+Release:        %{release}
+Requires:       openmpi3%{?_cc_name_suffix}%{?_isa} = %{version}-%{release}, gcc-gfortran
+Provides:       mpi-devel
+
+%description -n openmpi3%{?_cc_name_suffix}-devel
+Contains development headers and libraries for openmpi3.
+
+%endif
+
+%ifnarch s390 s390x
+%package -n compat-openmpi16%{?_cc_name_suffix}
+Summary:        Open MPI 1.6 compat library
+Group:          Development/Libraries
+Version:        1.6.4
+Release:        10.6%{?dist}
+Provides:       mpi
+Requires:       environment-modules
+
+%description -n compat-openmpi16%{?_cc_name_suffix}
+Open MPI is an open source, freely available implementation of both the
+MPI-1 and MPI-2 standards, combining technologies and resources from
+several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in
+order to build the best MPI library available.  A completely new MPI-2
+compliant implementation, Open MPI offers advantages for system and
+software vendors, application developers, and computer science
+researchers. For more information, see http://www.open-mpi.org/ .
+
+This package provides compatibility for applications compiled with Open MPI
+version 1.6.
+
+%package -n compat-openmpi16%{?_cc_name_suffix}-devel
+Summary:        Development files for compat-openmpi16
+Group:          Development/Libraries
+Version:        1.6.4
+Release:        %{release}
+Requires:       compat-openmpi16%{?_cc_name_suffix}%{?_isa} = %{version}-%{release}, gcc-gfortran
+Provides:       mpi-devel
+
+%description -n compat-openmpi16%{?_cc_name_suffix}-devel
+Contains development headers and libraries for compat-openmpi16
+
+%endif
+
+# When dealing with multilib installations, aka the ability to run either
+# i386 or x86_64 binaries on x86_64 machines, we install the native i386
+# openmpi libs/compilers and the native x86_64 libs/compilers.  Obviously,
+# on i386 you can only run i386, so you don't really need the -m32 flag
+# to gcc in order to force 32 bit mode.  However, since we use the native
+# i386 package to support i386 operation on x86_64, and since on x86_64
+# the default is x86_64, the i386 package needs to force i386 mode.  This
+# is true of all the multilib arches, hence the non-default arch (aka i386
+# on x86_64) must force the non-default mode (aka 32 bit compile) in it's
+# native-arch package (aka, when built on i386) so that it will work
+# properly on the non-native arch as a multilib package (aka i386 installed
+# on x86_64).  Just to be safe, we also force the default mode (aka 64 bit)
+# in default arch packages (aka, the x86_64 package).  There are, however,
+# some arches that don't support forcing *any* mode, those we just leave
+# undefined.
+
+%ifarch %{ix86} ppc sparcv9
+%global mode 32
+%global modeflag -m32
+%endif
+%ifarch ia64
+%global mode 64
+%endif
+%ifarch x86_64 %{power64} sparc64
+%global mode 64
+%global modeflag -m64
+%endif
+
+%prep
+%setup -q -n openmpi-%{mainversion} -b 100 -b 300
+%patch1 -p1
+%patch2 -p1
+cd ..
+
+cd openmpi-3.0.0
+%ifarch ppc64le
+%patch301 -p1
+%endif
+cd ..
+
+cd openmpi-1.6.4
+%patch100 -p1 -b .removed
+%patch101 -p1 -b .ltdl
+%ifarch ppc64le
+%patch102 -p1 -b .ppc64le
+%endif
+%ifarch aarch64
+%patch103 -p1 -b .aarch64
+%endif
+# Make sure we don't use the local libltdl library
+rm -r opal/libltdl
+cd ..
+
+%build
+# We set this to for convenience, since this is the unique dir we use for this
+# particular package, version, compiler
+%global variant openmpi
+%global libname %{variant}%{?_cc_name_suffix}
+%global namearch %{variant}-%{_arch}%{?_cc_name_suffix}
+
+# %%configure macro would change --prefix
+./configure --prefix=%{_libdir}/%{libname} \
+%ifarch armv5tel
+	--build=armv5tel-redhat-linux-gnueabi \
+	--host=armv5tel-redhat-linux-gnueabi \
+%endif
+	--mandir=%{_mandir}/%{namearch} \
+	--includedir=%{_includedir}/%{namearch} \
+	--sysconfdir=%{_sysconfdir}/%{namearch} \
+	--disable-silent-rules \
+	--with-verbs=/usr \
+	--with-sge \
+%ifnarch %{sparc} s390
+	--with-valgrind \
+	--enable-memchecker \
+%endif
+%ifarch aarch64
+	--enable-builtin-atomics \
+%endif
+	--with-hwloc=/usr \
+	--with-libltdl=/usr \
+	--with-wrapper-cflags="%{?modeflag}" \
+	--with-wrapper-cxxflags="%{?modeflag}" \
+	--with-wrapper-fcflags="%{?modeflag}" \
+	CC=%{opt_cc} CXX=%{opt_cxx} \
+	LDFLAGS='-Wl,-z,noexecstack' \
+	CFLAGS="%{?opt_cflags} %{!?opt_cflags:$RPM_OPT_FLAGS}" \
+	CXXFLAGS="%{?opt_cxxflags} %{!?opt_cxxflags:$RPM_OPT_FLAGS}" \
+	FC=%{opt_fc} FCFLAGS="%{?opt_fcflags} %{!?opt_fcflags:$RPM_OPT_FLAGS}"
+
+make %{?_smp_mflags}
+cd ..
+
+%ifnarch ppc ppc64
+%global variant openmpi3
+%global libname %{variant}%{?_cc_name_suffix}
+%global namearch %{variant}-%{_arch}%{?_cc_name_suffix}
+
+cd openmpi-3.0.0
+./configure --prefix=%{_libdir}/%{libname} \
+	--mandir=%{_mandir}/%{namearch} \
+	--includedir=%{_includedir}/%{namearch} \
+	--sysconfdir=%{_sysconfdir}/%{namearch} \
+	--disable-silent-rules \
+	--enable-builtin-atomics \
+	--enable-mpi-cxx \
+	--with-sge \
+%ifnarch s390
+	--with-valgrind \
+	--enable-memchecker \
+%endif
+	--with-hwloc=/usr \
+	CC=%{opt_cc} CXX=%{opt_cxx} \
+	LDFLAGS='%{__global_ldflags}' \
+	CFLAGS="%{?opt_cflags} %{!?opt_cflags:$RPM_OPT_FLAGS}" \
+	CXXFLAGS="%{?opt_cxxflags} %{!?opt_cxxflags:$RPM_OPT_FLAGS}" \
+	FC=%{opt_fc} FCFLAGS="%{?opt_fcflags} %{!?opt_fcflags:$RPM_OPT_FLAGS}"
+# This fails - https://github.com/open-mpi/ompi/issues/2616
+#	--with-hwloc=external \
+# We cannot use external pmix without external libevent
+#	--with-pmix=external \
+
+make %{?_smp_mflags}
+cd ..
+%endif
+
+%ifnarch s390 s390x
+%global variant compat-openmpi16
+%global libname %{variant}%{?_cc_name_suffix}
+%global namearch %{variant}-%{_arch}%{?_cc_name_suffix}
+
+cd openmpi-1.6.4
+
+%ifarch ppc64le
+# learn autotools about new arch
+cp -p %{_datadir}/automake-*/config.{guess,sub} ./config/
+cp -p %{_datadir}/automake-*/config.{guess,sub} ./ompi/mca/io/romio/romio/confdb/
+cp -p %{_datadir}/automake-*/config.{guess,sub} ./ompi/contrib/vt/vt/config/
+cp -p %{_datadir}/automake-*/config.{guess,sub} ./ompi/contrib/vt/vt/extlib/otf/config/
+%endif
+# %%configure macro would change --prefix
+./configure --prefix=%{_libdir}/%{libname} \
+%ifarch armv5tel
+	--build=armv5tel-redhat-linux-gnueabi \
+	--host=armv5tel-redhat-linux-gnueabi \
+%endif
+	--mandir=%{_mandir}/%{namearch} \
+	--includedir=%{_includedir}/%{namearch} \
+	--sysconfdir=%{_sysconfdir}/%{namearch} \
+	--disable-silent-rules \
+	--enable-opal-multi-threads \
+	--with-openib=/usr \
+	--with-sge \
+%ifnarch %{sparc} s390
+	--with-valgrind \
+	--enable-memchecker \
+%endif
+%ifarch aarch64
+	--enable-builtin-atomics \
+%endif
+	--with-esmtp \
+	--with-hwloc=/usr \
+	--with-libltdl=/usr \
+	--with-wrapper-cflags="%{?modeflag}" \
+	--with-wrapper-cxxflags="%{?modeflag}" \
+	--with-wrapper-fflags="%{?modeflag}" \
+	--with-wrapper-fcflags="%{?modeflag}" \
+	CC=%{opt_cc} CXX=%{opt_cxx} \
+	LDFLAGS='-Wl,-z,noexecstack' \
+	CFLAGS="%{?opt_cflags} %{!?opt_cflags:$RPM_OPT_FLAGS}" \
+	CXXFLAGS="%{?opt_cxxflags} %{!?opt_cxxflags:$RPM_OPT_FLAGS}" \
+	FC=%{opt_fc} FCFLAGS="%{?opt_fcflags} %{!?opt_fcflags:$RPM_OPT_FLAGS}" \
+	F77=%{opt_f77} FFLAGS="%{?opt_fflags} %{!?opt_fflags:$RPM_OPT_FLAGS}"
+
+make %{?_smp_mflags}
+cd ..
+%endif
+
+%install
+%global variant openmpi
+%global libname %{variant}%{?_cc_name_suffix}
+%global namearch %{variant}-%{_arch}%{?_cc_name_suffix}
+
+make install DESTDIR=%{buildroot}
+rm -fr %{buildroot}%{_libdir}/%{libname}/lib/pkgconfig
+find %{buildroot}%{_libdir}/%{libname}/lib -name \*.la | xargs rm
+find %{buildroot}%{_mandir}/%{namearch} -type f | xargs gzip -9
+ln -s mpicc.1.gz %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1.gz
+rm -f %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1
+rm -f %{buildroot}%{_mandir}/%{namearch}/man1/orteCC.1*
+rm -f %{buildroot}%{_libdir}/%{libname}/share/vampirtrace/doc/opari/lacsi01.ps.gz
+mkdir %{buildroot}%{_mandir}/%{namearch}/man{2,4,5,6,8,9,n}
+
+# Make the environment-modules file
+mkdir -p %{buildroot}%{_sysconfdir}/modulefiles/mpi
+# Since we're doing our own substitution here, use our own definitions.
+sed 's#@LIBDIR@#'%{_libdir}/%{libname}'#g;
+     s#@ETCDIR@#'%{_sysconfdir}/%{namearch}'#g;
+     s#@FMODDIR@#'%{_fmoddir}/%{namearch}'#g;
+     s#@INCDIR@#'%{_includedir}/%{namearch}'#g;
+     s#@MANDIR@#'%{_mandir}/%{namearch}'#g;
+     s#@PYSITEARCH@#'%{python_sitearch}/%{libname}'#g;
+     s#@COMPILER@#%{variant}-'%{_arch}%{?_cc_name_suffix}'#g;
+     s#@SUFFIX@#'%{?_cc_name_suffix}'_%{variant}#g' \
+     < %SOURCE1 \
+     > %{buildroot}%{_sysconfdir}/modulefiles/mpi/%{namearch}
+
+# make the rpm config file
+mkdir -p %{buildroot}/%{_sysconfdir}/rpm
+LIBNAME="%{libname}"
+# do not expand _arch
+sed "s#@MACRONAME@#${LIBNAME//-/_}#g;s#@MODULENAME@#%{variant}-%%{_arch}%{?_cc_name_suffix}#" < %SOURCE2 > %{buildroot}/%{_sysconfdir}/rpm/macros.%{namearch}
+mkdir -p %{buildroot}/%{_fmoddir}/%{namearch}
+mkdir -p %{buildroot}/%{python_sitearch}/%{libname}
+# Remove extraneous wrapper link libraries (bug 814798)
+#sed -i -e s/-ldl// -e s/-lhwloc// \
+#  %{buildroot}%{_libdir}/%{libname}/bin/orte_wrapper_script \
+#  %{buildroot}%{_libdir}/%{libname}/share/%{libname}/*-wrapper-data.txt
+
+# openmpi 1.10.2 bumped the soname of libmpi_usempi.so from .1 to .5,
+# even though it only added new interfaces (MPI_Aint_{add,diff}),
+# which was a compatible change. So it's OK to add a compat symlink:
+ln -s libmpi_usempi.so.5 %{buildroot}/%{_libdir}/%{libname}/lib/libmpi_usempi.so.1
+
+cd ..
+
+%ifnarch ppc ppc64
+%global variant openmpi3
+%global libname %{variant}%{?_cc_name_suffix}
+%global namearch %{variant}-%{_arch}%{?_cc_name_suffix}
+
+cd openmpi-3.0.0
+make install DESTDIR=%{buildroot}
+find %{buildroot}%{_libdir}/%{libname}/lib -name \*.la | xargs rm
+find %{buildroot}%{_mandir}/%{namearch} -type f | xargs gzip -9
+ln -s mpicc.1.gz %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1.gz
+# Remove dangling symlink
+rm %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1
+mkdir %{buildroot}%{_mandir}/%{namearch}/man{2,4,5,6,8,9,n}
+
+# Make the environment-modules file
+mkdir -p %{buildroot}%{_sysconfdir}/modulefiles/mpi
+# Since we're doing our own substitution here, use our own definitions.
+sed 's#@LIBDIR@#%{_libdir}/%{libname}#;
+     s#@ETCDIR@#%{_sysconfdir}/%{namearch}#;
+     s#@FMODDIR@#%{_fmoddir}/%{libname}#;
+     s#@INCDIR@#%{_includedir}/%{namearch}#;
+     s#@MANDIR@#%{_mandir}/%{namearch}#;
+     s#@PY2SITEARCH@#%{python_sitearch}/%{libname}#;
+     s#@COMPILER@#%{variant}-'%{_arch}%{?_cc_name_suffix}'#g;
+     s#@SUFFIX@#'%{?_cc_name_suffix}'_%{variant}#g' \
+     <%{SOURCE301} \
+     >%{buildroot}%{_sysconfdir}/modulefiles/mpi/%{namearch}
+
+# make the rpm config file
+install -Dpm 644 %{SOURCE302} %{buildroot}/%{macrosdir}/macros.%{namearch}
+
+# Link the fortran module to proper location
+mkdir -p %{buildroot}%{_fmoddir}/%{libname}
+for mod in %{buildroot}%{_libdir}/%{libname}/lib/*.mod
+do
+  modname=$(basename $mod)
+  ln -s ../../../%{libname}/lib/${modname} %{buildroot}/%{_fmoddir}/%{libname}/
+done
+
+mkdir -p %{buildroot}/%{python_sitearch}/%{libname}
+
+# Link the pkgconfig files into the main namespace as well
+mkdir -p %{buildroot}%{_libdir}/pkgconfig
+cd %{buildroot}%{_libdir}/pkgconfig
+ln -s ../%{libname}/lib/pkgconfig/*.pc .
+cd -
+
+cd ..
+%endif
+
+%ifnarch s390 s390x
+%global variant compat-openmpi16
+%global libname %{variant}%{?_cc_name_suffix}
+%global namearch %{variant}-%{_arch}%{?_cc_name_suffix}
+
+cd openmpi-1.6.4
+make install DESTDIR=%{buildroot}
+rm -fr %{buildroot}%{_libdir}/%{libname}/lib/pkgconfig
+find %{buildroot}%{_libdir}/%{libname}/lib -name \*.la | xargs rm
+find %{buildroot}%{_mandir}/%{namearch} -type f | xargs gzip -9
+ln -s mpicc.1.gz %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1.gz
+rm -f %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1
+rm -f %{buildroot}%{_mandir}/%{namearch}/man1/orteCC.1*
+rm -f %{buildroot}%{_libdir}/%{libname}/share/vampirtrace/doc/opari/lacsi01.ps.gz
+mkdir %{buildroot}%{_mandir}/%{namearch}/man{2,4,5,6,8,9,n}
+
+# Make the environment-modules file
+mkdir -p %{buildroot}%{_sysconfdir}/modulefiles/mpi
+# Since we're doing our own substitution here, use our own definitions.
+sed 's#@LIBDIR@#'%{_libdir}/%{libname}'#g;s#@ETCDIR@#'%{_sysconfdir}/%{namearch}'#g;s#@FMODDIR@#'%{_fmoddir}/%{namearch}'#g;s#@INCDIR@#'%{_includedir}/%{namearch}'#g;s#@MANDIR@#'%{_mandir}/%{namearch}'#g;s#@PYSITEARCH@#'%{python_sitearch}/%{libname}'#g;s#@COMPILER@#%{variant}-'%{_arch}%{?_cc_name_suffix}'#g;s#@SUFFIX@#'%{?_cc_name_suffix}'_%{variant}#g' < %SOURCE1 > %{buildroot}%{_sysconfdir}/modulefiles/mpi/%{namearch}
+# make the rpm config file
+mkdir -p %{buildroot}/%{_sysconfdir}/rpm
+LIBNAME="%{libname}"
+# do not expand _arch
+sed "s#@MACRONAME@#${LIBNAME//-/_}#g;s#@MODULENAME@#%{variant}-%%{_arch}%{?_cc_name_suffix}#" < %SOURCE2 > %{buildroot}/%{_sysconfdir}/rpm/macros.%{namearch}
+mkdir -p %{buildroot}/%{_fmoddir}/%{namearch}
+mkdir -p %{buildroot}/%{python_sitearch}/%{libname}
+# Remove extraneous wrapper link libraries (bug 814798)
+sed -i -e s/-ldl// -e s/-lhwloc// \
+  %{buildroot}%{_libdir}/%{libname}/bin/orte_wrapper_script \
+  %{buildroot}%{_libdir}/%{libname}/share/%{name}/*-wrapper-data.txt
+cd ..
+%endif
+
+%check
+make check
+cd ..
+
+%ifnarch ppc ppc64
+cd openmpi-3.0.0
+make check
+cd ..
+%endif
+
+%ifnarch s390 s390x
+cd openmpi-1.6.4
+make check
+cd ..
+%endif
+
+%global variant openmpi
+%global libname %{variant}%{?_cc_name_suffix}
+%global namearch %{variant}-%{_arch}%{?_cc_name_suffix}
+
+%files
+%dir %{_libdir}/%{name}
+%dir %{_sysconfdir}/%{namearch}
+%dir %{_libdir}/%{name}/bin
+%dir %{_libdir}/%{name}/lib
+%dir %{_libdir}/%{name}/lib/openmpi
+%dir %{_mandir}/%{namearch}
+%dir %{_mandir}/%{namearch}/man*
+%dir %{_fmoddir}/%{namearch}
+%dir %{_sysconfdir}/modulefiles/mpi
+%dir %{python_sitearch}/%{name}
+%config(noreplace) %{_sysconfdir}/%{namearch}/*
+%{_libdir}/%{name}/bin/mpi[er]*
+%{_libdir}/%{name}/bin/ompi*
+%{_libdir}/%{name}/bin/opari
+%{_libdir}/%{name}/bin/orte*
+%{_libdir}/%{name}/bin/oshmem_info
+%{_libdir}/%{name}/bin/oshrun
+%{_libdir}/%{name}/bin/otf*
+%{_libdir}/%{name}/bin/shmemrun
+%{_libdir}/%{name}/lib/*.so.*
+%{_mandir}/%{namearch}/man1/mpi[er]*
+%{_mandir}/%{namearch}/man1/ompi*
+%{_mandir}/%{namearch}/man1/orte[-dr_]*
+%{_mandir}/%{namearch}/man1/oshmem_info*
+%{_mandir}/%{namearch}/man1/oshrun*
+%{_mandir}/%{namearch}/man1/shmemrun*
+%{_mandir}/%{namearch}/man7/ompi*
+%{_mandir}/%{namearch}/man7/orte*
+%{_libdir}/%{name}/lib/openmpi/*
+%{_sysconfdir}/modulefiles/mpi/%{namearch}
+%dir %{_libdir}/%{name}/share
+%dir %{_libdir}/%{name}/share/openmpi
+%{_libdir}/%{name}/share/openmpi/doc
+%{_libdir}/%{name}/share/openmpi/amca-param-sets
+%{_libdir}/%{name}/share/openmpi/help*.txt
+%{_libdir}/%{name}/share/openmpi/mca-btl-openib-device-params.ini
+%{_libdir}/%{name}/share/openmpi/mca-coll-ml.config
+
+%files devel
+%dir %{_includedir}/%{namearch}
+%dir %{_libdir}/%{name}/share/vampirtrace
+%{_libdir}/%{name}/bin/mpi[cCf]*
+%{_libdir}/%{name}/bin/opal_*
+%{_libdir}/%{name}/bin/orte[cCf]*
+%{_libdir}/%{name}/bin/osh[cf]*
+%{_libdir}/%{name}/bin/shmem[cf]*
+%{_libdir}/%{name}/bin/vt*
+%{_includedir}/%{namearch}/*
+%{_libdir}/%{name}/lib/*.so
+%{_libdir}/%{name}/lib/lib*.a
+%{_libdir}/%{name}/lib/mpi.mod
+%{_mandir}/%{namearch}/man1/mpi[cCf]*
+%{_mandir}/%{namearch}/man1/osh[cCf]*
+%{_mandir}/%{namearch}/man1/shmem[cCf]*
+%{_mandir}/%{namearch}/man1/opal_*
+%{_mandir}/%{namearch}/man3/*
+%{_mandir}/%{namearch}/man7/opal*
+%{_libdir}/%{name}/share/openmpi/openmpi-valgrind.supp
+%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt
+%{_libdir}/%{name}/share/vampirtrace/*
+%{_sysconfdir}/rpm/macros.%{namearch}
+
+%ifnarch ppc ppc64
+%global variant openmpi3
+%global libname %{variant}%{?_cc_name_suffix}
+%global namearch %{variant}-%{_arch}%{?_cc_name_suffix}
+
+%files -n openmpi3%{?_cc_name_suffix}
+%dir %{_libdir}/%{libname}
+%dir %{_sysconfdir}/%{namearch}
+%dir %{_libdir}/%{libname}/bin
+%dir %{_libdir}/%{libname}/lib
+%dir %{_libdir}/%{libname}/lib/openmpi
+%dir %{_libdir}/%{libname}/lib/pmix
+%dir %{_mandir}/%{namearch}
+%dir %{_mandir}/%{namearch}/man*
+%dir %{_fmoddir}/%{libname}
+%dir %{_sysconfdir}/modulefiles/mpi
+%dir %{python_sitearch}/%{libname}
+%config(noreplace) %{_sysconfdir}/%{namearch}/*
+%{_libdir}/%{libname}/bin/mpi[er]*
+%{_libdir}/%{libname}/bin/ompi*
+%{_libdir}/%{libname}/bin/orte[-dr_]*
+%{_libdir}/%{libname}/bin/oshmem_info
+%{_libdir}/%{libname}/bin/oshrun
+%{_libdir}/%{libname}/bin/shmemrun
+%{_libdir}/%{libname}/lib/*.so.*
+%{_mandir}/%{namearch}/man1/mpi[er]*
+%{_mandir}/%{namearch}/man1/ompi*
+%{_mandir}/%{namearch}/man1/orte[-dr_]*
+%{_mandir}/%{namearch}/man1/oshmem_info*
+%{_mandir}/%{namearch}/man1/oshrun*
+%{_mandir}/%{namearch}/man1/shmemrun*
+%{_mandir}/%{namearch}/man7/orte*
+%{_mandir}/%{namearch}/man7/ompi*
+%{_mandir}/%{namearch}/man7/opal*
+%{_libdir}/%{libname}/lib/openmpi/*
+%{_libdir}/%{libname}/lib/pmix/*.so
+%{_sysconfdir}/modulefiles/mpi/%{namearch}
+%dir %{_libdir}/%{libname}/share
+%dir %{_libdir}/%{libname}/share/openmpi
+%dir %{_libdir}/%{libname}/share/pmix
+%{_libdir}/%{libname}/share/openmpi/amca-param-sets
+%{_libdir}/%{libname}/share/openmpi/help*.txt
+%{_libdir}/%{libname}/share/pmix/help*.txt
+%{_libdir}/%{libname}/share/openmpi/mca-btl-openib-device-params.ini
+
+%files -n openmpi3%{?_cc_name_suffix}-devel
+%dir %{_includedir}/%{namearch}
+%{_libdir}/%{libname}/bin/mpi[cCf]*
+%{_libdir}/%{libname}/bin/opal_*
+%{_libdir}/%{libname}/bin/orte[cCf]*
+%{_libdir}/%{libname}/bin/osh[cCf]*
+%{_libdir}/%{libname}/bin/shmem[cCf]*
+%{_includedir}/%{namearch}/*
+%{_fmoddir}/%{libname}/
+%{_libdir}/%{libname}/lib/*.so
+%{_libdir}/%{libname}/lib/*.mod
+%{_libdir}/%{libname}/lib/pkgconfig/
+%{_libdir}/pkgconfig/*.pc
+%{_mandir}/%{namearch}/man1/mpi[cCf]*
+%{_mandir}/%{namearch}/man1/osh[cCf]*
+%{_mandir}/%{namearch}/man1/shmem[cCf]*
+%{_mandir}/%{namearch}/man1/opal_*
+%{_mandir}/%{namearch}/man3/*
+%{_libdir}/%{libname}/share/openmpi/openmpi-valgrind.supp
+%{_libdir}/%{libname}/share/pmix/pmix-valgrind.supp
+%{_libdir}/%{libname}/share/openmpi/*-wrapper-data.txt
+%{macrosdir}/macros.%{namearch}
+%endif
+
+%ifnarch s390 s390x
+%global variant compat-openmpi16
+%global libname %{variant}%{?_cc_name_suffix}
+%global namearch %{variant}-%{_arch}%{?_cc_name_suffix}
+
+%files -n compat-openmpi16%{?_cc_name_suffix}
+%dir %{_libdir}/%{libname}
+%dir %{_sysconfdir}/%{namearch}
+%dir %{_libdir}/%{libname}/bin
+%dir %{_libdir}/%{libname}/lib
+%dir %{_libdir}/%{libname}/lib/openmpi
+%dir %{_mandir}/%{namearch}
+%dir %{_mandir}/%{namearch}/man*
+%dir %{_fmoddir}/%{namearch}
+%dir %{_sysconfdir}/modulefiles/mpi
+%dir %{python_sitearch}/%{libname}
+%config(noreplace) %{_sysconfdir}/%{namearch}/*
+%{_libdir}/%{libname}/bin/mpi[er]*
+%{_libdir}/%{libname}/bin/ompi*
+#%{_libdir}/%{libname}/bin/opal-*
+%{_libdir}/%{libname}/bin/opari
+%{_libdir}/%{libname}/bin/orte*
+%{_libdir}/%{libname}/bin/otf*
+%{_libdir}/%{libname}/lib/*.so.*
+%{_mandir}/%{namearch}/man1/mpi[er]*
+%{_mandir}/%{namearch}/man1/ompi*
+#%{_mandir}/%{namearch}/man1/opal-*
+%{_mandir}/%{namearch}/man1/orte*
+%{_mandir}/%{namearch}/man7/ompi*
+%{_mandir}/%{namearch}/man7/orte*
+%{_libdir}/%{libname}/lib/openmpi/*
+%{_sysconfdir}/modulefiles/mpi/%{namearch}
+#%files common
+%dir %{_libdir}/%{libname}/share
+%dir %{_libdir}/%{libname}/share/openmpi
+%{_libdir}/%{libname}/share/openmpi/doc
+%{_libdir}/%{libname}/share/openmpi/amca-param-sets
+%{_libdir}/%{libname}/share/openmpi/help*.txt
+%{_libdir}/%{libname}/share/openmpi/mca-btl-openib-device-params.ini
+
+%files -n compat-openmpi16%{?_cc_name_suffix}-devel
+%dir %{_includedir}/%{namearch}
+%dir %{_libdir}/%{libname}/share/vampirtrace
+%{_libdir}/%{libname}/bin/mpi[cCf]*
+%{_libdir}/%{libname}/bin/vt*
+%{_libdir}/%{libname}/bin/opal_*
+%{_includedir}/%{namearch}/*
+%{_libdir}/%{libname}/lib/*.so
+%{_libdir}/%{libname}/lib/lib*.a
+%{_libdir}/%{libname}/lib/mpi.mod
+%{_mandir}/%{namearch}/man1/mpi[cCf]*
+%{_mandir}/%{namearch}/man1/opal_*
+%{_mandir}/%{namearch}/man3/*
+%{_mandir}/%{namearch}/man7/opal*
+%{_libdir}/%{libname}/share/openmpi/openmpi-valgrind.supp
+%{_libdir}/%{libname}/share/openmpi/mpi*.txt
+%{_libdir}/%{libname}/share/openmpi/orte*.txt
+%{_libdir}/%{libname}/share/vampirtrace/*
+%{_sysconfdir}/rpm/macros.%{namearch}
+%endif
+
+%changelog
+* Fri Nov 03 2017 Michal Schmidt <mschmidt@redhat.com> - 1.10.7-1
+- Update to upstream release 1.10.7.
+- Add Open MPI 3.0.0 subpackage (openmpi3).
+- Resolves: #1452826
+
+* Fri Sep 15 2017 Michal Schmidt <mschmidt@redhat.com> - 1.10.6-3
+- Fix openib segfault when not all devices are usable.
+- Resolves: #1475835
+
+* Wed Apr 19 2017 Michal Schmidt <mschmidt@redhat.com> - 1.10.6-2
+- Add Chelsio T6 adapter device parameters.
+- Fix License tag format.
+- Resolves: #1435249
+
+* Fri Mar 24 2017 Michal Schmidt <mschmidt@redhat.com> - 1.10.6-1
+- Update to upstream release 1.10.6.
+- Fix missing RPM provides.
+- Resolves: #1382800
+- Resolves: #1365792
+
+* Thu Aug 04 2016 Michal Schmidt <mschmidt@redhat.com> - 1.10.3-3
+- Restore libmpi_usempi.so.1.
+- Related: #1273175
+
+* Tue Jul 05 2016 Michal Schmidt <mschmidt@redhat.com> - 1.10.3-2
+- Rebuild against current libpsm2.
+- Related: #1273175
+
+* Fri Jun 17 2016 Michal Schmidt <mschmidt@redhat.com> - 1.10.3-1
+- Update to upstream release 1.10.3.
+- Stop excluding psm2 MTL by default. The psm/psm2 conflict has been resolved.
+- Resolves: #1273175
+- Resolves: #1285292
+
+* Thu Sep 03 2015 Michal Schmidt <mschmidt@redhat.com> - 1.10.0-10
+- Remove psm2 package variant. Instead use MCA exclusion using config file.
+- Related: #947311
+- Related: #1173305
+
+* Tue Sep 01 2015 Michal Schmidt <mschmidt@redhat.com> - 1.10.0-8
+- Differentiate MPI_COMPILER and MPI_SUFFIX in the variants.
+- Related: #947311
+- Related: #1173305
+
+* Mon Aug 31 2015 Michal Schmidt <mschmidt@redhat.com> - 1.10.0-6
+- Avoid macro expansion in old changelog entry.
+- Related: #947311
+- Related: #1173305
+
+* Fri Aug 28 2015 Michal Schmidt <mschmidt@redhat.com> - 1.10.0-4
+- Disambiguate names of rpm macros among the built variants.
+- Use --with-verbs instead of the deprecated synonym --with-openib.
+- Related: #947311
+- Related: #1173305
+
+* Thu Aug 27 2015 Michal Schmidt <mschmidt@redhat.com> - 1.10.0-3
+- Workaround psm vs psm2 conflict by having two separate packages.
+- Related: #947311
+- Related: #1173305
+
+* Tue Aug 25 2015 Michal Schmidt <mschmidt@redhat.com> - 1.10.0-1
+- New upstream release v1.10.
+- Added 1.6 compat package.
+- Resolves: #947311
+- Resolves: #1173305
+
+* Fri Sep 12 2014 Dan Horák <dhorak@redhat.com> - 1.6.4-5
+- add support for aarch64 (backport by Marcin Juszkiewicz)
+- Resolves: #1132244
+
+* Tue Sep 9 2014 Dan Horák <dhorak@redhat.com> - 1.6.4-4
+- add support for ppc64le
+- Resolves: #1125635
+
+* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 1.6.4-3
+- Mass rebuild 2013-12-27
+
+* Mon Apr 8 2013 Jay Fenlason <fenlason@redhat.com> 1.6.4-2.1
+- Re-merge the fixes needed to build on RHEL-7.
+- Resolves: rhbz927802
+
+* Sat Feb 23 2013 Orion Poplawski <orion@cora.nwra.com> 1.6.4-2
+- Exclude libopen-trace.* from requires
+
+* Fri Feb 22 2013 Orion Poplawski <orion@cora.nwra.com> 1.6.4-1
+- Update to 1.6.4
+- Drop f90sover and arm-atomics patch fixed upstream
+
+* Mon Jan 28 2013 Orion Poplawski <orion@cora.nwra.com> 1.6.3-7
+- Make __requires_exclude more specific so we don't exclude needed libs
+  (bug #905263)
+
+* Sun Nov 18 2012 Peter Robinson <pbrobinson@fedoraproject.org> 1.6.3-6
+- Update atomics patch for ARM (thanks to Jon Masters)
+
+* Sun Nov 11 2012 Peter Robinson <pbrobinson@fedoraproject.org> 1.6.3-5
+- Atomics patch to fix building on ARM (thanks to Jon Masters)
+
+* Mon Nov 5 2012 Orion Poplawski <orion@cora.nwra.com> 1.6.3-4
+- Add patch to fix libmpi_f90.so version
+- Add patch to link tests with system libltdl
+- Run make check
+
+* Fri Nov 2 2012 Orion Poplawski <orion@cora.nwra.com> 1.6.3-3
+- Set enable-opal-multi-threads for IB support
+
+* Thu Nov 1 2012 Orion Poplawski <orion@cora.nwra.com> 1.6.3-2
+- Update rpm macros to use the new module location
+
+* Wed Oct 31 2012 Orion Poplawski <orion@cora.nwra.com> 1.6.3-1
+- Update to 1.6.3
+
+* Sat Oct 13 2012 Orion Poplawski <orion@cora.nwra.com> 1.6.2-1
+- Update to 1.6.2
+- Add BR torque-devel to enable torque support
+- Drop old module file location (bug #838467)
+
+* Thu Sep 13 2012 Orion Poplawski <orion@cora.nwra.com> 1.6.1-2
+- Drop adding -fPIC, no longer needed
+- Set --disable-silent-rules for more verbose build logs
+- Don't add opt_*flags to the wrappers
+- Only use $RPM_OPT_FLAGS if not using the opt_*flags
+
+* Thu Aug 23 2012 Orion Poplawski <orion@cora.nwra.com> 1.6.1-1
+- Update to 1.6.1
+- Drop hostfile patch applied upstream
+
+* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Tue May 15 2012 Orion Poplawski <orion@cora.nwra.com> 1.6-2
+- Add patch from upstream to fix default hostfile location
+
+* Tue May 15 2012 Orion Poplawski <orion@cora.nwra.com> 1.6-1
+- Update to 1.6
+- Drop arm patch, appears to be addressed upstream
+- Remove extraneous wrapper link libraries (bug 814798)
+
+* Tue Apr  3 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 1.5.5-1
+- Update to 1.5.5
+
+* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5.4-5.1
+- Rebuilt for c++ ABI breakage
+
+* Wed Feb 22 2012 Orion Poplawski <orion@cora.nwra.com> 1.5.4-4.1
+- Rebuild with hwloc 1.4
+
+* Wed Feb 15 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 1.5.4-4
+- Rebuild for hwloc soname bump
+
+* Fri Jan 20 2012 Doug Ledford <dledford@redhat.com> - 1.5.4-3
+- Move modules file to mpi directory and make it conflict with any other
+  mpi module (bug #651074)
+
+* Sun Jan 8 2012 Orion Poplawski <orion@cora.nwra.com> 1.5.4-2
+- Rebuild with gcc 4.7 (bug #772443)
+
+* Thu Nov 17 2011 Orion Poplawski <orion@cora.nwra.com> 1.5.4-1
+- Update to 1.5.4
+- Drop dt-textrel patch fixed upstream
+- Fixup handling removed files (bug #722534)
+- Uses hwloc instead of plpa
+- Exclude private libraries from provides/requires (bug #741104)
+- Drop --enable-mpi-threads & --enable-openib-ibcm, no longer recognized
+
+* Sat Jun 18 2011 Peter Robinson <pbrobinson@gmail.com> 1.5-4
+- Exclude ARM platforms due to current lack of "atomic primitives" on the platform
+
+* Thu Mar 17 2011 Jay Fenlason <fenlason@redhat.com> 1.5-3
+- Add dt-textrel patch to close
+  Resolves: bz679489
+- Add memchecker and esmtp support
+  Resolves: bz647011
+
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Mon Oct 18 2010 Jay Fenlason <fenlason@redhat.com> 1.5-1
+- set MANPATH in openmpi module file
+- Upgrade to 1.5
+- Workaround for rhbz#617766 appears to no longer be needed for 1.5
+- remove pkgconfig files in instal
+- Remove orteCC.1 dangling symlink
+- Adjust the files entries for share/openmpi/help* and share/openmpi/mca*
+- Adjust the files entries for share/openmpi/mpi*
+- Add files entry for share/openmpi/orte*.txt
+
+* Sun Sep 05 2010 Dennis Gilmore <dennis@ausil.us> - 1.4.1-7
+- disable valgrind support on sparc arches
+
+* Sat Jul 24 2010 David Malcolm <dmalcolm@redhat.com> - 1.4.1-6
+- workaround for rhbz#617766
+
+* Wed Jul 21 2010 David Malcolm <dmalcolm@redhat.com> - 1.4.1-5
+- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
+
+* Mon Mar 29 2010 Jay Fenlason <fenlason@redhat.com> - 1.4.1-4
+- Update to fix licencing and packaging issues:
+  Use the system plpa and ltdl librarires rather than the ones in the tarball
+  Remove licence incompatible files from the tarball.
+- update module.in to prepend-path		PYTHONPATH
+
+* Tue Mar 9 2010 Jay Fenlason <fenlason@redhat.com> - 1.4.1-3
+- remove the pkgconfig file completely like we did in RHEL.
+
+* Tue Jan 26 2010 Jay Fenlason <fenlason@redhat.com> - 1.4.1-2
+- BuildRequires: python
+
+* Tue Jan 26 2010 Jay Fenlason <fenlason@redhat.com> - 1.4.1-1
+- New upstream version, which includes the changeset_r22324 patch.
+- Correct a typo in the Source0 line in this spec file.
+
+* Fri Jan 15 2010 Doug Ledford <dledford@redhat.com> - 1.4-4
+- Fix an issue with usage of _cc_name_suffix that cause a broken define in
+  our module file
+
+* Fri Jan 15 2010 Doug Ledford <dledford@redhat.com> - 1.4-3
+- Fix pkgconfig file substitution
+- Bump version so we are later than the equivalent version from Red Hat
+  Enterprise Linux
+
+* Wed Jan 13 2010 Doug Ledford <dledford@redhat.com> - 1.4-1
+- Update to latest upstream stable version
+- Add support for libibcm usage
+- Enable sge support via configure options since it's no longer on by default
+- Add patch to resolve allreduce issue (bz538199)
+- Remove no longer needed patch for Chelsio cards
+
+* Tue Sep 22 2009 Jay Fenlason <fenlason@redhat.com> - 1.3.3-6
+- Create and own man* directories for use by dependent packages.
+
+* Wed Sep 16 2009 Jay Fenlason <fenlason@redhat.com> - 1.3.3-5
+- Move the module file from %%{_datadir}/Modules/modulefiles/%%{namearch} to
+  %%{_sysconfdir}/modulefiles/%%{namearch} where it belongs.
+- Have the -devel subpackage own the man1 and man7 directories for completeness.
+- Add a blank line before the clean section.
+- Remove --enable-mpirun-prefix-by-default from configure.
+
+* Wed Sep 9 2009 Jay Fenlason <fenlason@redhat.com> - 1.3.3-4
+- Modify packaging to conform to
+  https://fedoraproject.org/wiki/PackagingDrafts/MPI (bz521334).
+- remove --with-ft=cr from configure, as it was apparently causing problems
+  for some people.
+- Add librdmacm-devel and librdmacm to BuildRequires (related bz515565).
+- Add openmpi-bz515567.patch to add support for the latest Chelsio device IDs
+  (related bz515567).
+- Add exclude-arch (s390 s390x) because we don't have required -devel packages
+  there.
+
+* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Tue Jul 21 2009 Doug Ledford <dledford@redhat.com> - 1.3.3-2
+- Add MPI_BIN and MPI_LIB to the modules file (related bz511099)
+
+* Tue Jul 21 2009 Doug Ledford <dledford@redhat.com> - 1.3.3-1
+- Make sure all created dirs are owned (bz474677)
+- Fix loading of pkgconfig file (bz476844)
+- Resolve file conflict between us and libotf (bz496131)
+- Resolve dangling symlinks issue (bz496909)
+- Resolve unexpanded %%{mode} issues (bz496911)
+- Restore -devel subpackage (bz499851)
+- Make getting the default openmpi devel environment easier (bz504357)
+- Make the -devel package pull in the base package (bz459458)
+- Make it easier to use alternative compilers to build package (bz246484)
+
+* Sat Jul 18 2009 Jussi Lehtola <jussilehtola@fedoraproject.org> - 1.3.1-4
+- Add Provides: openmpi-devel to fix other package builds in rawhide.
+
+* Fri May 08 2009 Lubomir Rintel <lkundrak@v3.sk> - 1.3.1-3
+- Treat i586 the same way as i386
+
+* Wed Apr 22 2009 Doug Ledford <dledford@redhat.com> - 1.3.1-2
+- fixed broken update
+- Resolves: bz496909, bz496131, bz496911
+
+* Tue Apr 14 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 1.3.1-1
+- update to 1.3.1, cleanup alternatives, spec, make new vt subpackage
+
+* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2.4-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Mon Feb 18 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.2.4-2
+- Autorebuild for GCC 4.3
+
+* Wed Oct 17 2007 Doug Ledford <dledford@redhat.com> - 1.2.4-1
+- Update to 1.2.4 upstream version
+- Build against libtorque
+- Pass a valid mode to open
+- Resolves: bz189441, bz265141
+
+* Tue Aug 28 2007 Fedora Release Engineering <rel-eng at fedoraproject dot org> - 1.2.3-5
+- Rebuild for selinux ppc32 issue.
+
+* Mon Jul 16 2007 Doug Ledford <dledford@redhat.com> - 1.2.3-4
+- Fix a directory permission problem on the base openmpi directories
+
+* Thu Jul 12 2007 Florian La Roche <laroche@redhat.com> - 1.2.3-3
+- requires alternatives for various sub-rpms
+
+* Mon Jul 02 2007 Doug Ledford <dledford@redhat.com> - 1.2.3-2
+- Fix dangling symlink issue caused by a bad macro usage
+- Resolves: bz246450
+
+* Wed Jun 27 2007 Doug Ledford <dledford@redhat.com> - 1.2.3-1
+- Update to latest upstream version
+- Fix file ownership on -libs package
+- Take a swing at solving the multi-install compatibility issues
+
+* Mon Feb 19 2007 Doug Ledford <dledford@redhat.com> - 1.1.1-7
+- Bump version to be at least as high as the RHEL4U5 openmpi
+- Integrate fixes made in RHEL4 openmpi into RHEL5 (fix a multilib conflict
+  for the openmpi.module file by moving from _datadir to _libdir, make sure
+  all sed replacements have the g flag so they replace all instances of
+  the marker per line, not just the first, and add a %%defattr tag to the
+  files section of the -libs package to avoid install errors about
+  brewbuilder not being a user or group)
+- Resolves: bz229298
+
+* Wed Jan 17 2007 Doug Ledford <dledford@redhat.com> - 1.1.1-5
+- Remove the FORTIFY_SOURCE and stack protect options
+- Related: bz213075
+
+* Fri Oct 20 2006 Doug Ledford <dledford@redhat.com> - 1.1.1-4
+- Bump and build against the final openib-1.1 package
+
+* Wed Oct 18 2006 Doug Ledford <dledford@redhat.com> - 1.1.1-3
+- Fix an snprintf length bug in opal/util/cmd_line.c
+- RESOLVES: rhbz#210714
+
+* Wed Oct 18 2006 Doug Ledford <dledford@redhat.com> - 1.1.1-2
+- Bump and build against openib-1.1-0.pre1.1 instead of 1.0
+
+* Tue Oct 17 2006 Doug Ledford <dledford@redhat.com> - 1.1.1-1
+- Update to upstream 1.1.1 version
+
+* Fri Oct 13 2006 Doug Ledford <dledford@redhat.com> - 1.1-7
+- ia64 can't take -m64 on the gcc command line, so don't set it there
+
+* Wed Oct 11 2006 Doug Ledford <dledford@redhat.com> - 1.1-6
+- Bump rev to match fc6 rev
+- Fixup some issue with alternatives support
+- Split the 32bit and 64bit libs ld.so.conf.d files into two files so
+  multilib or single lib installs both work properly
+- Put libs into their own package
+- Add symlinks to /usr/share/openmpi/bin%%{mode} so that opal_wrapper-%%{mode}
+  can be called even if it isn't the currently selected default method in
+  the alternatives setup (opal_wrapper needs to be called by mpicc, mpic++,
+  etc. in order to determine compile mode from argv[0]).
+
+* Sun Aug 27 2006 Doug Ledford <dledford@redhat.com> - 1.1-4
+- Make sure the post/preun scripts only add/remove alternatives on initial
+  install and final removal, otherwise don't touch.
+
+* Fri Aug 25 2006 Doug Ledford <dledford@redhat.com> - 1.1-3
+- Don't ghost the mpi.conf file as that means it will get removed when
+  you remove 1 out of a number of alternatives based packages
+- Put the .mod file in -devel
+
+* Mon Aug  7 2006 Doug Ledford <dledford@redhat.com> - 1.1-2
+- Various lint cleanups
+- Switch to using the standard alternatives mechanism instead of a home
+  grown one
+
+* Wed Aug  2 2006 Doug Ledford <dledford@redhat.com> - 1.1-1
+- Upgrade to 1.1
+- Build with Infiniband support via openib
+
+* Mon Jun 12 2006 Jason Vas Dias <jvdias@redhat.com> - 1.0.2-1
+- Upgrade to 1.0.2
+
+* Wed Feb 15 2006 Jason Vas Dias <jvdias@redhat.com> - 1.0.1-1
+- Import into Fedora Core
+- Resolve LAM clashes 
+
+* Wed Jan 25 2006 Orion Poplawski <orion@cora.nwra.com> - 1.0.1-2
+- Use configure options to install includes and libraries
+- Add ld.so.conf.d file to find libraries
+- Add -fPIC for x86_64
+
+* Tue Jan 24 2006 Orion Poplawski <orion@cora.nwra.com> - 1.0.1-1
+- 1.0.1
+- Use alternatives
+
+* Sat Nov 19 2005 Ed Hill <ed@eh3.com> - 1.0-2
+- fix lam conflicts
+
+* Fri Nov 18 2005 Ed Hill <ed@eh3.com> - 1.0-1
+- initial specfile created
+