[PATCH] add support for Intel/icc compiler
Richard Guenther
rguenth at tat.physik.uni-tuebingen.de
Wed Jul 24 09:05:40 UTC 2002
The attached patch introduces config/arch/LINUXICC.conf and
fixes Utilities/Inform.h.
Richard.
--
Richard Guenther <richard.guenther at uni-tuebingen.de>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/
The GLAME Project: http://www.glame.de/
-------------- next part --------------
2002Jul24 Richard Guenther <richard.guenther at uni-tuebingen.de>
* config/arch/LINUXICC.conf: new
* src/Utilities/Inform.h: icc has std::ios_base::fmtflags
-------------- next part --------------
# This is a BitKeeper generated patch for the following project:
# Project Name: pooma/cheetah repository tracking CVS/tarball
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.43 -> 1.44
# r2/src/Utilities/Inform.h 1.2 -> 1.3
# (new) -> 1.1 r2/config/arch/LINUXICC.conf
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/07/24 rguenth at bellatrix.tat.physik.uni-tuebingen.de 1.44
# Intel icpc support
# --------------------------------------------
#
diff --minimal -Nru a/r2/config/arch/LINUXICC.conf b/r2/config/arch/LINUXICC.conf
--- /dev/null Wed Dec 31 16:00:00 1969
+++ b/r2/config/arch/LINUXICC.conf Wed Jul 24 10:53:59 2002
@@ -0,0 +1,318 @@
+# Perl input file
+# ACL:license
+# ----------------------------------------------------------------------
+# This software and ancillary information (herein called "SOFTWARE")
+# called POOMA (Parallel Object-Oriented Methods and Applications) is
+# made available under the terms described here. The SOFTWARE has been
+# approved for release with associated LA-CC Number LA-CC-98-65.
+#
+# Unless otherwise indicated, this SOFTWARE has been authored by an
+# employee or employees of the University of California, operator of the
+# Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with
+# the U.S. Department of Energy. The U.S. Government has rights to use,
+# reproduce, and distribute this SOFTWARE. The public may copy, distribute,
+# prepare derivative works and publicly display this SOFTWARE without
+# charge, provided that this Notice and any statement of authorship are
+# reproduced on all copies. Neither the Government nor the University
+# makes any warranty, express or implied, or assumes any liability or
+# responsibility for the use of this SOFTWARE.
+#
+# If SOFTWARE is modified to produce derivative works, such modified
+# SOFTWARE should be clearly marked, so as not to confuse it with the
+# version available from LANL.
+#
+# For more information about POOMA, send e-mail to pooma at acl.lanl.gov,
+# or visit the POOMA web page at http://www.acl.lanl.gov/pooma/.
+# ----------------------------------------------------------------------
+# ACL:license
+
+###########################################################################
+# POOMA configuration settings
+#
+# Platform: LINUX (Intel Pentium running Linux)
+# Compiler: icc
+#
+###########################################################################
+#
+# This file contains specialized settings indicating how to build POOMA
+# with this platform and compiler. This is a perl script executed by
+# the 'configure' script at the top level of the POOMA directory structure.
+# This file has two sections:
+# 1) The locations of include files and libraries for external packages.
+# 3) The specialized settings on how to use this platform and compiler.
+# You should edit the lines in section 1) to the proper location of the
+# external packages. Do not edit the lines in section 2) unless you
+# know what you're doing.
+#
+###########################################################################
+
+###########################################################################
+# Section 0: architecture type
+###########################################################################
+
+$archtype = "linux";
+
+###########################################################################
+# Section 1: external package locations.
+# Include search directories should have a '-I' prepended.
+# Library search directories should have a '-L' prepended.
+# Library filenames should just list the name or use -l prefix as needed.
+# Required defines should have -a '-D' prepended.
+###########################################################################
+
+### location of SMARTS files for threads
+
+$threads_able = 1;
+$threads_default_dir = "/home/smarts/build/smarts-current";
+$threads_lib_subdir = "$archtype/lib";
+$threads_basic_makefile = "Makefile.smarts-g++";
+$threads_profile_makefile = "Makefile.smarts-tau-g++";
+
+
+### location of TAU files for profiling
+
+$profile_able = 1;
+$profile_default_dir = "/home/tau/build/tau-current";
+$ductape_default_dir = "/usr/local/pooma/packages/ductape";
+$profile_archtype = "i386_linux";
+$profile_lib_subdir = "$profile_archtype/lib";
+$profile_basic_makefile = "Makefile.tau-egcs";
+$profile_smarts_makefile = "Makefile.tau-smarts-egcs";
+$profile_pthreads_makefile = "Makefile.tau-pthread-egcs";
+
+
+### location of PAWS files for program coupling
+
+$paws_able = 1;
+$paws_default_dir = "/home/paws/build/paws-current";
+$paws_lib_subdir = "$archtype/lib";
+$paws_makefile = "Makefile.paws-egcs";
+
+
+### location of HDF5 files for I/O
+
+$hdf5_able = 1;
+$hdf5_default_dir = "/home/rguenth/ix86";
+
+
+### location of FFTW files for ffts
+
+$fftw_able = 1;
+$fftw_default_dir = "/home/pooma/packages/fftw/$archtype";
+
+
+### location of cheetah
+
+$cheetah_able = 1;
+$cheetah_default_dir = "/home/rguenth/ix86/pooma/";
+$cheetah_arch = "$archtype";
+$cheetah_lib_subdir = "lib/icc";
+$cheetah_include_makefile = "Makefile.cheetah";
+
+
+### location of LUX files for runtime visualization
+
+$lux_able = 0;
+
+
+### location and names of Purify analysis package
+
+$purify_able = 0;
+
+
+### location and names of Insure++ analysis package
+
+$insure_able = 1;
+$cppinsure = "icpc";
+$cinsure = "icc";
+$cpp_insure_run = "insure";
+$cpp_insure_arg = "-Zvm -Zoi \"compiler $cppinsure\"";
+$c_insure_run = "insure";
+$c_insure_arg = "-Zvm -Zoi \"compiler $cinsure\"";
+$ar_insure_run = "ar";
+$ar_insure_arg = "";
+$ld_insure_run = "insure";
+$ld_insure_arg = "-Zvm -Zoi \"compiler $cppinsure\"";
+
+
+###########################################################################
+# Section 2: compilation settings
+###########################################################################
+
+###################
+### characteristics
+###################
+
+$comptype = "icc";
+$compext = "-icc";
+
+### are shared libraries supported?
+
+$canmakesharedlib = 0;
+$shared = 0;
+$sharedext = "so";
+
+### other special characteristics: for all special cases for this
+### architecture that differ from the standard, include a line
+### here to indicate what the differences are, setting a variable
+### equal to one. If the architecture does the "right thing", though,
+### there is no reason to mention anything here, although you can set
+### the special characteristics variables to 0 if you want.
+
+# ICC does not have the C++ standard stringstream class
+$no_stringstream = 1;
+
+# ICC does have all the proper iomanips
+$no_complete_iomanips = 0;
+
+# ICC does have restrict (use __restrict__)
+$no_restrict = 0;
+
+# ICC does have complex in the std:: namespace
+$no_std_complex = 0;
+
+# ICC does have a ios_base class in std:: namespace
+$no_std_iosbase = 0;
+
+# Must include <sys/stat.h> to get POSIX file modes
+$inc_sys_stat_h_file_modes = 1;
+
+# Use gettimeofday in Utilities/Clock.h
+$clock_uses_gettimeofday = 1;
+
+################
+### C++ settings
+################
+
+### general settings for using the C++ compiler, for both libs and apps
+
+$cpp = "icpc";
+$cppargs = "-restrict";
+$cppex = "-Kc++eh"; # flag to use exceptions
+$cppnoex = ""; # flag to use to turn off exceptions
+$cppverbose = "-v"; # flag for verbose compiler output
+$cpponeper = ""; # flag to turn on one-instantance-per-obj
+$cppstrict = ""; # flag for ANSI conformance checking
+
+
+### debug or optimized build settings for C++ applications
+
+$cppdbg_app = "-g";
+$cppopt_app = "-DNOPAssert -DNOCTAssert -O2";
+
+
+### debug or optimized build settings for C++ libraries
+
+$cppdbg_lib = $cppdbg_app;
+$cppopt_lib = $cppopt_app;
+
+
+##############
+### C settings
+##############
+
+### general settings for using the C compiler, for both libs and apps
+
+$c = "icc";
+$cargs = "-restrict";
+$cverbose = "";
+
+
+### debug or optimized build settings for C applications
+
+$cdbg_app = "-g";
+$copt_app = "-O2";
+
+
+### debug or optimized build settings for C libraries
+
+$cdbg_lib = $cdbg_app;
+$copt_lib = $copt_app;
+
+
+################
+### F77 settings
+################
+
+### general settings for using the F77 compiler, for both libs and apps
+
+$f77 = "ifc";
+$f77args = "";
+$f77libs = "";
+$f77verbose = "";
+
+
+### debug or optimized build settings for F77 applications
+
+$f77dbg_app = "-g";
+$f77opt_app = "-O2";
+
+
+### debug or optimized build settings for F77 libraries
+
+$f77dbg_lib = $f77dbg_app;
+$f77opt_lib = $f77opt_app;
+
+
+###################
+### linker settings
+###################
+
+$link = $cpp;
+$linkargs = "";
+$linkverbose = "";
+$linkshare = "";
+
+#####################
+### archiver settings
+#####################
+
+$ar = "ar"; # program to make static lib
+$arshare = $cpp; # program to make shared lib
+
+# arguments for making static lib
+$arargs = "rc";
+# arguments for making shared lib
+$arshareargs = "-shared -o";
+
+# flag to turn on verbose ar output
+$arverbose = "";
+$arshareverbose = $cppverbose;
+
+# flag for exceptions
+$arex = "";
+$arshareex = $cppex;
+
+# flag for no exceptions
+$arnoex = "";
+$arsharenoex = $cppnoex;
+
+# flag for one instantiation per object
+$aroneper = "";
+$arshareoneper = $cpponeper;
+
+# flag for ANSI conformance checking
+$arstrict = "";
+$arsharestrict = $cppstrict;
+
+### debug or optimized build settings for archiving libraries
+
+$ardbg = "";
+$aropt = "";
+$arsharedbg = $cppdbg_app;
+$arshareopt = $cppopt_app;
+
+
+# ACL:rcsinfo
+# ----------------------------------------------------------------------
+# $RCSfile: LINUXEGCS.conf,v $ $Author: oldham $
+# $Revision: 1.26 $ $Date: 2001/10/15 17:34:28 $
+# ----------------------------------------------------------------------
+# ACL:rcsinfo
+
+###########################################################################
+# the last line of this file must be a '1' so that Perl sees a non-zero
+# results from this file
+###########################################################################
+1;
+
diff --minimal -Nru a/r2/src/Utilities/Inform.h b/r2/src/Utilities/Inform.h
--- a/r2/src/Utilities/Inform.h Wed Jul 24 10:53:59 2002
+++ b/r2/src/Utilities/Inform.h Wed Jul 24 10:53:59 2002
@@ -278,7 +278,8 @@
void output() { flush(); }
#if (defined(__MWERKS__) && __MWERKS__ >= 0x2301) \
- || (defined(__GLIBCPP__) && __GLIBCPP__ >= 20001129)
+ || (defined(__GLIBCPP__) && __GLIBCPP__ >= 20001129) \
+ || (defined(__ICC))
typedef std::ios_base::fmtflags FmtFlags_t;
#else
typedef long FmtFlags_t;
More information about the pooma-dev
mailing list