From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44870) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Up3du-0008GZ-Nn for qemu-devel@nongnu.org; Tue, 18 Jun 2013 17:40:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Up3do-0001Gd-KK for qemu-devel@nongnu.org; Tue, 18 Jun 2013 17:40:46 -0400 Received: from mail-pa0-x231.google.com ([2607:f8b0:400e:c03::231]:40207) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Up3do-0001G1-BM for qemu-devel@nongnu.org; Tue, 18 Jun 2013 17:40:40 -0400 Received: by mail-pa0-f49.google.com with SMTP id ld11so4445349pab.36 for ; Tue, 18 Jun 2013 14:40:39 -0700 (PDT) Sender: Richard Henderson Message-ID: <51C0D3D3.5060609@twiddle.net> Date: Tue, 18 Jun 2013 14:40:35 -0700 From: Richard Henderson MIME-Version: 1.0 References: <51C04671.8090305@msgid.tls.msk.ru> <51C04FC4.5000007@redhat.com> <20130618201520.GJ31207@redhat.com> In-Reply-To: <20130618201520.GJ31207@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] RFC: DSO (dynamic shared objects) support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Daniel P. Berrange" Cc: Michael Tokarev , Laszlo Ersek , qemu-devel On 06/18/2013 01:15 PM, Daniel P. Berrange wrote: > By having all the private symbols change their version tag on every > release, we make it a total PITA for anyone to provide closed source, > out of tree, third party modules. Which is nice a feature :-) Using a symbol version file also means that symbols that aren't explicitly exported are not present in the dynamic symbol table. Which isn't *quite* as good as using compiler-level symbol visibility markup, but the linker can sometimes optimize code sequences in place or at minimum reduce a full symbol relocation to a relative relocation. > Symbol versioning like this isn't portable to Windows, but it works > on Solaris and Linux at least. I'm not sure about BSD support for > symbol versioning. Given that symbol versioning is mostly a forward compatible extension to ELF, assuming the linker doesn't date from the dark ages one should at least be able to take advantage of visibility improvements, even if actual symbol versions aren't enforced. r~