[petsc-dev] use --with-single-library=1 as default?

Lisandro Dalcín dalcinl at gmail.com
Thu Feb 4 06:49:42 CST 2010

On Thu, Feb 4, 2010 at 6:11 AM, Jed Brown <jed at 59a2.org> wrote:
> On Wed, 3 Feb 2010 18:08:34 -0600 (CST), Satish Balay <balay at mcs.anl.gov> wrote:
>> Should we default to using --with-single-library=1? [I'd prefer this -
>> as it will minimize dlopen issues from external packages.]
>> Also - I'd like to have distinct library names between
>> --with-single-library=0 and 1 - so that there is no ambiguity.
>> i.e libpetsc.a for --with-single-library=1
>> libpetscsys.a [instead of current libpetsc.a] for --with-single-library=0
> I also like distinguishing between libpetsc (the whole thing) and
> libpetscsys, it makes it easier to write robust auto-configure stuff to
> find PETSc.  Note that with shared libs, you can build them separately,
> link the front-end

I agree.

>  ld -shared -o libpetsc.so libpetsc*.so
> and then the same install is available as one convenient chunk (just
> -lpetsc) or in whatever granularity is desired, and it still enforces
> the module boundaries.

I was going to propose exactly the same. However, I bet that some
(older?) platforms (not using ELF?) will not work like in Linux, and
then a -lpetsc front-end will not work as you expect because of
broken/missing support por shared lib dependencies.

> I'm not sure I see the benefit of static linking with-single-library
> because they still have to explicitly link recursive dependencies.

As I commented long ago, convenience for end-users (single include,
single library) is clear benefit, even in the case of static linking.

Lisandro Dalcín
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594

More information about the petsc-dev mailing list