PETSC_DIR as a symlink

Jed Brown jed at 59A2.org
Thu Nov 26 11:02:22 CST 2009


On Thu, 26 Nov 2009 09:26:41 -0600 (CST), Satish Balay <balay at mcs.anl.gov> wrote:
> BTW: What exact error message do you get?

It was this one, but it's working correctly now.

  The environmental variable PETSC_DIR /home/jedbrow/petsc-dev is not a directory

This system is actively hostile in the sense that there are different
incompatible core tools scattered everywhere, the error came before I
fixed up LD_LIBRARY_PATH and such to get consistent libs.  The error
was probably caused by that nonsense, sorry for the noise.

> > peraps this is one case where --prefix install is useful?

I'm not sure, I want the source to stick around for debugging purposes
and to make rebuilding easier.  I think --prefix is good for everything
that you only want one version of, or that you don't expect any useful
debugging information from.  It is pretty much the only sensible thing
for desktop and core libs, the alternative is that you're constantly
monkeying with LD_LIBRARY_PATH, or building with RPATH in which case a
libc upgrade means rebuilding/downloading all of userland.  This is the
reason for the Debian/GNU guidelines.

A lot of clusters manage multiple MPI implementations built with
multiple ABI-incompatible compilers plus (if you're lucky) some debug
builds for a core set of libraries.  This works, but administering all
of these builds and building new software becomes a lot more work.  When
a library is near the top of the stack and the value of having multiple
versions present is greater than the effort of managing them, PETSc's
no-prefix system works well (but any system that cleanly handles
out-of-source builds would be fine too).

There are applications for which PETSc is just another library and users
want to 'aptitude install petsc' and have it Just Work.  We might argue
that they just don't know what they want, but it can be a hard sell.
Some of these build systems are only designed for a single in-source
build which is an insult to any precocious users who thinks they might
want more than one version of PETSc.  This is where the --prefix install
comes in (and a pkg-config file would be nice too).

Jed



More information about the petsc-dev mailing list