Nicolas Morey
cb3490f2be
- mpip.unwinder.patch - Add-return-value-to-non-void-function.patch - pc_lookup-replace-PTR-with-void.patch - Add configure-fix-compilation-error-for-GCC-14.patch to fix compilation with GCC >= 14 - Add arch-add-generic-arch-using-GCC-builtins.patch to fix compilation on s390. OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpiP?expand=0&rev=48
171 lines
5.8 KiB
Diff
171 lines
5.8 KiB
Diff
commit 38967f5106f8c9b813311a24dda42b8d69a07bda
|
|
Author: Nicolas Morey <nmorey@suse.com>
|
|
Date: Thu Sep 5 15:49:05 2024 +0200
|
|
|
|
arch: add generic arch using GCC builtins
|
|
|
|
Signed-off-by: Nicolas Morey <nmorey@suse.com>
|
|
|
|
diff --git arch/arch.h arch/arch.h
|
|
index 54312d483416..eab352557158 100644
|
|
--- arch/arch.h
|
|
+++ arch/arch.h
|
|
@@ -19,6 +19,8 @@
|
|
#include "arch/arch_ppc.h"
|
|
#elif __aarch64__
|
|
#include "arch/arch_arm64.h"
|
|
+#else
|
|
+#include "arch/arch_generic.h"
|
|
#endif
|
|
|
|
#endif // ARCH_ATOMICS_H
|
|
diff --git arch/arch_generic.h arch/arch_generic.h
|
|
new file mode 100644
|
|
index 000000000000..9b46200b7ee5
|
|
--- /dev/null
|
|
+++ arch/arch_generic.h
|
|
@@ -0,0 +1,143 @@
|
|
+#ifndef ARCH_GENERIC_H
|
|
+#define ARCH_GENERIC_H
|
|
+
|
|
+#include <stdint.h>
|
|
+#include "mpiPconfig.h"
|
|
+
|
|
+
|
|
+static inline void mpiP_atomic_wmb(void)
|
|
+{
|
|
+ __atomic_thread_fence (__ATOMIC_RELEASE);
|
|
+}
|
|
+
|
|
+static inline void mpiP_atomic_isync(void)
|
|
+{
|
|
+}
|
|
+
|
|
+#if (SIZEOF_VOIDP == 8)
|
|
+static inline void *mpiP_atomic_swap(void **_addr, void *_newval)
|
|
+{
|
|
+ int64_t *addr = (int64_t *)_addr;
|
|
+ int64_t newval = (int64_t)_newval;
|
|
+ int64_t oldval;
|
|
+
|
|
+ __atomic_exchange (addr, &newval, &oldval, __ATOMIC_RELAXED);
|
|
+ return (void*)oldval;
|
|
+}
|
|
+
|
|
+static inline int mpiP_atomic_cas(void **_addr, void **_oldval, void *_newval)
|
|
+{
|
|
+ int64_t *addr = (int64_t*)_addr;
|
|
+ int64_t *oldval = (int64_t*)_oldval;
|
|
+ int64_t newval = (int64_t)_newval;
|
|
+
|
|
+ return __atomic_compare_exchange_n (addr, oldval, newval, 0, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED);
|
|
+}
|
|
+
|
|
+#else
|
|
+
|
|
+static inline void *mpiP_atomic_swap(void **_addr, void *_newval)
|
|
+{
|
|
+ int32_t *addr= (int32_t *)_addr;
|
|
+ int32_t newval = (int32_t)_newval;
|
|
+ int32_t oldval;
|
|
+
|
|
+ __atomic_exchange (addr, &newval, &oldval, __ATOMIC_RELAXED);
|
|
+ return (void*)oldval;
|
|
+}
|
|
+
|
|
+
|
|
+static inline int mpiP_atomic_cas(void **_addr, void **_oldval, void *_newval)
|
|
+{
|
|
+ int32_t *addr = (int32_t*)_addr;
|
|
+ int32_t *oldval = (int32_t*)_oldval;
|
|
+ int32_t newval = (int32_t)_newval;
|
|
+
|
|
+ return __atomic_compare_exchange_n (addr, oldval, newval, 0, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED);
|
|
+}
|
|
+#endif
|
|
+
|
|
+#endif
|
|
+
|
|
+
|
|
+/*
|
|
+
|
|
+<license>
|
|
+
|
|
+This code was derived from Open MPI OPAL layer.
|
|
+
|
|
+Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
+ University Research and Technology
|
|
+ Corporation. All rights reserved.
|
|
+Copyright (c) 2004-2010 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) 2007 Sun Microsystems, Inc. All rights reserverd.
|
|
+Copyright (c) 2012-2018 Los Alamos National Security, LLC. All rights
|
|
+ reserved.
|
|
+Copyright (c) 2016-2017 Research Organization for Information Science
|
|
+ and Technology (RIST). All rights reserved.
|
|
+Copyright (c) 2019 Mellanox Technologies Ltd. All rights reserved.
|
|
+
|
|
+This file is part of mpiP. For details, see http://llnl.github.io/mpiP.
|
|
+
|
|
+Redistribution and use in source and binary forms, with or without
|
|
+modification, are permitted provided that the following conditions are
|
|
+met:
|
|
+
|
|
+* Redistributions of source code must retain the above copyright
|
|
+notice, this list of conditions and the disclaimer below.
|
|
+
|
|
+* Redistributions in binary form must reproduce the above copyright
|
|
+notice, this list of conditions and the disclaimer (as noted below) in
|
|
+the documentation and/or other materials provided with the
|
|
+distribution.
|
|
+
|
|
+* Neither the name of the UC/LLNL nor the names of its contributors
|
|
+may be used to endorse or promote products derived from this software
|
|
+without specific prior written permission.
|
|
+
|
|
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OF
|
|
+THE UNIVERSITY OF CALIFORNIA, THE U.S. DEPARTMENT OF ENERGY OR
|
|
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
+
|
|
+
|
|
+Additional BSD Notice
|
|
+
|
|
+1. This notice is required to be provided under our contract with the
|
|
+U.S. Department of Energy (DOE). This work was produced at the
|
|
+University of California, Lawrence Livermore National Laboratory under
|
|
+Contract No. W-7405-ENG-48 with the DOE.
|
|
+
|
|
+2. Neither the United States Government nor the University of
|
|
+California nor any of their employees, makes any warranty, express or
|
|
+implied, or assumes any liability or responsibility for the accuracy,
|
|
+completeness, or usefulness of any information, apparatus, product, or
|
|
+process disclosed, or represents that its use would not infringe
|
|
+privately-owned rights.
|
|
+
|
|
+3. Also, reference herein to any specific commercial products,
|
|
+process, or services by trade name, trademark, manufacturer or
|
|
+otherwise does not necessarily constitute or imply its endorsement,
|
|
+recommendation, or favoring by the United States Government or the
|
|
+University of California. The views and opinions of authors expressed
|
|
+herein do not necessarily state or reflect those of the United States
|
|
+Government or the University of California, and shall not be used for
|
|
+advertising or product endorsement purposes.
|
|
+
|
|
+</license>
|
|
+
|
|
+*/
|