Hello community, here is the log from the commit of package openmpi for openSUSE:Factory checked in at 2013-03-05 06:46:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openmpi (Old) and /work/SRC/openSUSE:Factory/.openmpi.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openmpi", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/openmpi/openmpi.changes 2013-02-23 16:38:56.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.openmpi.new/openmpi.changes 2013-03-05 06:46:39.000000000 +0100 @@ -1,0 +2,6 @@ +Sun Mar 3 12:40:46 UTC 2013 - [email protected] + +- Add patch for support of sync builtins + (openmpi-sync-builtins.patch) + +------------------------------------------------------------------- New: ---- openmpi-sync-builtins.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openmpi.spec ++++++ --- /var/tmp/diff_new_pack.L2wRls/_old 2013-03-05 06:46:40.000000000 +0100 +++ /var/tmp/diff_new_pack.L2wRls/_new 2013-03-05 06:46:40.000000000 +0100 @@ -19,30 +19,36 @@ %define with_dapl 0 Name: openmpi +Version: 1.6.4 +Release: 0 Summary: A powerful implementaion of MPI License: BSD-3-Clause Group: Development/Libraries/Parallel -Version: 1.6.4 -Release: 0 +Url: http://www.open-mpi.org/ Source0: http://www.open-mpi.org/software/ompi/v1.6/downloads/%{name}-%{version}.tar.bz2 Source1: mpivars.sh Source2: mpivars.csh Source3: baselibs.conf +# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch0: remove-assembler-for-armv5.diff -Url: http://www.open-mpi.org/ -BuildRoot: %{_tmppath}/%{name}-%{version}-build +# PATCH-FEATURE-UPSTREAM openmpi-sync-builtins.patch [svn revision 25498, or 0903ce6 on the git mirror] -- Andreas Schwab, SUSE Labs, [email protected] +Patch1: openmpi-sync-builtins.patch BuildRequires: Modules +BuildRequires: autoconf +BuildRequires: automake BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: gcc-fortran +BuildRequires: libtool BuildRequires: mpi-selector +BuildRoot: %{_tmppath}/%{name}-%{version}-build %if %{with_dapl} BuildRequires: compat-dapl-devel BuildRequires: libibumad-devel BuildRequires: libibverbs-devel %endif # List loosely based on files available in openmpi-1.4.4/opal/asm/generated/ -ExclusiveArch: %alpha %arm x86_64 %ix86 ia64 mips mips64 ppc ppc64 %sparc +ExclusiveArch: %alpha %arm aarch64 x86_64 %ix86 ia64 mips mips64 ppc ppc64 %sparc %ifarch x86_64 BuildRequires: numactl %endif @@ -63,7 +69,6 @@ This RPM contains all the tools necessary to compile, link, and run Open MPI jobs. - %package devel Summary: SDK for openMPI Group: Development/Libraries/Parallel @@ -93,11 +98,13 @@ %prep %setup -q -%ifarch armv5el armv5tel +%ifarch armv5el armv5tel aarch64 %patch0 %endif +%patch1 -p1 %build +./autogen.sh %configure --prefix="%{mpi_prefix}" \ --exec-prefix="%{mpi_prefix}" \ --bindir="%{mpi_bindir}" \ @@ -113,11 +120,11 @@ make %{?_smp_mflags} %install -%makeinstall +%make_install # make and install mpivars files -sed -e 's,prefix,%{mpi_prefix},g' -e 's,libdir,%{mpi_libdir},g' %{S:1} \ +sed -e 's,prefix,%{mpi_prefix},g' -e 's,libdir,%{mpi_libdir},g' %{SOURCE1} \ > %{buildroot}%{mpi_bindir}/mpivars.sh -sed -e 's,prefix,%{mpi_prefix},g' -e 's,libdir,%{mpi_libdir},g' %{S:2} \ +sed -e 's,prefix,%{mpi_prefix},g' -e 's,libdir,%{mpi_libdir},g' %{SOURCE2} \ > %{buildroot}%{mpi_bindir}/mpivars.csh for input in `find %{buildroot}/%{mpi_mandir} -type f` ; do if test -f "$input.gz"; then @@ -177,8 +184,7 @@ %preun /usr/bin/mpi-selector --unregister %{name}-%{version} --yes -%postun -/sbin/ldconfig +%postun -p /sbin/ldconfig %files %defattr(-, root, root) ++++++ openmpi-sync-builtins.patch ++++++ Index: openmpi-1.6.4/LICENSE =================================================================== --- openmpi-1.6.4.orig/LICENSE +++ openmpi-1.6.4/LICENSE @@ -19,7 +19,7 @@ Copyright (c) 2006-2010 Los Alamos Natio 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. Index: openmpi-1.6.4/opal/config/opal_config_asm.m4 =================================================================== --- openmpi-1.6.4.orig/opal/config/opal_config_asm.m4 +++ openmpi-1.6.4/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 @@ -859,8 +870,21 @@ AC_DEFUN([OMPI_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 @@ -988,10 +1012,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]) @@ -1046,6 +1079,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" @@ -1074,7 +1108,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 Index: openmpi-1.6.4/opal/include/opal/sys/Makefile.am =================================================================== --- openmpi-1.6.4.orig/opal/include/opal/sys/Makefile.am +++ openmpi-1.6.4/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 @@ -35,3 +36,4 @@ include opal/sys/powerpc/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 Index: openmpi-1.6.4/opal/include/opal/sys/architecture.h =================================================================== --- openmpi-1.6.4.orig/opal/include/opal/sys/architecture.h +++ openmpi-1.6.4/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 */ Index: openmpi-1.6.4/opal/include/opal/sys/atomic.h =================================================================== --- openmpi-1.6.4.orig/opal/include/opal/sys/atomic.h +++ openmpi-1.6.4/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 @@ -164,6 +165,8 @@ typedef struct opal_atomic_lock_t opal_a #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 @@ -176,6 +179,12 @@ typedef struct opal_atomic_lock_t opal_a #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 */ /********************************************************************** Index: openmpi-1.6.4/opal/include/opal/sys/sync_builtin/Makefile.am =================================================================== --- /dev/null +++ openmpi-1.6.4/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 Index: openmpi-1.6.4/opal/include/opal/sys/sync_builtin/atomic.h =================================================================== --- /dev/null +++ openmpi-1.6.4/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 */ Index: openmpi-1.6.4/opal/include/opal/sys/sync_builtin/timer.h =================================================================== --- /dev/null +++ openmpi-1.6.4/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 */ -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
