Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Jul 2014 12:12:14 +0200
From:      Tijl Coosemans <tijl@FreeBSD.org>
To:        John Marino <freebsd.contact@marino.st>
Cc:        svn-ports-head@freebsd.org, kwm@FreeBSD.org, Baptiste Daroussin <bapt@FreeBSD.org>, svn-ports-all@freebsd.org, marino@freebsd.org, ports-committers@freebsd.org
Subject:   Re: svn commit: r362304 - head/x11-toolkits/pango
Message-ID:  <20140721121214.1d1f3ef5@kalimero.tijl.coosemans.org>
In-Reply-To: <53CCABFA.7090202@marino.st>
References:  <201407200815.s6K8FG8b003096@svn.freebsd.org> <20140720132259.156d687e@kalimero.tijl.coosemans.org> <53CBA770.2010409@marino.st> <20140720113124.GD26778@ivaldir.etoilebsd.net> <20140720165256.1f4d5d07@kalimero.tijl.coosemans.org> <53CBF2D7.4070005@marino.st> <20140721013342.6c17ecdc@kalimero.tijl.coosemans.org> <53CCABFA.7090202@marino.st>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 21 Jul 2014 07:58:18 +0200 John Marino wrote:
> On 7/21/2014 01:33, Tijl Coosemans wrote:
>>> The is not the only port that sets the explicit-depends configure option
>>> either.
>> 
>> Yes I know.  It must all be removed.  The worst case is the gtk20 port
>> which forces everything that uses gtk20 to link with many Xorg libraries
>> for no reason.
> 
> For no reason?
> Pango contains symbols from each of those libraries.  If you link pango
> without linking the xorg library, you're going to get a reference error
> if the linker requires explicit linking.

Pango uses Xorg symbols, so pango must link with Xorg libraries.
Executable X uses Pango symbols, so X must link with Pango libraries.
Executable X does not use Xorg symbols and does not use libm symbols
so it should not be forced to link with Xorg libraries and libm just
because it links with pango libraries.

> For a linker not requiring explicit linking, it just searches each
> shared library listed in the dynamic symbols section until it finds the
> symbol it's looking for.

Yes, if executable X did use libm symbols then implicit linking would
find libm via the pango libraries.  Explicit linking requires that you
add -lm to the linker command line.

FreeBSD 10 and up use explicit linking.

>>> What is the concern here?
>> 
>> The concern is overlinking.  You are forcing everything that uses pango
>> to link with libm just to fix a few ports that require libm but forget
>> to link with it explicitly.  You are also forcing everything that uses
>> pangocairo to link with libfreetype and libfontconfig now.
> 
> It's not the port that requires libm,

Then why are you linking it with libm?

> it's libpango that references
> libm.

Correct and therefore libpango must link with libm.  It doesn't mean
that everything that links with libpango must also link with libm.

> As such, it's pango's responsibility to link libm through the pc
> file.

No, the .pc file is what other ports use to figure out how to link
with libpango, through the output of "pkgconf --libs pango".  You
have now added -lm to that output forcing all ports that use libpango
to link with libm even if they don't contain any libm symbols.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140721121214.1d1f3ef5>