From owner-svn-ports-all@FreeBSD.ORG Mon Jul 21 10:12:22 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 83B242ED; Mon, 21 Jul 2014 10:12:22 +0000 (UTC) Received: from mailrelay008.isp.belgacom.be (mailrelay008.isp.belgacom.be [195.238.6.174]) by mx1.freebsd.org (Postfix) with ESMTP id 4623820FC; Mon, 21 Jul 2014 10:12:20 +0000 (UTC) X-Belgacom-Dynamic: yes X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlsGANHmzFNbs4jr/2dsb2JhbABZgw7LAIMWAYEXF3aEAwEBBAE6HCMFCwsOCgklDyoeBohNDAG+VBePSweERgEEmySUMINGOw Received: from 235.136-179-91.adsl-dyn.isp.belgacom.be (HELO kalimero.tijl.coosemans.org) ([91.179.136.235]) by relay.skynet.be with ESMTP; 21 Jul 2014 12:12:17 +0200 Received: from kalimero.tijl.coosemans.org (kalimero.tijl.coosemans.org [127.0.0.1]) by kalimero.tijl.coosemans.org (8.14.9/8.14.9) with ESMTP id s6LACFCI009423; Mon, 21 Jul 2014 12:12:15 +0200 (CEST) (envelope-from tijl@FreeBSD.org) Date: Mon, 21 Jul 2014 12:12:14 +0200 From: Tijl Coosemans To: John Marino 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> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: svn-ports-head@freebsd.org, kwm@FreeBSD.org, Baptiste Daroussin , svn-ports-all@freebsd.org, marino@freebsd.org, ports-committers@freebsd.org X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2014 10:12:22 -0000 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.