On Fri, 4 Jun 2010 09:20:48 +0000 "b. f." <bf1...@googlemail.com> wrote:

> Alexander Leidinger wrote:
> >Quoting Doug Barton <dougb at FreeBSD.org> (from Thu, 03 Jun 2010
> 11:29:01 -0700):
> >
> >> On 06/03/10 05:39, Matthias Andree wrote:
> >>> Am 03.06.2010 13:30, schrieb Andrey Chernov:
> >>>
> >>>> security/libksba
> >>>> security/libgcrypt
> >>>> (they use libgpg-error)
> >>
> >> So libgpg-error needs to be bumped, but why do things that don't
> >> like directly with gettext need it? One of the major benefits of
> >> shared libraries is to avoid pointless recompiling.
> >
> >The reason (for those interested) is explained here:
> http://www.leidinger.net/blog/2010/06/03/direct-indirect-and-explicit-dependencies-in-progamsports/
> 
> Just for the record, the useful
> ports/Tools/scripts/explicit_lib_depends.sh, described and used in
> your link above, may _not_ find libraries that:
> 
> -- are needed, but were intended to be statically linked;

Correct. If you are of a way how to detect it after the fact, feel free
to share the info here.

> -- are needed, but loaded via dlopen(3) and friends (this is noted in
> a comment in ports/Tools/scripts/neededlibs.sh );

Correct.

The goal for the scripts are to find entries for LIB_DEPENDS. A static
lib is a BUILD_DEPEND, not a LIB_DEPEND, and something which is opened
via dlopen() is typically not a LIB_DEPEND but a RUN_DEPEND (it is the
other way around and the stuff which is dlopen()en depends upon what
is dlopen()ing it). Additionally if a something is using dlopen(), it
should give sensible error messages when it does not work, so instead
of a cryptic error message which not everyone understands, there should
be (yes, I know, this is an idealistic POV) an error message even your
mother can understand.

I have to tell that those scripts are far from finished, the heuristic
of files to look at needs to be improved, and the translation into
ports-framework variable (like GNOME and X11 ones) needs to be written.
I didn't continue with this back when I was committing those scripts,
as the 3rd party software was far away from a state which would made it
really useful (indirect dependencies show up in runs of the scripts,
but they are not really welcome in our ports).

> -- are needed, and dynamically linked in the usual way, but are not
> referenced in any ELF DT_NEEDED tags.  These tags are optional, not
> mandatory, in the System V ABI, and they can be missing for a number
> of reasons.  They may not be present in a pre-compiled binary.  Or,
> for example. because some ports make shared libraries by converting
> static archives into shared libraries with the linker, the tags can
> sometimes be missing for those libraries.  Also, some ports use a
> version of gcc4* wired to devel/binutils, but then directly invoke
> some portion of the older base system binutils.  I've seen this lead
> to missing tags in the past.

Apart from the fact that I did not know that, do you know which ports in
the FreeBSD ports collection show this problem? Is there another way to
find this info in then?

Bye,
Alexander.
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to