forked from openkylin/openmpi
Support for the HPPA architecture
Bug-Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776730 Last-Updated: 2016-09-04 Forwarded: no Gbp-Pq: Name hppa.patch
This commit is contained in:
parent
de68162297
commit
801892cbbd
|
@ -1111,6 +1111,12 @@ AC_DEFUN([OPAL_CONFIG_ASM],[
|
||||||
[AC_MSG_ERROR([No atomic primitives available for $host])])
|
[AC_MSG_ERROR([No atomic primitives available for $host])])
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
hppa*)
|
||||||
|
opal_cv_asm_arch="HPPA"
|
||||||
|
OPAL_ASM_SUPPORT_64BIT=0
|
||||||
|
OPAL_GCC_INLINE_ASSIGN='"copy 0,%0" : "=&r"(ret)'
|
||||||
|
;;
|
||||||
|
|
||||||
mips-*|mips64*)
|
mips-*|mips64*)
|
||||||
# Should really find some way to make sure that we are on
|
# Should really find some way to make sure that we are on
|
||||||
# a MIPS III machine (r4000 and later)
|
# a MIPS III machine (r4000 and later)
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#define OPAL_X86_64 0030
|
#define OPAL_X86_64 0030
|
||||||
#define OPAL_POWERPC32 0050
|
#define OPAL_POWERPC32 0050
|
||||||
#define OPAL_POWERPC64 0051
|
#define OPAL_POWERPC64 0051
|
||||||
|
#define OPAL_HPPA 0120
|
||||||
#define OPAL_SPARC 0060
|
#define OPAL_SPARC 0060
|
||||||
#define OPAL_SPARCV9_32 0061
|
#define OPAL_SPARCV9_32 0061
|
||||||
#define OPAL_SPARCV9_64 0062
|
#define OPAL_SPARCV9_64 0062
|
||||||
|
|
|
@ -169,6 +169,8 @@ enum {
|
||||||
#include "opal/sys/ia32/atomic.h"
|
#include "opal/sys/ia32/atomic.h"
|
||||||
#elif OPAL_ASSEMBLY_ARCH == OPAL_IA64
|
#elif OPAL_ASSEMBLY_ARCH == OPAL_IA64
|
||||||
#include "opal/sys/ia64/atomic.h"
|
#include "opal/sys/ia64/atomic.h"
|
||||||
|
#elif OPAL_ASSEMBLY_ARCH == OPAL_HPPA
|
||||||
|
#include "opal/sys/hppa/atomic.h"
|
||||||
#elif OPAL_ASSEMBLY_ARCH == OPAL_MIPS
|
#elif OPAL_ASSEMBLY_ARCH == OPAL_MIPS
|
||||||
#include "opal/sys/mips/atomic.h"
|
#include "opal/sys/mips/atomic.h"
|
||||||
#elif OPAL_ASSEMBLY_ARCH == OPAL_POWERPC32
|
#elif OPAL_ASSEMBLY_ARCH == OPAL_POWERPC32
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
#
|
||||||
|
# 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$
|
||||||
|
#
|
||||||
|
# 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/hppa/atomic.h \
|
||||||
|
opal/sys/hppa/timer.h
|
|
@ -0,0 +1,95 @@
|
||||||
|
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
|
* University Research and Technology
|
||||||
|
* Corporation. All rights reserved.
|
||||||
|
* 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,
|
||||||
|
* 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 (c) 2014 Los Alamos National Security, LLC. All rights
|
||||||
|
* reserved.
|
||||||
|
* $COPYRIGHT$
|
||||||
|
*
|
||||||
|
* Additional copyrights may follow
|
||||||
|
*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPAL_SYS_ARCH_ATOMIC_H
|
||||||
|
#define OPAL_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();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if OPAL_WANT_SMP_LOCKS
|
||||||
|
#define MB() opal_atomic_mb()
|
||||||
|
#else
|
||||||
|
#define MB()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
*
|
||||||
|
* 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_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_sub_and_fetch(addr, delta);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define OPAL_HAVE_ATOMIC_CMPSET_64 0
|
||||||
|
|
||||||
|
#endif /* ! OPAL_SYS_ARCH_ATOMIC_H */
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* 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$
|
||||||
|
*
|
||||||
|
* Additional copyrights may follow
|
||||||
|
*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPAL_SYS_ARCH_TIMER_H
|
||||||
|
#define OPAL_SYS_ARCH_TIMER_H 1
|
||||||
|
|
||||||
|
|
||||||
|
typedef uint64_t opal_timer_t;
|
||||||
|
|
||||||
|
static inline opal_timer_t
|
||||||
|
opal_sys_timer_get_cycles(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define OPAL_HAVE_SYS_TIMER_GET_CYCLES 0
|
||||||
|
|
||||||
|
#endif /* ! OPAL_SYS_ARCH_TIMER_H */
|
|
@ -90,6 +90,8 @@ BEGIN_C_DECLS
|
||||||
#include "opal/sys/sparcv9/timer.h"
|
#include "opal/sys/sparcv9/timer.h"
|
||||||
#elif OPAL_ASSEMBLY_ARCH == OPAL_MIPS
|
#elif OPAL_ASSEMBLY_ARCH == OPAL_MIPS
|
||||||
#include "opal/sys/mips/timer.h"
|
#include "opal/sys/mips/timer.h"
|
||||||
|
#elif OPAL_ASSEMBLY_ARCH == OPAL_HPPA
|
||||||
|
#include "opal/sys/hppa/timer.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef DOXYGEN
|
#ifndef DOXYGEN
|
||||||
|
|
|
@ -47,7 +47,7 @@ AC_DEFUN([MCA_opal_timer_linux_CONFIG],[
|
||||||
[timer_linux_happy="no"])])
|
[timer_linux_happy="no"])])
|
||||||
|
|
||||||
case "${host}" in
|
case "${host}" in
|
||||||
i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|powerpc64le-*linux*|powerpcle-*linux*|sparc*-*linux*|aarch64-*linux*)
|
i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|powerpc64le-*linux*|powerpcle-*linux*|sparc*-*linux*|aarch64-*linux*|hppa*-*linux*)
|
||||||
AS_IF([test "$timer_linux_happy" = "yes"],
|
AS_IF([test "$timer_linux_happy" = "yes"],
|
||||||
[AS_IF([test -r "/proc/cpuinfo"],
|
[AS_IF([test -r "/proc/cpuinfo"],
|
||||||
[timer_linux_happy="yes"],
|
[timer_linux_happy="yes"],
|
||||||
|
|
Loading…
Reference in New Issue