diff options
author | Chris White <white238@llnl.gov> | 2021-04-30 15:04:06 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-30 15:04:06 -0700 |
commit | d8390ee2fb42f2b7c45df1333810751907472523 (patch) | |
tree | 1463de1d88552b0474dd38c168b57a64a66d284f | |
parent | 46bce56cef6aa5cbea591adc47b2bb5dd2344939 (diff) | |
download | spack-d8390ee2fb42f2b7c45df1333810751907472523.tar.gz spack-d8390ee2fb42f2b7c45df1333810751907472523.tar.bz2 spack-d8390ee2fb42f2b7c45df1333810751907472523.tar.xz spack-d8390ee2fb42f2b7c45df1333810751907472523.zip |
HDF5: Suppress promoted warning that causes build failure on clang and gcc (#23354)
* simplify compiler flag logic and suppress warning that gets promoted to an error on certain files in gcc/clang
-rw-r--r-- | var/spack/repos/builtin/packages/hdf5/package.py | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py index d4c8b916ac..b51e5d9167 100644 --- a/var/spack/repos/builtin/packages/hdf5/package.py +++ b/var/spack/repos/builtin/packages/hdf5/package.py @@ -298,22 +298,6 @@ class Hdf5(AutotoolsPackage): extra_args.append('--disable-shared') extra_args.append('--enable-static-exec') - if '+pic' in self.spec: - # use global spack compiler flags - _flags = self.compiler.cc_pic_flag - _flags += " " + ' '.join(self.spec.compiler_flags['cflags']) - extra_args.append('CFLAGS={0}'.format(_flags)) - - if '+cxx' in self.spec: - _flags = self.compiler.cxx_pic_flag - _flags += " " + ' '.join(self.spec.compiler_flags['cxxflags']) - extra_args.append('CXXFLAGS={0}'.format(_flags)) - - if '+fortran' in self.spec: - _flags = self.compiler.fc_pic_flag - _flags += " " + ' '.join(self.spec.compiler_flags['fflags']) - extra_args.append('FCFLAGS={0}'.format(_flags)) - # Fujitsu Compiler does not add Fortran runtime in rpath. if '+fortran %fj' in self.spec: extra_args.append('LDFLAGS=-lfj90i -lfj90f -lfjsrcinfo -lelf') @@ -333,6 +317,27 @@ class Hdf5(AutotoolsPackage): if '+fortran' in self.spec: extra_args.append('FC=%s' % self.spec['mpi'].mpifc) + # Append package specific compiler flags to the global ones + cflags = ' '.join(self.spec.compiler_flags['cflags']) + cxxflags = ' '.join(self.spec.compiler_flags['cxxflags']) + fflags = ' '.join(self.spec.compiler_flags['fflags']) + + if '+pic' in self.spec: + cflags += " " + self.compiler.cc_pic_flag + cxxflags += " " + self.compiler.cxx_pic_flag + fflags += " " + self.compiler.fc_pic_flag + + # Quiet warnings/errors about implicit declaration of functions in C99 + if "clang" in self.compiler.cc or "gcc" in self.compiler.cc: + cflags += " -Wno-implicit-function-declaration" + + if cflags: + extra_args.append('CFLAGS={0}'.format(cflags)) + if cxxflags and '+cxx' in self.spec: + extra_args.append('CXXFLAGS={0}'.format(cxxflags)) + if fflags and '+fortran' in self.spec: + extra_args.append('FCFLAGS={0}'.format(fflags)) + return extra_args @run_after('configure') |