Using Cheetah with Pooma
Jeffrey Oldham
oldham at codesourcery.com
Wed Jun 20 04:13:18 UTC 2001
Here are the steps I used to compile Pooma with Cheetah on my
uniprocessor Linux machine.
1. Since I am using a uniprocessor Linux computer, I need to use the
shared memory library mm with Cheetah.
a. Obtain a tarball from http://www.engelschall.com/sw/mm/.
b. tar xzvf mm-1.1.3.tar.gz
cd mm-1.1.3
c. declare -x CC=/home/oldham/gcc-install/gcc1/bin/gcc
# I wanted to use my gcc3.0 so I declared its location.
# Otherwise, some default compiler is used.
d. ./configure --prefix=${HOME}/pooma/mm-1.1.3
# I wanted the resulting files to be placed in the specified directory.
e. make -j 3
make -j 3 test # prints success if all tests pass
make -j 3 install
2. Install the Cheetah code.
a. Obtain a tarball from http://pooma.codesourcery.com/downloads.
tar xzvf cheetah-1.0.tgz
cd cheetah-1.0
b. Modify the source code for correct compilation:
i. Append "*/" to line 9 of src/Utilities/i386-lock.s
ii. I copied the attached LINUXgcc.conf to config.
# Modify all lines containing "oldham" to have proper values for you.
iii. Modify configure using the attached patch.
c. Configure:
./configure --noex --arch LINUXgcc --shmem --nompi --prefix ${HOME}/pooma/cheetah-1.0
# `--noex' specifies no exceptions
# QUESTION: Should we use exceptions for Pooma and Cheetah?
# `--shmem' specifies use of the mm package
# `--nompi' specifies no use of MPI
# `--prefix' specifies where to install cheetah
d. Compile.
cd lib/LINUXgcc
make -j 3
make -j 3 tests
make install
3. Compile Pooma with Cheetah specified.
a. Modify ~/pooma/pooma0/src/config/LINUXgcc.conf by specifying Cheetah's location.
b. ./configure --messaging --arch LINUXgcc --suite LINUXgcc --opt
# --messaging indicates use of Cheetah
c. declare -x POOMASUITE=LINUXgcc && make -j 3
Thanks,
Jeffrey D. Oldham
oldham at codesourcery.com
-------------- next part --------------
*** cheetah-1.0/configure Wed Jul 5 09:03:03 2000
--- cheetah-1.0/configure Tue Jun 19 20:14:14 2001
***************
*** 1,3 ****
! #!/usr/local/bin/perl
###########################################################################
#
--- 1,3 ----
! #!/usr/bin/env perl
###########################################################################
#
***************
*** 546,550 ****
$cpp = $arghash{$cppnm}[1];
}
! $extensions .= $cpp;
if (scalar @{$arghash{$arnm}} > 1)
--- 546,551 ----
$cpp = $arghash{$cppnm}[1];
}
! $extensions .= $comptype;
! # $extensions .= ((split('/', $cpp))[-1]);
if (scalar @{$arghash{$arnm}} > 1)
-------------- next part --------------
###########################################################################
# Cheetah configuration settings
#
# Platform: LINUX
# Compiler: GNU C++ compiler (g++)
#
###########################################################################
#
# This file contains specialized settings indicating how to build Cheetah
# with this platform and compiler. This is a perl script executed by
# the 'configure' script at the top level of the Cheetah 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 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 MM files, for shmem controller (if available)
$has_shmem = 1;
$shmem_default_dir = "/home/oldham/pooma/mm-1.1.3";
$shmem_inc = "-I$shmem_default_dir/include";
$shmem_lib = "-L$shmem_default_dir/lib -lmm";
$shmem_def = "";
$shmem_locksrc = "Utilities/i386-lock.s";
$shmem_lockobj = "i386-lock.o";
$shmem_as = "as";
### location of ULM files, for ULM controller (if available)
$has_ulm = 0;
###########################################################################
# Section 2: compilation settings
###########################################################################
###################
### characteristics
###################
### the name of this architecture
$archtype = "linux";
$comptype = "g++";
### are shared libraries supported?
$canmakesharedlib = 1;
$sharedext = "so";
################
### C++ settings
################
### general settings for using the C++ compiler, for both libs and apps
$cpp = "/home/oldham/gcc-install/gcc1/bin/g++";
$cppargs = "-ftemplate-depth-60";
$cppex = ""; # flag to use exceptions
$cppnoex = "-fno-exceptions"; # flag to turn off exceptions
$cppverbose = "-v"; # flag for verbose compiler output
$cppshare = "-fPIC"; # flag for compiling for shared libs
### debug or optimized build settings for C++ applications
$cppdbg = "-ggdb";
$cppopt = "-O3 -funroll-loops -fstrict-aliasing";
###################
### linker settings
###################
$link = $cpp;
$linkargs = "-L/home/oldham/gcc-install/gcc1/lib";
$linkverbose = "-Wl,-v";
$linkshare = "-Wl,-rpath,\$(CHEETAH_LIBDIR)";
#####################
### archiver settings
#####################
$ar = "ar";
$arargs = "rcsl";
$arshare = $cpp; # program to make shared lib
$arshareargs = "-shared -o"; # arguments to make shared lib
# ACL:rcsinfo
# ----------------------------------------------------------------------
# $RCSfile: LINUXGCC.conf,v $ $Author: rasmussn $
# $Revision: 1.3 $ $Date: 2000/06/26 22:07:27 $
# ----------------------------------------------------------------------
# ACL:rcsinfo
###########################################################################
# the last line of this file must be a '1' so that Perl sees a non-zero
# results from this file
###########################################################################
1;
More information about the pooma-dev
mailing list