All,
I have built LAM-7.1.2 on a Fedora Core 5 box using a rpm spec file
that - I think - must be from LAM-7.1.1 and that used to work on SuSE-9
and 10. I modified the spec file slightly to use the Intel fortran
compiler and now I find the following WARNING messages when I call
mpif77 :
john_fc5 (1020) $ mpif77
WARNING: mpif77 expected to find liblammpio.* in /usr/lib
WARNING: MPI-2 IO support will be disabled
WARNING: mpif77 expected to find liblamf77mpi.* in /usr/lib
WARNING: MPI Fortran support will be disabled
and of course later when linking a real program all mpi related symbols
are undefined since the libraries are never found.
The libraries under FC5 on this x86_64 machine are installed in
/usr/lib64 but the mpif77 script doesn't seem to realize that.
Here is my laminfo output and I attach the spec file that I used for
compilation.
Is there a configuration option that would make the mpif77 compiler and
related tools aware of the correct location of the libraries?
I appreciated any help! Also, if someone has a spec file that works on
FC5 that'd be even better.
Regards,
Roland
LAM/MPI: 7.1.2
Prefix: /usr
Architecture: x86_64-unknown-linux-gnu
Configured by: root
Configured on: Wed Jul 5 15:46:14 PDT 2006
Configure host: john_fc5.ca.wai.com
Memory manager: none
C bindings: yes
C++ bindings: no
Fortran bindings: yes
C compiler: gcc
C++ compiler: g++
Fortran compiler: ifort
Fortran symbols: underscore
C profiling: yes
C++ profiling: yes
Fortran profiling: yes
C++ exceptions: no
Thread support: yes
ROMIO support: yes
IMPI support: no
Debug support: no
Purify clean: no
SSI boot: globus (API v1.1, Module v0.6)
SSI boot: rsh (API v1.1, Module v1.1)
SSI boot: slurm (API v1.1, Module v1.0)
SSI coll: lam_basic (API v1.1, Module v7.1)
SSI coll: shmem (API v1.1, Module v1.0)
SSI coll: smp (API v1.1, Module v1.2)
SSI rpi: crtcp (API v1.1, Module v1.1)
SSI rpi: lamd (API v1.0, Module v7.1)
SSI rpi: sysv (API v1.0, Module v7.1)
SSI rpi: tcp (API v1.0, Module v7.1)
SSI rpi: usysv (API v1.0, Module v7.1)
SSI cr: self (API v1.0, Module v1.0)
#
# Copyright (c) 2001-2005 The Trustees of Indiana University.
# All rights reserved.
# Copyright (c) 1998-2001 University of Notre Dame.
# All rights reserved.
# Copyright (c) 1994-1998 The Ohio State University.
# All rights reserved.
#
# This file is part of the LAM/MPI software package. For license
# information, see the LICENSE file in the top level directory of the
# LAM/MPI source distribution.
#
#############################################################################
#
# Helpful defines
#
#############################################################################
%define _sysconfdir /etc/lam
%define _romiodocdir /usr/share/lam/doc
# Other values may be passed in via:
#
# rpmbuild -define 'config_args ...'
#
# where "..." may be replaced with anything extra to pass to
# configure. See conditionalbuilds(3) man page (note the
# misspelling!) for more details.
#
# Values specified here are what are used if the user does not pass in
# any defaults.
%{!?config_options: %define config_options ""}
%{!?rpi: %define rpi --with-rpi=usysv}
%{!?subpackages: %define subpackages 1}
#############################################################################
#
# Preamble Section
#
#############################################################################
Summary: LAM/MPI (Local Area Multicomputer) programming environment
Name: lam
Version: 7.1.2
Release: 2.wai64
Vendor: LAM/MPI Team
License: BSD
Group: Development/Libraries
Source: lam-%{version}.tar.bz2
URL: http://www.lam-mpi.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Provides: mpi
Requires: %__rm %__make %__mv %__chmod
BuildRequires: openssh intel-iforte9
Conflicts: lam-runtime = %{version}
%description
LAM (Local Area Multicomputer) is an MPI programming environment and
development system for heterogeneous computers on a network. With
LAM/MPI, a dedicated cluster or an existing network computing
infrastructure can act as a single parallel computer. LAM/MPI is
considered to be "cluster friendly", in that it offers daemon-based
process startup/control as well as fast client-to-client message
passing protocols. LAM/MPI can use TCP/IP and/or shared memory for
message passing (currently, different RPMs are supplied for this --
see the main LAM web site for details).
LAM features a full implementation of MPI-1 (with the exception that
LAM does not support cancelling of sends), and much of MPI-2.
Compliant applications are source code portable between LAM/MPI and
any other implementation of MPI. In addition to providing a
high-quality implementation of the MPI standard, LAM/MPI offers
extensive monitoring capabilities to support debugging. Monitoring
happens on two levels. First, LAM/MPI has the hooks to allow a
snapshot of process and message status to be taken at any time during
an application run. This snapshot includes all aspects of
synchronization plus datatype maps/signatures, communicator group
membership, and message contents (see the XMPI application on the main
LAM web site). On the second level, the MPI library is instrumented
to produce a cummulative record of communication, which can be
visualized either at runtime or post-mortem.
#############################################################################
#
# Spilt packages when defined to do so
#
#############################################################################
%if %{subpackages}
#############################################################################
#
# Preamble Section
#
#############################################################################
%package runtime
Group: Development/Libraries
Summary: LAM/MPI (Local Area Multicomputer) programming runtime environment
Provides: mpi
Conflicts: lam = %{version}
%description runtime
LAM (Local Area Multicomputer) is an MPI programming environment and
development system for heterogeneous computers on a network. With
LAM/MPI, a dedicated cluster or an existing network computing
infrastructure can act as a single parallel computer. LAM/MPI is
considered to be "cluster friendly", in that it offers daemon-based
process startup/control as well as fast client-to-client message
passing protocols. LAM/MPI can use TCP/IP and/or shared memory for
message passing (currently, different RPMs are supplied for this --
see the main LAM web site for details).
LAM features a full implementation of MPI-1 (with the exception that
LAM does not support cancelling of sends), and much of MPI-2.
Compliant applications are source code portable between LAM/MPI and
any other implementation of MPI. In addition to providing a
high-quality implementation of the MPI standard, LAM/MPI offers
extensive monitoring capabilities to support debugging. Monitoring
happens on two levels. First, LAM/MPI has the hooks to allow a
snapshot of process and message status to be taken at any time during
an application run. This snapshot includes all aspects of
synchronization plus datatype maps/signatures, communicator group
membership, and message contents (see the XMPI application on the main
LAM web site). On the second level, the MPI library is instrumented
to produce a cummulative record of communication, which can be
visualized either at runtime or post-mortem.
#############################################################################
#
# Preamble Section (devel)
#
#############################################################################
%package devel
Summary: LAM/MPI (Local Area Multicomputer) programming environment
Group: Development/Libraries
Requires: lam-runtime = %{version}
Requires: gcc-c++ intel-iforte9
%description devel
This is the development RPM for the LAM implementation of MPI. See
the description in the main (runtime) LAM/MPI RPM.
#############################################################################
#
# Preamble Section (extras)
#
#############################################################################
%package extras
Summary: LAM/MPI (Local Area Multicomputer) programming environment
Group: Development/Libraries
Requires: lam-runtime = %{version}
%description extras
This is the extra (not necessary for runtime) component of the LAM
programming enviornment.
#############################################################################
#
# Preamble Section (docs)
#
#############################################################################
%package docs
Summary: LAM/MPI (Local Area Multicomputer) programming environment
Group: Development/Libraries
Requires: lam-runtime = %{version}
%description docs
This is the documentation RPM for the LAM implementation of MPI. See
the description in the main (runtime) LAM/MPI RPM.
#############################################################################
#
# End subpackaging split
#
#############################################################################
%endif
#############################################################################
#
# Prep Section
#
#############################################################################
%prep
%setup -q
# %patch -p1
# Otherwise, this directory shows up on security reports. [sigh]
%__chmod -R o-w $RPM_BUILD_DIR/lam-%{version}
#############################################################################
#
# Build Section
#
#############################################################################
%build
# FFLAGS=""
./configure --prefix=/usr --with-fc=ifort --without-mpi2cpp --with-memory-manager=none --with-rsh='ssh -x' %{rpi} %{config_options}
%__make all
#############################################################################
#
# Install Section
#
#############################################################################
%install
%__rm -rf $RPM_BUILD_ROOT
%makeinstall
# Rename the ROMIO doc files so that we can install them in the same
# doc root later, and not overwrite LAM's doc files.
for file in README README_LAM COPYRIGHT; do
%__mv $RPM_BUILD_DIR/lam-%{version}/romio/$file \
$RPM_BUILD_DIR/lam-%{version}/romio/romio-$file
done
%__mv $RPM_BUILD_DIR/lam-%{version}/romio/doc/users-guide.ps.gz \
$RPM_BUILD_DIR/lam-%{version}/romio/doc/romio-users-guide.ps.gz
# 7.0 installs shell setup and module files. Kill these so that
# recent versions of RPM don't complain that we have installed but not
# packaged files.
%__rm -f $RPM_BUILD_ROOT%{_datadir}/lam/lam-shell-setup.sh
%__rm -f $RPM_BUILD_ROOT%{_datadir}/lam/lam-shell-setup.csh
%__rm -f $RPM_BUILD_ROOT%{_datadir}/lam/lam_module.tcl
# Turn off the x bit on the totalview shared library so that rpm
# doesn't strip it. #$%@#$%!!!
%__chmod a-x $RPM_BUILD_ROOT%{_libdir}/lam/liblam_totalview*so 2> /dev/null || :
#############################################################################
#
# Clean Section
#
#############################################################################
%clean
%__rm -rf $RPM_BUILD_ROOT
#############################################################################
#
# Files Section
#
#############################################################################
#############################################################################
#
# Split packages when defined to do so
#
#############################################################################
%if %{subpackages}
%files runtime
%defattr(-,root,root)
%doc LICENSE HISTORY INSTALL README
%config %{_sysconfdir}
%{_bindir}/hboot
%{_bindir}/lamboot
%{_bindir}/lamclean
%{_bindir}/lamd
%{_bindir}/lamhalt
%{_bindir}/laminfo
%{_bindir}/lamnodes
%{_bindir}/lamwipe
%{_bindir}/mpirun
%{_bindir}/recon
%{_bindir}/tkill
%{_bindir}/tping
%{_bindir}/wipe
%{_libdir}/*
#############################################################################
#
# Files Section (docs)
#
#############################################################################
%files docs
%defattr(-,root,root)
%doc doc/*.pdf
%doc examples
# Need to fix ROMIO install script to install its docs in the Right place
%doc %{_romiodocdir}
%{_mandir}/man1/*
%{_mandir}/man5/*
%{_mandir}/man7/*
%{_mandir}/mans/*
#############################################################################
#
# Files Section (extras)
#
#############################################################################
%files extras
%defattr(-,root,root)
%{_bindir}/lamgrow
%{_bindir}/lamexec
%{_bindir}/lamshrink
%{_bindir}/lamtrace
%{_bindir}/lamcheckpoint
%{_bindir}/lamrestart
%{_bindir}/mpiexec
%{_bindir}/mpimsg
%{_bindir}/mpitask
#############################################################################
#
# Files Section (devel)
#
#############################################################################
%files devel
%defattr(-,root,root)
%{_bindir}/hcc
%{_bindir}/hcp
%{_bindir}/hf77
%{_bindir}/mpiCC
%{_bindir}/mpic++
%{_bindir}/mpicc
%{_bindir}/mpif77
%{_includedir}/*
%{_mandir}/man3/*
%else
%files
%defattr(-,root,root)
%doc LICENSE HISTORY INSTALL README
%doc examples
%doc doc/*.pdf
%config %{_sysconfdir}
%{_bindir}/*
%{_mandir}/*/*
%{_includedir}/*
%{_libdir}/*
%{_datadir}/lam/*
%endif
#############################################################################
#
# Changelog
#
#############################################################################
%changelog
* Thu Jan 20 2005 Jeff Squyres <jsquyres_at_[hidden]>
- Rebuild for 7.1.1 release 3
- Also send the error message from the totalview chmod to /dev/null
* Tue Nov 16 2004 Jeff Squyres <jsquyres_at_[hidden]>
- Rebuild for 7.1.1 release 2
- Include ROMIO and all the other things accidentally removed from
release 1
- Fix default attributes in sub-packages so that they're not bowned by
jsquyres
- Fix dependencies of sub-packages so that they require lam-runtime,
not lam.
- Allow skipping build of the totalview library without erroring.
* Tue Sep 14 2004 Greg Kurtzer <GMKurtzer_at_[hidden]>
- Built spec to allow for conditional subpackage building
* Fri Sep 10 2004 Jeff Squyres <jsquyres_at_[hidden]>
- Merge changes from Greg into the main LAM CAOS specfile.
* Thu Mar 25 2004 Greg Kurtzer <greg_at_[hidden]>
- Created the -extras package (to remove some non-happy dep loops (ie. perl))
* Wed Mar 24 2004 Greg Kurtzer <greg_at_[hidden]>
- Updated to lam-7.0.4
* Thu Jan 22 2004 Greg Kurtzer <greg_at_[hidden]>
- me killed da EPOCH
* Mon Oct 27 2003 Jeff Squyres <jsquyres_at_[hidden]>
- Removed outdated sym link for mpi2c++/mpi++.h.
* Mon Oct 20 2003 Greg Kurtzer <greg_at_[hidden]>
- Implemented LAM-7.0.2 source tree
* Wed Sep 24 2003 Jeff Squyres <jsquyres_at_[hidden]>
- Added explicit requires for gcc, gcc-c++, and gcc-g77 for the devel
RPM.
* Wed Jul 30 2003 Jeff Squyres <jsquyres_at_[hidden]>
- Added spaces to all % foo descriptions in the % changelog so that
rpm's silly parser won't interpret those as macros and try to expand
them.
- Re-add missing mans man page.
- Manually remove the shell setup files and module file because newer
versions of RPM complain about installed-but-not-packaged files.
* Wed Jul 23 2003 Jeff Squyres <jsquyres_at_[hidden]>
- First cAos specfile. Split into lam, and lam-devel RPMs with
assistance from Greg Kurtzer
- Added command-line overrideable % define's
* Sun Jul 20 2003 Jeff Squyres <jsquyres_at_[hidden]>
- Fix the default RPI to be usysv
* Mon May 29 2003 Jeff Squyres <jsquyres_at_[hidden]>
- Updated for LAM/MPI 7.0; added doc/*.pdf; removed some other
(outdated) % doc files
- Ensure extracted LAM source directory is not world-writeable;
otherwise it shows up in nightly security reports
- Fixed references to get ROMIO docs
* Mon Nov 26 2001 Brian William Barrett <brbarret_at_[hidden]>
- Fixed typo - C++ header file symlink was mpi++ instead of mpi++.h
* Wed Oct 31 2001 Jeff Squyres <jsquyres_at_[hidden]>
- Changed license to be BSD.
* Thu Jul 05 2001 Jeff Squyres <jsquyres_at_[hidden]>
- Modified slightly to be similar to the OSCAR spec file.
- Removed use of hard-coded dirs, and replaced them with variables
instead.
- Removed redundant "cp" statements in % install section; automake
takes care of installing man pages, and there is no $prefix/doc
anymore.
- Fixed to get the copyright properly.
- Changed "Copyright" to "License" to be a bit more accurate.
- Use "makeinstall" macro in % install section instead of "make
DESTDIR=... install"
- Acknowledge that because we build the LAM RPMs on RH 6.2 machines,
the man pages and doc files will be in the "wrong" place on RH 7.x
machines. There is not much that we can do about this -- we build
the RPMs on 6.2 machines so that the binaries work on both 6.2 and
7.x machines (someday we won't care about about 6.2 machines
anymore, but for the moment, we still do). The default location for
man pages and doc files changed in RH 7.x (6.x:/usr/doc/lam-version,
7.x:/usr/share/lam-version, and 6.x:/usr/man, 7.x:/usr/share/man).
By not overriding _mandir and _docdir in this .spec file, we're
allowing for the possibility of rebuilding the source RPM on a 7.x
machine and getting the doc files/man pages in the right location.
Even more compelling, however, is the fact that RH 7.x machines will
still find the man pages, even if they are in the "wrong" (i.e.,
old) location -- the location that this 6.2-built RPM will place
them in.
* Mon Mar 17 2001 Brian William Barrett <bbarrett_at_[hidden]>
- Borrowed SPEC file from Trond at RedHat. Converted to be able to
make RPMs for all RPIs
|