On Mar 24, 2006, at 6:11 PM, Troy Telford wrote:
Noticing the FAQ, http://www.open-mpi.org/faq/?
category=building#build-rte
Rather than simply running `./confiugre --disable-shared --enable
static`
and having /everything/ compiled statically, is it possible to compile
only the bare minimum to get the tm module working, and leave the
rest as
dynamically loadable?
--enable-mca-static=pls:tm,ras:tm doesn't seem to cut it, as
liborte is
still compiled dynamically; and I don't know enough of the Open MPI
architecture to say if this is even feasable...
My (admittedly somewhat limited) knowledge of linkers and loaders
and whatnot would seem to imply that this is not possible, not from
an Open MPI architecture standpoint, but from a "how Linux works"
standpoint. If --enable-mca-static=pls:tm,ras:tm doesn't work when
liborte is compiled dynamically (I know this works without warning on
x86 Linux - I take it by your comment that it didn't work with x86_64
Linux).
So that leaves us with compiling liborte statically. If we do this,
then we really can't have dynamically loaded modules, because they
all depend on code in liborte and the loader isn't going to be able
to patch that up when they are loaded. So unless someone knows a
fairly trivial way of getting around that, I think we're stuck.
I do realize that it would be easier if PBS Professional were compiled
with -fPIC so that a DSO tm module could be built; I've asked Altair's
support to do so in the past, and received a response to the effect of
"it's in the suggestion box; no idea if it will happen."
That's just poor response, but that's generally been my opinion of
Altair lately. I'm aware this limits the usability of one of the
prime features of Open MPI, but the truth is, it's their poor product
that is the problem. The freely available derivatives of PBS all
seemed more than happy to help with building the tm libraries with -
fPIC.
Brian
--
Brian Barrett
Open MPI developer
http://www.open-mpi.org/