I don't know anything about SuperLU, but here's a few suggestions:
- Remove all the LAM-based -L, -l, and -I flags -- the wrapper
compilers should provide all of that for you.
- It looks like you're specifying the C++ compiler (mpic++) for where
they are asking for the C compiler (try CC = mpicc).
- I'm confused by this line -- why is mpic++ listed there? It seems
like you would really only want -march=i386 (or -march=i686?)
> ARCH = mpic++ -march=i386 #ar
- In the compile message itself, it looks like your source file is
correct (dldperm.c). If you open it in a text editor, what do you
see before the "void dldperm(" declaration?
On Jan 12, 2006, at 3:40 PM, Adams Samuel D Contr AFRL/HEDR wrote:
> I was wondering if any of you guy have had any luck installing
> SuperLD-Dist
> using Lam-mpi 7.1.1, and gcc 4. I was just basically trying to be
> generic
> using FC4 with the stock lam, and gcc. I guess the trick it just
> to get the
> make.inc file set up properly for lam.
>
> This is what I have in mine.
> ######################################################################
> ######
> #
> # Program: SuperLU_DIST
> #
> # Module: make.inc
> #
> # Purpose: Top-level Definitions
> #
> # Creation date: February 4, 1999 version alpha
> #
> # Modified: September 1, 1999 version 1.0
> # March 15, 2003 version 2.0
> #
> ######################################################################
> ######
> #
> # The machine (platform) identifier to append to the library names
> #
> PLAT = _i386
>
> #
> # The name of the libraries to be created/linked to
> #
> DSuperLUroot = /opt/SuperLU_DIST_2.0
> DSUPERLULIB = $(DSuperLUroot)/libsuperlu_dist_2.0.a
> #
> BLASDEF = #-DUSE_VENDOR_BLAS
> BLASLIB = -L/usr/lib/ -lblas -lm
> MPILIB = /usr/lib/libmpi.a /usr/lib/liblamf77mpi.a
> /usr/lib/liblammpi++.a /usr/lib/liblammpio.a
>
> #-L/usr/lib/ -llammpio #-L/usr/local/lib/libmpich.a
> -L/usr/local/lib/libpmpich.a -L/usr/local/lib/libpmpich++.a
> #/usr/lpp/ppe.poe/lib -lmpi_r
> #PERFLIB = -L/vol1/VAMPIR/lib -lVT
> LIBS = $(DSUPERLULIB) $(BLASLIB) $(PERFLIB) $(MPILIB)
>
> #
> # The archiver and the flag(s) to use when building archive (library)
> # If your system has no ranlib, set RANLIB = echo.
> #
> ARCH = mpic++ -march=i386 #ar
> # 64-bit:
> #ARCHFLAGS = -X64 cr
> ARCHFLAGS = # cr
> RANLIB = ranlib
>
> ######################################################################
> ######
> # C compiler setup
> # 64-bit
> #CC = mpcc_r
> CC = mpic++
> # CFLAGS should be set to be the C flags that include optimization
> CFLAGS = -pipe -O2 #-D_SP -qarch=PWR3 -qalias=allptrs \
> #-DDEBUGlevel=0 -DPRNTlevel=1 -O3
> #-q64 #-qwarn64 -D_LONGINT
> #
> # NOOPTS should be set to be the C flags that turn off any
> optimization
> # 64-bit
> #NOOPTS = -q64
> NOOPTS =
> ######################################################################
> ######
> # FORTRAN compiler setup
> # 64-bit
> #FORTRAN = mpxlf90_r
> FORTRAN = mpif77 #mpxlf90
> FFLAGS = #-WF,-Dsp -O3 -Q -qstrict -qfixed -qinit=f90ptr
> -qarch=pwr3
> #-q64 #-qintsize=8
> ######################################################################
> ######
> # 64-bit
> #LOADER = mpxlf90_r
> LOADER = mpic++
>
> # 32-bit:
> LOADOPTS = #-bmaxdata:0x70000000
> # 64-bit:
> #LOADOPTS = -q64
> ######################################################################
> ######
> # C preprocessor defs for compilation (-DNoChange, -DAdd_, or -
> DUpCase)
> #
> # Need follow the convention of how C calls a Fortran routine.
> #
> CDEFS = -DAdd_ -L/usr/lib/libmpi.a -L/usr/lib/liblamf77mpi.a
> -L/usr/lib/liblammpi++.a -L/usr/lib/liblammpio.a #mpxlf90-DNoChange
> [root_at_fc4vm1 SuperLU_DIST_2.0]#
> [root_at_fc4vm1 SuperLU_DIST_2.0]#
> [root_at_fc4vm1 SuperLU_DIST_2.0]#
>
> When I do the make this is the message that I get.
>
> [root_at_fc4vm1 SuperLU_DIST_2.0]# make
> ( cd INSTALL; make )
> make[1]: Entering directory `/opt/SuperLU_DIST_2.0/INSTALL'
> make[1]: Nothing to be done for `all'.
> make[1]: Leaving directory `/opt/SuperLU_DIST_2.0/INSTALL'
> ( cd SRC; make )
> make[1]: Entering directory `/opt/SuperLU_DIST_2.0/SRC'
> mpic++ -pipe -O2 -DAdd_ -L/usr/lib/libmpi.a -L/usr/lib/liblamf77mpi.a
> -L/usr/lib/liblammpi++.a -L/usr/lib/liblammpio.a -c dldperm.c
> dldperm.c: In function \uffff\uffff\uffffvoid dldperm(int_t, int_t,
> int_t,
> int_t*, int_t*, double*, int_t*, double*, double*)\uffff\uffff\uffff:
> dldperm.c:122: error: \uffff\uffff\uffffmc64id_\uffff\uffff\uffff
> was not
> declared in this scope
> mpic++: No such file or directory
> make[1]: *** [dldperm.o] Error 1
> make[1]: Leaving directory `/opt/SuperLU_DIST_2.0/SRC'
> make: *** [superlulib] Error 2
>
>
> Anyway, if anyone has experince getting this compiled with lam, I
> would
> appriciate the help.
>
> Sam
> _______________________________________________
> This list is archived at http://www.lam-mpi.org/MailArchives/lam/
--
{+} Jeff Squyres
{+} The Open MPI Project
{+} http://www.open-mpi.org/
|