Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds an Intel C++ configuration file #716

Merged
merged 3 commits into from
Jun 3, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions MANIFEST
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@
./config/cygwin
./config/ibm-aix
./config/ibm-flags
./config/intel-cxxflags
./config/intel-fflags
./config/intel-flags
./config/libhdf5.pc.in
Expand Down
128 changes: 128 additions & 0 deletions config/intel-cxxflags
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# -*- shell-script -*-
#
# Copyright by The HDF Group.
# All rights reserved.
#
# This file is part of HDF5. The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the COPYING file, which can be found at the root of the source code
# distribution tree, or in https://www.hdfgroup.org/licenses.
# If you do not have access to either file, you may request a copy from
# [email protected].


# This file should be sourced into configure if the compiler is the
# Intel icpc compiler or a derivative. It is careful not to do anything
# if the compiler is not Intel; otherwise `cxx_flags_set' is set to `yes'
#

# Get the compiler version in a way that works for icpc
# icpc unless a compiler version is already known
#
# cxx_vendor: The compiler name: icpc
# cxx_version: Version number: 8.0
#
if test X = "X$cxx_flags_set"; then
cxx_version="`$CXX $CXXFLAGS $H5_CXXFLAGS -V 2>&1 |grep 'Version'`"
if test X != "X$cxx_version"; then
cxx_vendor=icpc
cxx_version=`echo $cxx_version |sed 's/.*Version \([-a-z0-9\.\-]*\).*/\1/'`
echo "compiler '$CXX' is Intel $cxx_vendor-$cxx_version"

# Some version numbers
# Intel version numbers are of the form: "major.minor"
cxx_vers_major=`echo $cxx_version | cut -f1 -d.`
cxx_vers_minor=`echo $cxx_version | cut -f2 -d.`
#cxx_vers_patch=`echo $cxx_version | cut -f2 -d.`
test -n "$cxx_vers_major" || cxx_vers_major=0
test -n "$cxx_vers_minor" || cxx_vers_minor=0
test -n "$cxx_vers_patch" || cxx_vers_patch=0
cxx_vers_all=`expr $cxx_vers_major '*' 1000000 + $cxx_vers_minor '*' 1000 + $cxx_vers_patch`
fi
fi

# Common Intel flags for various situations
if test "X-icpc" = "X-$cxx_vendor"; then
# Insert section about version specific problems from compiler flags here,
# if necessary.

arch=
# Architecture-specific flags
# Nothing currently. (Uncomment code below and modify to add any)
#case "$host_os-$host_cpu" in
# *-i686)
# arch="-march=i686"
# ;;
#esac

# Host-specific flags
# Nothing currently. (Uncomment code below and modify to add any)
#case "`hostname`" in
# sleipnir.ncsa.uiuc.edu)
# arch="$arch -pipe"
# ;;
#esac

###########
# General #
###########

# Default to C++11 standard
H5_CXXFLAGS="$H5_CXXFLAGS $arch -std=c++11"

##############
# Production #
##############

PROD_CXXFLAGS=

#########
# Debug #
#########

# NDEBUG is handled explicitly by the configure script
# -g is handled by the symbols flags
DEBUG_CXXFLAGS=

###########
# Symbols #
###########

SYMBOLS_CXXFLAGS="-g"
NO_SYMBOLS_CXXFLAGS="-Wl,-s"

#############
# Profiling #
#############

# Use this for profiling with gprof
PROFILE_CXXFLAGS="-p"

################
# Optimization #
################

HIGH_OPT_CXXFLAGS="-O3"
DEBUG_OPT_CXXFLAGS="-O0"
NO_OPT_CXXFLAGS="-O0"

############
# Warnings #
############

#############################
# Version-specific warnings #
#############################

#################
# Flags are set #
#################
cxx_flags_set=yes

fi

# Clear cc info if no flags set
if test "X-$cxx_flags_set" = "X-"; then
cxx_vendor=
cxx_version=
fi
4 changes: 4 additions & 0 deletions config/linux-gnulibc1
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,10 @@ if test -z "$CXX"; then
CXX_BASENAME=g++
fi

# Figure out Intel CXX compiler flags
# Do this ahead of GNU to avoid icpc being detected as g++
. $srcdir/config/intel-cxxflags

# Figure out GNU CXX compiler flags
. $srcdir/config/gnu-cxxflags

Expand Down
8 changes: 8 additions & 0 deletions release_docs/RELEASE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,14 @@ New Features

Configuration:
-------------
- Adds C++ Autotools configuration file for Intel

* Checks for icpc as the compiler
* Sets std=c++11
* Copies most non-warning flags from intel-flags

(DER - 2021/06/02)

- Adds C++ Autotools configuration file for PGI

* Checks for pgc++ as the compiler name (was: pgCC)
Expand Down