[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Octave and MPITB compile
From: |
Javier Fernández |
Subject: |
Re: Octave and MPITB compile |
Date: |
Tue, 14 Oct 2008 10:03:59 +0200 |
User-agent: |
Thunderbird 2.0.0.6 (Windows/20070728) |
address@hidden wrote:
8. Octave and MPITB compile (Jack Franklin)
9. Octave and MPITB compile (Jack Franklin)
------------------------------------------------------------------------
Subject: Octave and MPITB compile
From: "Jack Franklin" <address@hidden>
"study". is included in your e-mail address :-) That's nice
[...]
-bash-3.00$ make
input in flex scanner failed
input in flex scanner failed
touch Makefile
input in flex scanner failed
input in flex scanner failed
I don't know the flex errors. Have no clue.
touch IMPI_CLIENT_COLOR.cc
g++ -c -fPIC -mieee-fp -g -O2 -Wall
-I/HOME/new_mpitb_octave/octave/include/octave-2.9.12
-I/HOME/new_mpitb_octave/octave/include/octave-2.9.12/octave
-I/HOME/new_mpitb_octave/octave/include IMPI_CLIENT_COLOR.cc -o
IMPI_CLIENT_COLOR.o
I can't see the -I<mpi include dir> flag. The Makefile.inc should have
generated it (MPIINCFLAGS below) with the following lines (extracted
from the file):
MPICC = mpiCC
[...]
#MPIINCDIR := $(shell $(MPINFO) -path incdir -parsable | cut -d: -f3)
#MPIINCFLAGS =-I$(MPIINCDIR)
[...]
MPIINCFLAGS:= $(shell $(MPICC) --showme:compile)
[...]
INCFLAGS = $(OCTINCFLAGS) $(MPIINCFLAGS)
INCFLAGS is later used in the .cc.o rule in Makefile (extracted below):
$(MPIOBJS): %.o: %.cc
$(CXX) -c $(CXXFLAGS) $(INCFLAGS) $< -o $@
Your "make" should support $(shell) commands. Perhaps the flex error is
related to that.
g++ -shared -Wl,-Bsymbolic IMPI_CLIENT_COLOR.o -o IMPI_CLIENT_COLOR.oct
-L/HOME/new_mpitb_octave/octave/lib/octave-2.9.12 -L -loctinterp
-loctave -lcruft -llapack -lblas -lreadline -lncurses -ldl -lz -lm
-L/usr/lib/gcc/i386-redhat-linux/3.4.6
-L/usr/lib/gcc/i386-redhat-linux/3.4.6/../../.. -lz -lfrtbegin -lg2c
-lm -lmpi
I can see an empty -L<mpi lib dir> flag. I guess that's the value for
MPILFLAGS computed by Makefile.inc:
MPINFO = ompi_info
MPILIBDIR := $(shell $(MPINFO) -path libdir -parsable | cut -d: -f3)
MPILFLAGS = -L$(MPILIBDIR)
An empty -L flag could be a perfect reason for your next error:
/usr/bin/ld: cannot find -lmpi
collect2: ld returned 1 exit status
make: *** [IMPI_CLIENT_COLOR.oct] Error 1
There is no mpi library in your -L path (or system ld path). Of course
there is not. Fix your system so the $(shell) commands work again.
Ayways, I think you said you are working on an IBM Blue/Gene. I find it
difficult to believe you have been abandoned in front of such a beast
with no sysadmin who can fix these things for you. Not only fix the
$(shell) issue, but also _study_ Nils' port of MPITB to MPICH-BG/L and
install it alltogether.
In other words, there is no use in fixing the $(shell) issue, only to
later learn you should also have compiled with ESSL library and OpenMP
stubs and MASS library (no clue about these either, I'm only
copy-pasting from Nils' instructions).
http://www.pdc.kth.se/systems_support/computers/bluegene/bgloctave/mpitb-octave-on-bgl
-javier