[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