svn commit: r362304 - head/x11-toolkits/pango

Baptiste Daroussin bapt at FreeBSD.org
Sun Jul 20 22:06:19 UTC 2014


On Sun, Jul 20, 2014 at 06:48:23PM +0200, John Marino wrote:
> 
> 
> On 7/20/2014 16:52, Tijl Coosemans wrote:
> > On Sun, 20 Jul 2014 13:31:24 +0200 Baptiste Daroussin wrote:
> >> On Sun, Jul 20, 2014 at 01:26:40PM +0200, John Marino wrote:
> >>> On 7/20/2014 13:22, Tijl Coosemans wrote:
> >>>> On Sun, 20 Jul 2014 08:15:16 +0000 (UTC) John Marino wrote:
> >>>>> Author: marino
> >>>>> Date: Sun Jul 20 08:15:16 2014
> >>>>> New Revision: 362304
> >>>>> URL: http://svnweb.freebsd.org/changeset/ports/362304
> >>>>> QAT: https://qat.redports.org/buildarchive/r362304/
> >>>>>
> >>>>> Log:
> >>>>>   x11-toolkits/pango: require explicit linking
> >>>>>   
> >>>>>   This new configure argument will list all required libraries in the
> >>>>>   generated pkgconf files.  Before any library indirectly pulled in, such
> >>>>>   as libm, was not listed.
> >>>>>   
> >>>>>   This fixes numerous regression in dports and it's more correct anyway.
> >>>>
> >>>> No, this is wrong.  Each port should link to the libraries it needs on
> >>>> its own.  No port should rely on other ports to pull in libraries for
> >>>> them.
> >>>
> >>> Then I guess we really don't need pkgconfig .pc files at all then?
> >>> (This is the point of .pc files, it tells how to link.  libm is directly
> >>> used by pango)
> >>>
> >>> so no, it is not wrong.  The generated pc file was wrong, now it's not.
> >>> This is why the configuration argument exists.
> > 
> > A .pc file normally has 1 library in the Libs field (the library the .pc
> > file is created for) and 0 items in the Requires field.  Dependencies go
> > in the Libs.private or Requires.private fields.  The only reason to add
> > dependencies to Libs or Requires is if the headers of the library expose
> > the API of those dependencies (e.g. the library headers define macros or
> > inline functions that expand to calls to functions in a dependency (such
> > as Gtk macros that expand to Glib function calls)).
> > 
> > The pango headers don't even include math.h or complex.h so they cannot
> > expose its API.  The generated .pc file was correct, now it is wrong.
> > 
> > The reason the configure argument exists is probably because this is an
> > old .pc file from before the .private fields existed.
> 
> Again, linking libpango without -libm is an error when explicit linking
> is required (as has been the default on binutils for the last 3
> versions).  The previous pc did not consider -lm, so it's wrong.
> 
> The proof is in the pudding.  When enabling the explicit linking
> configure option, it fixed all the explict linking errors seen by ports
> depending on pango.
> 
> The is not the only port that sets the explicit-depends configure option
> either.
> 
> What is the concern here?  Linkers that don't require explicitly
> specified libraries still link with those libraries through recursive
> searching.  The end result is the same, so I'm not understanding the
> motivation for this discussion, especially since gnome@ (the maintainer)
> approved the change.
> 
> John
> 
Checking on some linux they seems to not have the problem with -lm are you sure
that there is no problem with binutils on dragonfly? because checking at pango
headers I cannot see why it would leaking things from libm.

regards,
Bapt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-ports-head/attachments/20140721/15e815d7/attachment.sig>


More information about the svn-ports-head mailing list