From owner-svn-src-all@FreeBSD.ORG Thu May 21 04:07:30 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C206084C for ; Thu, 21 May 2015 04:07:30 +0000 (UTC) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9314116E7 for ; Thu, 21 May 2015 04:07:30 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.9/8.14.9) with ESMTP id t4L47U63063502 for ; Thu, 21 May 2015 04:07:30 GMT (envelope-from bdrewery@freefall.freebsd.org) Received: (from bdrewery@localhost) by freefall.freebsd.org (8.14.9/8.14.9/Submit) id t4L47UA2063501 for svn-src-all@freebsd.org; Thu, 21 May 2015 04:07:30 GMT (envelope-from bdrewery) Received: (qmail 14285 invoked from network); 20 May 2015 23:07:26 -0500 Received: from unknown (HELO blah) (freebsd@shatow.net@10.10.1.90) by sweb.xzibition.com with ESMTPA; 20 May 2015 23:07:26 -0500 Message-ID: <555D59FD.10908@FreeBSD.org> Date: Wed, 20 May 2015 23:07:25 -0500 From: Bryan Drewery Organization: FreeBSD User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Baptiste Daroussin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r283132 - head/lib/libproc References: <201505192223.t4JMNGDZ025108@svn.freebsd.org> In-Reply-To: <201505192223.t4JMNGDZ025108@svn.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 May 2015 04:07:30 -0000 On 5/19/15 5:23 PM, Baptiste Daroussin wrote: > Author: bapt > Date: Tue May 19 22:23:15 2015 > New Revision: 283132 > URL: https://svnweb.freebsd.org/changeset/base/283132 > > Log: > Fix underlinking > I recommend always doing a full clean build when adding or removing libraries to libraries when targetting under/over link problems. Often an exp-run may even make sense. Many library consumers have benefited from overlinking for a long time and no one has realized they were missing direct links. I've added build-time tests into our build at work to force all libraries to not be over or under linked by using -Wl,--no-undefined and tools/build/check-links.sh (this gets tricky with WORLDTMP btw). In most cases of fixing an overlink issue I found that consumers were underlinked. It was a cascading issue. As an update to the clang++ -lm link, I modified it at work to use --as-needed -lm and had no fallout. I need to test build it in FreeBSD and get an exp-run for it. That will make check-links.sh happier on many of the PROG_CXX/LIB_CXX FreeBSD has. As for prebuild_libs, it seems that most of the time it is touched in the past year it is done wrong and without good testing. Please seek out reviews and consider dependencies. The libproc one committed currently is still wrong as it is depending on lib/libc++ (rather than lib/libc++__L) and libproc does not even use libc++, it uses libcxxrt. So it should be depending on libcxxrt__L. Not to mention it actually still errors too due to other bugs in it. -- Regards, Bryan Drewery