<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/1.5.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Linkers part 13</title>
	<link>http://www.airs.com/blog/archives/50</link>
	<description>Ian Lance Taylor</description>
	<pubDate>Wed,  7 Jan 2009 02:35:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.2</generator>

	<item>
 		<title>Comment on Linkers part 13 by: Ian Lance Taylor</title>
		<link>http://www.airs.com/blog/archives/50#comment-4362</link>
		<pubDate>Sat, 15 Sep 2007 16:28:37 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/50#comment-4362</guid>
					<description>I see two advantages over changing the SONAME.

The first is that changing the SONAME requires providing a complete new copy of the shared library.  This takes up more disk space.  More importantly, when different executables running at the same time require different versions of the shared library, if you use a different SONAME they will each use a different library, so no sharing will occur.  Using symbol versioning, they will each use the same shared library, so it will be shared.  I think this is a fairly decisive argument in favor of symbol versions over changing the SONAME.

The second advantage I see, which is less important, is that an executable linked against a new SONAME will require that new SONAME to be present on the system.  Thus there is no forward compatibility at all.  Symbol versioning doesn't provide full forward compatibility, but it does provide a limited variant: if your executable happens to not use any symbols with newer versions, it will still run on systems which only have the older version of the shared library.</description>
		<content:encoded><![CDATA[	<p>I see two advantages over changing the SONAME.</p>
	<p>The first is that changing the SONAME requires providing a complete new copy of the shared library.  This takes up more disk space.  More importantly, when different executables running at the same time require different versions of the shared library, if you use a different SONAME they will each use a different library, so no sharing will occur.  Using symbol versioning, they will each use the same shared library, so it will be shared.  I think this is a fairly decisive argument in favor of symbol versions over changing the SONAME.</p>
	<p>The second advantage I see, which is less important, is that an executable linked against a new SONAME will require that new SONAME to be present on the system.  Thus there is no forward compatibility at all.  Symbol versioning doesn&#8217;t provide full forward compatibility, but it does provide a limited variant: if your executable happens to not use any symbols with newer versions, it will still run on systems which only have the older version of the shared library.
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on Linkers part 13 by: fche</title>
		<link>http://www.airs.com/blog/archives/50#comment-4355</link>
		<pubDate>Sat, 15 Sep 2007 13:33:47 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/50#comment-4355</guid>
					<description>Re symbol versioning, to what extent does it improve on the flexibility provided by simply
retaining the old shared library (ABI provider) under its old SONAME, and letting newer
libraries use new SONAME's ?</description>
		<content:encoded><![CDATA[	<p>Re symbol versioning, to what extent does it improve on the flexibility provided by simply<br />
retaining the old shared library (ABI provider) under its old SONAME, and letting newer<br />
libraries use new SONAME&#8217;s ?
</p>
]]></content:encoded>
				</item>
</channel>
</rss>
