ML symbols in petscksp.so
Satish Balay
balay at mcs.anl.gov
Thu Oct 29 16:01:37 CDT 2009
On Thu, 29 Oct 2009, Barry Smith wrote:
>
> On Oct 29, 2009, at 3:52 PM, Lisandro Dalcin wrote:
>
> > On Thu, Oct 29, 2009 at 4:45 PM, Jed Brown <jed at 59a2.org> wrote:
> > >
> > > I realize that the real problem here was OpenCV's libml and the fact
> > > that linkers don't resolve symbols by starting with the most recent -L
> > > path [*], but we should at least remember that putting -L{PETSC_LIB_DIR}
> > > at the beginning of the line can completely change the way symbols are
> > > resolved.
> > >
> >
> > I think that the real problem here is that developers should be
> > smarter and they should not use such short names for a library... "ml"
> > .. just two characters... What "ml" stand for? "mailing list"? the
> > internet country code for Mali at Africa? "milliliter" ? "Markup
> > Language", "ML" the programming language? Well... I'll stop here...
> > :-)
> >
> > IMHO, I think that what Jed suggested in previous mail about using
> > -Wl,-whole-archive ${PETSC_EXTERNAL_LIB} -Wl,-no-whole-archive when
> > --with-shared is in action could be a VERY good idea... Then PETSc
> > link lines will not need to refer at all to these static libs from
> > external packages...
This works for folks who use PETSc - and nothing else. But once you
have 2 packages doing this [say both add in hypre symbols] - and then
some user wants to use these two packages - you have conflicts. [esp
with multiple copies of global variables etc..]
The ideal solution is to have every library have its own .so
file.. [but this is not easy]
Satish
More information about the petsc-dev
mailing list