From owner-svn-src-head@freebsd.org Sat Dec 26 17:26:29 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9A80AA52D5D; Sat, 26 Dec 2015 17:26:29 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.netplex.net (mail.netplex.net [204.213.176.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.netplex.net", Issuer "RapidSSL SHA256 CA - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 435231FB3; Sat, 26 Dec 2015 17:26:29 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.netplex.net (8.15.1/8.15.1/NETPLEX) with ESMTP id tBQHQRrj024065; Sat, 26 Dec 2015 12:26:27 -0500 X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.netplex.net) X-Greylist: Message whitelisted by DRAC access database, not delayed by milter-greylist-4.4.3 (mail.netplex.net [204.213.176.9]); Sat, 26 Dec 2015 12:26:27 -0500 (EST) Date: Sat, 26 Dec 2015 12:26:27 -0500 (EST) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net Reply-To: Daniel Eischen To: Colin Percival cc: Ed Schouten , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292723 - in head: lib/libc share/mk In-Reply-To: <567DE180.3040601@freebsd.org> Message-ID: References: <201512251129.tBPBTIZp058825@repo.freebsd.org> <567DE180.3040601@freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Dec 2015 17:26:29 -0000 On Fri, 25 Dec 2015, Colin Percival wrote: > On 12/25/15 13:03, Daniel Eischen wrote: >> On Fri, 25 Dec 2015, Ed Schouten wrote: >>> 2015-12-25 12:29 GMT+01:00 Colin Percival : >>>> Make libxnet.so a symlink to libc.so. This makes `-lxnet` a no-op, as >>>> POSIX requires for the c99 compiler. >>> >>> I seem to remember I had some issues in the past where I was linking >>> against libc explicitly. Maybe it had something to do with linking >>> both against -lpthread and -lc, but if you pass in -lc later on the >>> command line, libc overrides the symbols that have to be provided by >>> -lpthread? > > I just did some tests with one of my pthread-using tools, and it passes > all of my tests with -lc added before or after -lpthread. Can you > remember any details of how the problems showed up? Is it possible that > this has been fixed since then? I know there's a lot of tricks to make > sure that the right versions of functions get called. > >>> If that's (still) the case, would it make sense to just provide >>> libxnet in the form of an empty .a file instead? >> >> I think that's a good point. Using -lanything shouldn't introduce an >> unexpected link order. > > Yes, adding a dummy library was my first thought, but kib pointed out > that a symlink was much simpler. Obviously it never occurred to me that > linking to a library which we were going to be linking to anyway would > cause problems... It is hard to contemplate a way this could cause problems (after reading Konstantin's response with regard to threads). The only thought I have is if the application is trying to override libc symbols (which are weak) with other weak symbols. The first weak wins. -- DE