Removing classic flang. (#19350)
This commit is contained in:
parent
1a63baef4d
commit
8619e5b5ab
4 changed files with 0 additions and 523 deletions
|
@ -1,126 +0,0 @@
|
||||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
|
||||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
||||||
|
|
||||||
|
|
||||||
from spack import *
|
|
||||||
import os
|
|
||||||
|
|
||||||
|
|
||||||
class Flang(CMakePackage):
|
|
||||||
"""Flang is a Fortran compiler targeting LLVM."""
|
|
||||||
|
|
||||||
homepage = "https://github.com/flang-compiler/flang"
|
|
||||||
|
|
||||||
url = "https://github.com/flang-compiler/flang/archive/flang_20190329.tar.gz"
|
|
||||||
git = "https://github.com/flang-compiler/flang.git"
|
|
||||||
|
|
||||||
maintainers = ['naromero77']
|
|
||||||
|
|
||||||
version('master', branch='master', preferred=True)
|
|
||||||
version('20190329', sha256='b8c621da53829f8c53bad73125556fb1839c9056d713433b05741f7e445199f2')
|
|
||||||
version('20181226', sha256='00e716bea258c3bb60d6a5bb0c82bc79f67000062dc89939693e75f501883c36')
|
|
||||||
version('20180921', sha256='f33bd1f054e474f1e8a204bb6f78d42f8f6ecf7a894fdddc3999f7c272350784')
|
|
||||||
version('20180612', sha256='6af858bea013548e091371a97726ac784edbd4ff876222575eaae48a3c2920ed')
|
|
||||||
|
|
||||||
# variants
|
|
||||||
msg = ('Target OpenMP offloading to NVIDIA GPUs '
|
|
||||||
'(experimental w/ no support). '
|
|
||||||
'Only works with GCC compilers compatible with CUDA 9.x. '
|
|
||||||
'Specify ^llvm-flang+cuda cuda_arch=<value> explictly.')
|
|
||||||
|
|
||||||
variant('nvptx',
|
|
||||||
default=False,
|
|
||||||
description=msg)
|
|
||||||
|
|
||||||
# Patched only relevant for March 2019 release with OpenMP Offload support
|
|
||||||
patch('https://github.com/flang-compiler/flang/commit/b342225a64692d2b9c3aff7658a8e4f94a8923eb.diff',
|
|
||||||
sha256='3bd2c7453131eaaf11328785a3031fa2298bdd0c02cfd5e2b478e6e847d5da43',
|
|
||||||
when='@20190329 +nvptx')
|
|
||||||
|
|
||||||
# Build dependency
|
|
||||||
depends_on('cmake@3.8:', type='build')
|
|
||||||
depends_on('python@2.7:', type='build')
|
|
||||||
|
|
||||||
depends_on('llvm-flang@release_90', when='@master ~nvptx')
|
|
||||||
depends_on('llvm-flang@20190329', when='@20190329 ~nvptx')
|
|
||||||
depends_on('llvm-flang@20181226_70', when='@20181226')
|
|
||||||
depends_on('llvm-flang@20180921', when='@20180921')
|
|
||||||
depends_on('llvm-flang@20180612', when='@20180612')
|
|
||||||
|
|
||||||
depends_on('pgmath@master', when='@master')
|
|
||||||
depends_on('pgmath@20190329', when='@20190329')
|
|
||||||
depends_on('pgmath@20181226', when='@20181226')
|
|
||||||
depends_on('pgmath@20180921', when='@20180921')
|
|
||||||
depends_on('pgmath@20180612', when='@20180612')
|
|
||||||
|
|
||||||
depends_on('llvm-flang+cuda@release_70', when='@master +nvptx')
|
|
||||||
depends_on('llvm-flang+cuda@20190329', when='@20190329 +nvptx')
|
|
||||||
|
|
||||||
# conflicts
|
|
||||||
conflicts('+nvptx', when='@:20181226',
|
|
||||||
msg='OpenMP offload to NVidia GPUs available 20190329 or later')
|
|
||||||
|
|
||||||
# Spurious problems running in parallel the Makefile
|
|
||||||
# generated by the configure
|
|
||||||
parallel = False
|
|
||||||
|
|
||||||
def cmake_args(self):
|
|
||||||
spec = self.spec
|
|
||||||
options = [
|
|
||||||
'-DWITH_WERROR=OFF',
|
|
||||||
'-DCMAKE_C_COMPILER=%s' % os.path.join(
|
|
||||||
spec['llvm-flang'].prefix.bin, 'clang'),
|
|
||||||
'-DCMAKE_CXX_COMPILER=%s' % os.path.join(
|
|
||||||
spec['llvm-flang'].prefix.bin, 'clang++'),
|
|
||||||
'-DCMAKE_Fortran_COMPILER=%s' % os.path.join(
|
|
||||||
spec['llvm-flang'].prefix.bin, 'flang'),
|
|
||||||
'-DFLANG_LIBOMP=%s' % find_libraries(
|
|
||||||
'libomp', root=spec['llvm-flang'].prefix.lib),
|
|
||||||
'-DPYTHON_EXECUTABLE={0}'.format(
|
|
||||||
spec['python'].command.path)
|
|
||||||
]
|
|
||||||
|
|
||||||
# Make sure llvm-flang can find GCC's libstdc++
|
|
||||||
if self.compiler.name == "gcc":
|
|
||||||
gcc_prefix = ancestor(self.compiler.cc, 2)
|
|
||||||
options.append('-DGCC_INSTALL_PREFIX=' + gcc_prefix)
|
|
||||||
|
|
||||||
if '+cuda' in spec:
|
|
||||||
options.append('-DFLANG_OPENMP_GPU_NVIDIA=ON')
|
|
||||||
else:
|
|
||||||
options.append('-DFLANG_OPENMP_GPU_NVIDIA=OFF')
|
|
||||||
|
|
||||||
return options
|
|
||||||
|
|
||||||
@run_after('install')
|
|
||||||
def post_install(self):
|
|
||||||
# we are installing flang in a path different from llvm, so we
|
|
||||||
# create a wrapper with -L for e.g. libflangrti.so and -I for
|
|
||||||
# e.g. iso_c_binding.mod. -B is needed to help flang to find
|
|
||||||
# flang1 and flang2. rpath_arg is needed so that executables
|
|
||||||
# generated by flang can find libflang later.
|
|
||||||
flang = os.path.join(self.spec.prefix.bin, 'flang')
|
|
||||||
with open(flang, 'w') as out:
|
|
||||||
out.write('#!/bin/bash\n')
|
|
||||||
out.write(
|
|
||||||
'{0} -I{1} -L{2} -L{3} {4}{5} {6}{7} -B{8} "$@"\n'.format(
|
|
||||||
self.spec['llvm-flang'].prefix.bin.flang,
|
|
||||||
self.prefix.include, self.prefix.lib,
|
|
||||||
self.spec['pgmath'].prefix.lib,
|
|
||||||
self.compiler.fc_rpath_arg, self.prefix.lib,
|
|
||||||
self.compiler.fc_rpath_arg,
|
|
||||||
self.spec['pgmath'].prefix.lib, self.spec.prefix.bin))
|
|
||||||
out.close()
|
|
||||||
chmod = which('chmod')
|
|
||||||
chmod('+x', flang)
|
|
||||||
|
|
||||||
def setup_build_environment(self, env):
|
|
||||||
# to find llvm's libc++.so
|
|
||||||
env.set('LD_LIBRARY_PATH', self.spec['llvm-flang'].prefix.lib)
|
|
||||||
|
|
||||||
def setup_run_environment(self, env):
|
|
||||||
env.set('FC', self.spec.prefix.bin.flang)
|
|
||||||
env.set('F77', self.spec.prefix.bin.flang)
|
|
||||||
env.set('F90', self.spec.prefix.bin.flang)
|
|
|
@ -1,268 +0,0 @@
|
||||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
|
||||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
||||||
|
|
||||||
|
|
||||||
from spack import *
|
|
||||||
|
|
||||||
|
|
||||||
class LlvmFlang(CMakePackage, CudaPackage):
|
|
||||||
"""LLVM-Flang is the Flang fork of LLVM needed by the Flang package."""
|
|
||||||
|
|
||||||
homepage = "https://github.com/flang-compiler"
|
|
||||||
|
|
||||||
git = "https://github.com/flang-compiler/llvm.git"
|
|
||||||
|
|
||||||
maintainer = ['naromero77']
|
|
||||||
|
|
||||||
version('release_90', branch='release_90', preferred=True)
|
|
||||||
version('release_80', branch='release_80')
|
|
||||||
version('release_70', branch='release_70')
|
|
||||||
version('release_60', branch='release_60')
|
|
||||||
version('20190329', tag='flang_20190329')
|
|
||||||
version('20181226_70', tag='20181226_70')
|
|
||||||
version('20181226_60', tag='20181226_60')
|
|
||||||
version('20180921', tag='20180921')
|
|
||||||
version('20180319', tag='20180319')
|
|
||||||
version('20180328', tag='20180308')
|
|
||||||
|
|
||||||
# Variants
|
|
||||||
variant('all_targets', default=False,
|
|
||||||
description='Build all supported targets')
|
|
||||||
|
|
||||||
variant('build_type', default='Release',
|
|
||||||
description='The CMake build type to build',
|
|
||||||
values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
|
|
||||||
|
|
||||||
# Universal dependency
|
|
||||||
depends_on('cmake@3.8:', type='build')
|
|
||||||
depends_on('python@2.7:', type='build')
|
|
||||||
|
|
||||||
# openmp dependencies
|
|
||||||
depends_on('perl-data-dumper', type=('build'))
|
|
||||||
depends_on('hwloc')
|
|
||||||
|
|
||||||
# libomptarget dependencies
|
|
||||||
depends_on('libelf', when='+cuda')
|
|
||||||
depends_on('libffi', when='+cuda')
|
|
||||||
# note that there may be other llvm-flang + cuda conflicts, but these
|
|
||||||
# are the only versions that are relevant for the flang+nvptx package
|
|
||||||
# llvm 7 not compatible with newer version of cuda
|
|
||||||
depends_on('cuda@:9', when='+cuda@release_70')
|
|
||||||
depends_on('cuda@:9', when='+cuda@20190329')
|
|
||||||
|
|
||||||
# LLVM-Flang Componentes: Driver, OpenMP
|
|
||||||
resource(name='flang-driver',
|
|
||||||
git='https://github.com/flang-compiler/flang-driver.git',
|
|
||||||
branch='release_90',
|
|
||||||
destination='tools',
|
|
||||||
placement='clang',
|
|
||||||
when='@release_90')
|
|
||||||
|
|
||||||
resource(name='flang-driver',
|
|
||||||
git='https://github.com/flang-compiler/flang-driver.git',
|
|
||||||
branch='release_80',
|
|
||||||
destination='tools',
|
|
||||||
placement='clang',
|
|
||||||
when='@release_80')
|
|
||||||
|
|
||||||
resource(name='flang-driver',
|
|
||||||
git='https://github.com/flang-compiler/flang-driver.git',
|
|
||||||
branch='release_70',
|
|
||||||
destination='tools',
|
|
||||||
placement='clang',
|
|
||||||
when='@release_70')
|
|
||||||
|
|
||||||
resource(name='flang-driver',
|
|
||||||
git='https://github.com/flang-compiler/flang-driver.git',
|
|
||||||
branch='release_60',
|
|
||||||
destination='tools',
|
|
||||||
placement='clang',
|
|
||||||
when='@release_60')
|
|
||||||
|
|
||||||
resource(name='flang-driver',
|
|
||||||
git='https://github.com/flang-compiler/flang-driver.git',
|
|
||||||
tag='flang_20190329',
|
|
||||||
destination='tools',
|
|
||||||
placement='clang',
|
|
||||||
when='@20190329')
|
|
||||||
|
|
||||||
resource(name='flang-driver',
|
|
||||||
git='https://github.com/flang-compiler/flang-driver.git',
|
|
||||||
tag='flang_20181226_70',
|
|
||||||
destination='tools',
|
|
||||||
placement='clang',
|
|
||||||
when='@20181226_70')
|
|
||||||
|
|
||||||
resource(name='flang-driver',
|
|
||||||
git='https://github.com/flang-compiler/flang-driver.git',
|
|
||||||
tag='flang_20181226_60',
|
|
||||||
destination='tools',
|
|
||||||
placement='clang',
|
|
||||||
when='@20181226_60')
|
|
||||||
|
|
||||||
resource(name='flang-driver',
|
|
||||||
git='https://github.com/flang-compiler/flang-driver.git',
|
|
||||||
tag='flang_20180921',
|
|
||||||
destination='tools',
|
|
||||||
placement='clang',
|
|
||||||
when='@20180921')
|
|
||||||
|
|
||||||
resource(name='flang-driver',
|
|
||||||
git='https://github.com/flang-compiler/flang-driver.git',
|
|
||||||
tag='flang_20180921',
|
|
||||||
destination='tools',
|
|
||||||
placement='clang',
|
|
||||||
when='@20180308')
|
|
||||||
|
|
||||||
resource(name='openmp',
|
|
||||||
git='https://github.com/llvm-mirror/openmp.git',
|
|
||||||
branch='release_90',
|
|
||||||
destination='projects',
|
|
||||||
placement='openmp',
|
|
||||||
when='@release_90')
|
|
||||||
|
|
||||||
resource(name='openmp',
|
|
||||||
git='https://github.com/flang-compiler/openmp.git',
|
|
||||||
branch='release_80',
|
|
||||||
destination='projects',
|
|
||||||
placement='openmp',
|
|
||||||
when='@release_80')
|
|
||||||
|
|
||||||
resource(name='openmp',
|
|
||||||
git='https://github.com/flang-compiler/openmp.git',
|
|
||||||
branch='release_70',
|
|
||||||
destination='projects',
|
|
||||||
placement='openmp',
|
|
||||||
when='@release_70')
|
|
||||||
|
|
||||||
resource(name='openmp',
|
|
||||||
git='https://github.com/flang-compiler/openmp.git',
|
|
||||||
branch='release_60',
|
|
||||||
destination='projects',
|
|
||||||
placement='openmp',
|
|
||||||
when='@release_60')
|
|
||||||
|
|
||||||
resource(name='openmp',
|
|
||||||
git='https://github.com/flang-compiler/openmp.git',
|
|
||||||
tag='flang_20190329',
|
|
||||||
destination='projects',
|
|
||||||
placement='openmp',
|
|
||||||
when='@20190329')
|
|
||||||
|
|
||||||
resource(name='openmp',
|
|
||||||
git='https://github.com/flang-compiler/openmp.git',
|
|
||||||
tag='flang_20181226_70',
|
|
||||||
destination='projects',
|
|
||||||
placement='openmp',
|
|
||||||
when='@20181226_70')
|
|
||||||
|
|
||||||
resource(name='openmp',
|
|
||||||
git='https://github.com/flang-compiler/openmp.git',
|
|
||||||
tag='flang_20181226_60',
|
|
||||||
destination='projects',
|
|
||||||
placement='openmp',
|
|
||||||
when='@20181226_60')
|
|
||||||
|
|
||||||
resource(name='openmp',
|
|
||||||
git='https://github.com/flang-compiler/openmp.git',
|
|
||||||
tag='flang_20180921',
|
|
||||||
destination='projects',
|
|
||||||
placement='openmp',
|
|
||||||
when='@20180921')
|
|
||||||
|
|
||||||
def cmake_args(self):
|
|
||||||
spec = self.spec
|
|
||||||
# universal
|
|
||||||
args = [
|
|
||||||
'-DLLVM_ENABLE_RTTI:BOOL=ON',
|
|
||||||
'-DLLVM_ENABLE_EH:BOOL=ON',
|
|
||||||
'-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp',
|
|
||||||
]
|
|
||||||
args.append('-DPYTHON_EXECUTABLE={0}'.format(
|
|
||||||
spec['python'].command.path))
|
|
||||||
|
|
||||||
# needed by flang-driver
|
|
||||||
args.append('-DFLANG_LLVM_EXTENSIONS=ON')
|
|
||||||
|
|
||||||
if '+all_targets' not in spec: # all is default in cmake
|
|
||||||
if spec.target.family == 'x86' or spec.target.family == 'x86_64':
|
|
||||||
target = 'X86'
|
|
||||||
elif spec.target.family == 'arm':
|
|
||||||
target = 'ARM'
|
|
||||||
elif spec.target.family == 'aarch64':
|
|
||||||
target = 'AArch64'
|
|
||||||
elif (spec.target.family == 'ppc64' or
|
|
||||||
spec.target.family == 'ppc64le' or
|
|
||||||
spec.target.family == 'ppc' or
|
|
||||||
spec.target.family == 'ppcle'):
|
|
||||||
target = 'PowerPC'
|
|
||||||
else:
|
|
||||||
raise InstallError(
|
|
||||||
'Unsupported architecture: ' + spec.target.family)
|
|
||||||
|
|
||||||
if '+cuda' in spec:
|
|
||||||
args.append(
|
|
||||||
'-DLLVM_TARGETS_TO_BUILD:STRING=NVPTX;' + target)
|
|
||||||
else:
|
|
||||||
args.append(
|
|
||||||
'-DLLVM_TARGETS_TO_BUILD:STRING=' + target)
|
|
||||||
|
|
||||||
# used by openmp
|
|
||||||
args.append('-DLIBOMP_USE_HWLOC=On')
|
|
||||||
args.append('-DLIBOMP_FORTRAN_MODULES=ON')
|
|
||||||
args.append('-DLIBOMP_ENABLE_SHARED=TRUE')
|
|
||||||
|
|
||||||
# Make sure llvm-flang can find GCC's libstdc++
|
|
||||||
if self.compiler.name == "gcc":
|
|
||||||
gcc_prefix = ancestor(self.compiler.cc, 2)
|
|
||||||
args.append('-DGCC_INSTALL_PREFIX=' + gcc_prefix)
|
|
||||||
|
|
||||||
# used by libomptarget for NVidia gpu
|
|
||||||
if '+cuda' in spec:
|
|
||||||
args.append('-DOPENMP_ENABLE_LIBOMPTARGET=ON')
|
|
||||||
cuda_arch_list = spec.variants['cuda_arch'].value
|
|
||||||
args.append('-DCUDA_TOOLKIT_ROOT_DIR=%s' % spec['cuda'].prefix)
|
|
||||||
args.append('-DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES={0}'.format(
|
|
||||||
','.join(cuda_arch_list)))
|
|
||||||
args.append('-DCLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_{0}'.format(
|
|
||||||
cuda_arch_list[-1]))
|
|
||||||
else:
|
|
||||||
args.append('-DOPENMP_ENABLE_LIBOMPTARGET=OFF')
|
|
||||||
|
|
||||||
return args
|
|
||||||
|
|
||||||
@run_after("install")
|
|
||||||
def post_install(self):
|
|
||||||
spec = self.spec
|
|
||||||
|
|
||||||
# Manual bootstrap needed to get NVidia BC compiled with the
|
|
||||||
# clang that was just built
|
|
||||||
if '+cuda' in spec:
|
|
||||||
ompdir = 'build-bootstrapped-omp'
|
|
||||||
# rebuild libomptarget to get bytecode runtime library files
|
|
||||||
with working_dir(ompdir, create=True):
|
|
||||||
args = [
|
|
||||||
self.stage.source_path + '/projects/openmp',
|
|
||||||
'-DCMAKE_C_COMPILER:PATH={0}'.format(
|
|
||||||
spec.prefix.bin + '/clang'),
|
|
||||||
'-DCMAKE_CXX_COMPILER:PATH={0}'.format(
|
|
||||||
spec.prefix.bin + '/clang++'),
|
|
||||||
'-DCMAKE_INSTALL_PREFIX:PATH={0}'.format(
|
|
||||||
spec.prefix)
|
|
||||||
]
|
|
||||||
args = args + self.cmake_args()
|
|
||||||
# args = self.cmake_args()
|
|
||||||
# enable CUDA bitcode
|
|
||||||
args.append('-DLIBOMPTARGET_NVPTX_ENABLE_BCLIB=true')
|
|
||||||
# work around bad libelf detection in libomptarget
|
|
||||||
args.append(
|
|
||||||
'-DCMAKE_CXX_FLAGS:String=-I{0} -I{1}'.format(
|
|
||||||
spec['libelf'].prefix.include,
|
|
||||||
spec['hwloc'].prefix.include))
|
|
||||||
|
|
||||||
# Only build if offload target.
|
|
||||||
cmake(*args)
|
|
||||||
make()
|
|
||||||
make('install')
|
|
|
@ -1,91 +0,0 @@
|
||||||
diff --git a/runtime/libpgmath/lib/common/ceil.c b/runtime/libpgmath/lib/common/ceil.c
|
|
||||||
index 3b66ca5c..341c5194 100644
|
|
||||||
--- a/runtime/libpgmath/lib/common/ceil.c
|
|
||||||
+++ b/runtime/libpgmath/lib/common/ceil.c
|
|
||||||
@@ -16,9 +16,11 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "mthdecls.h"
|
|
||||||
+/*
|
|
||||||
#if defined(__SSE4_1__) || defined(__AVX__)
|
|
||||||
#include <immintrin.h>
|
|
||||||
#endif
|
|
||||||
+*/
|
|
||||||
|
|
||||||
float
|
|
||||||
__mth_i_ceil(float x)
|
|
||||||
diff --git a/runtime/libpgmath/lib/common/dceil.c b/runtime/libpgmath/lib/common/dceil.c
|
|
||||||
index 67482ef2..5dae82f9 100644
|
|
||||||
--- a/runtime/libpgmath/lib/common/dceil.c
|
|
||||||
+++ b/runtime/libpgmath/lib/common/dceil.c
|
|
||||||
@@ -16,6 +16,7 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "mthdecls.h"
|
|
||||||
+/*
|
|
||||||
#if defined(__SSE4_1__) || defined(__AVX__)
|
|
||||||
#include <immintrin.h>
|
|
||||||
#endif
|
|
||||||
@@ -33,9 +34,12 @@ __mth_i_dceil_sse(double x)
|
|
||||||
return _mm_cvtsd_f64(_mm_ceil_sd(_mm_set1_pd(x), _mm_set1_pd(x)));
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
+*/
|
|
||||||
double
|
|
||||||
__mth_i_dceil(double x)
|
|
||||||
{
|
|
||||||
return ceil(x);
|
|
||||||
}
|
|
||||||
+/*
|
|
||||||
#endif
|
|
||||||
+*/
|
|
||||||
diff --git a/runtime/libpgmath/lib/common/dfloor.c b/runtime/libpgmath/lib/common/dfloor.c
|
|
||||||
index f947ef33..8b955897 100644
|
|
||||||
--- a/runtime/libpgmath/lib/common/dfloor.c
|
|
||||||
+++ b/runtime/libpgmath/lib/common/dfloor.c
|
|
||||||
@@ -16,6 +16,7 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "mthdecls.h"
|
|
||||||
+/*
|
|
||||||
#if defined(__SSE4_1__) || defined(__AVX__)
|
|
||||||
#include <immintrin.h>
|
|
||||||
#endif
|
|
||||||
@@ -33,9 +34,12 @@ __mth_i_dfloor_sse(double x)
|
|
||||||
return _mm_cvtsd_f64(_mm_floor_sd(_mm_set1_pd(x), _mm_set1_pd(x)));
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
+*/
|
|
||||||
double
|
|
||||||
__mth_i_dfloor(double x)
|
|
||||||
{
|
|
||||||
return floor(x);
|
|
||||||
}
|
|
||||||
+/*
|
|
||||||
#endif
|
|
||||||
+*/
|
|
||||||
diff --git a/runtime/libpgmath/lib/common/floor.c b/runtime/libpgmath/lib/common/floor.c
|
|
||||||
index 7865bedc..c13872df 100644
|
|
||||||
--- a/runtime/libpgmath/lib/common/floor.c
|
|
||||||
+++ b/runtime/libpgmath/lib/common/floor.c
|
|
||||||
@@ -16,6 +16,7 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "mthdecls.h"
|
|
||||||
+/*
|
|
||||||
#if defined(__SSE4_1__) || defined(__AVX__)
|
|
||||||
#include <immintrin.h>
|
|
||||||
#endif
|
|
||||||
@@ -33,9 +34,12 @@ __mth_i_floor_sse(float x)
|
|
||||||
return _mm_cvtss_f32(_mm_floor_ss(_mm_set1_ps(x), _mm_set1_ps(x)));
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
+*/
|
|
||||||
float
|
|
||||||
__mth_i_floor(float x)
|
|
||||||
{
|
|
||||||
return floorf(x);
|
|
||||||
}
|
|
||||||
+/*
|
|
||||||
#endif
|
|
||||||
+*/
|
|
|
@ -1,38 +0,0 @@
|
||||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
|
||||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
||||||
|
|
||||||
|
|
||||||
from spack import *
|
|
||||||
|
|
||||||
|
|
||||||
class Pgmath(CMakePackage):
|
|
||||||
"""Flang's math library"""
|
|
||||||
|
|
||||||
homepage = "https://github.com/flang-compiler/flang"
|
|
||||||
url = "https://github.com/flang-compiler/flang/archive/flang_20190329.tar.gz"
|
|
||||||
git = "https://github.com/flang-compiler/flang.git"
|
|
||||||
|
|
||||||
maintainers = ['naromero77']
|
|
||||||
|
|
||||||
version('master', branch='master')
|
|
||||||
version('20190329', sha256='b8c621da53829f8c53bad73125556fb1839c9056d713433b05741f7e445199f2')
|
|
||||||
version('20181226', sha256='00e716bea258c3bb60d6a5bb0c82bc79f67000062dc89939693e75f501883c36')
|
|
||||||
version('20180921', sha256='f33bd1f054e474f1e8a204bb6f78d42f8f6ecf7a894fdddc3999f7c272350784')
|
|
||||||
version('20180612', sha256='6af858bea013548e091371a97726ac784edbd4ff876222575eaae48a3c2920ed')
|
|
||||||
|
|
||||||
# work around for this issue
|
|
||||||
# https://github.com/flang-compiler/flang/issues/602
|
|
||||||
patch('https://github.com/flang-compiler/flang/commit/7fcd6346a9427977afe4534c0f19bbbba04c99a3.diff',
|
|
||||||
sha256='4014df1e5855dd21242b0fc938a4e7835941c20f9a89c3a7a5314e74b6232bcb',
|
|
||||||
when='@20190329')
|
|
||||||
|
|
||||||
# workaround for this issue
|
|
||||||
# https://github.com/flang-compiler/flang/issues/838
|
|
||||||
patch('libpgmath_symbols.patch', when='@20190329,master')
|
|
||||||
|
|
||||||
depends_on("awk", type="build")
|
|
||||||
conflicts("%gcc@:7.1.9999")
|
|
||||||
|
|
||||||
root_cmakelists_dir = 'runtime/libpgmath'
|
|
Loading…
Reference in a new issue