<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Linkers part 2</title>
	<atom:link href="http://www.airs.com/blog/archives/39/feed" rel="self" type="application/rss+xml" />
	<link>http://www.airs.com/blog/archives/39</link>
	<description>Ian Lance Taylor</description>
	<lastBuildDate>Sun, 07 Mar 2010 17:12:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: berkus</title>
		<link>http://www.airs.com/blog/archives/39/comment-page-1#comment-15620</link>
		<dc:creator>berkus</dc:creator>
		<pubDate>Fri, 02 Jan 2009 18:31:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/39#comment-15620</guid>
		<description>Jessica, I&#039;m probably too late for the party, but take a look at this simple ELF linker:
http://bzr.madfire.net/odin/files/head%3A/tools/sjofn/</description>
		<content:encoded><![CDATA[<p>Jessica, I&#8217;m probably too late for the party, but take a look at this simple ELF linker:<br />
<a href="http://bzr.madfire.net/odin/files/head%3A/tools/sjofn/" rel="nofollow">http://bzr.madfire.net/odin/files/head%3A/tools/sjofn/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jessica Hamilton</title>
		<link>http://www.airs.com/blog/archives/39/comment-page-1#comment-14904</link>
		<dc:creator>Jessica Hamilton</dc:creator>
		<pubDate>Tue, 14 Oct 2008 07:27:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/39#comment-14904</guid>
		<description>Thanks Ian. Hopefully I can scrape the mechanics of linking out of all the multi-threading and syntax in general! My eyes tend to glaze over with C/C++, but maybe I&#039;ll get there.

Pseudo-code does have the advantage of simplicity over real code, btw ;-)</description>
		<content:encoded><![CDATA[<p>Thanks Ian. Hopefully I can scrape the mechanics of linking out of all the multi-threading and syntax in general! My eyes tend to glaze over with C/C++, but maybe I&#8217;ll get there.</p>
<p>Pseudo-code does have the advantage of simplicity over real code, btw <img src='http://www.airs.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Lance Taylor</title>
		<link>http://www.airs.com/blog/archives/39/comment-page-1#comment-14900</link>
		<dc:creator>Ian Lance Taylor</dc:creator>
		<pubDate>Tue, 14 Oct 2008 05:21:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/39#comment-14900</guid>
		<description>Thanks for the note.  I recommend that you look at the source code for the linker I wrote, gold.  It&#039;s even better than pseudo-code: it&#039;s real code.

To get a working linker concentrate on building the symbol table, placing the input sections in the output file, and applying relocations.</description>
		<content:encoded><![CDATA[<p>Thanks for the note.  I recommend that you look at the source code for the linker I wrote, gold.  It&#8217;s even better than pseudo-code: it&#8217;s real code.</p>
<p>To get a working linker concentrate on building the symbol table, placing the input sections in the output file, and applying relocations.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jessica Hamilton</title>
		<link>http://www.airs.com/blog/archives/39/comment-page-1#comment-14891</link>
		<dc:creator>Jessica Hamilton</dc:creator>
		<pubDate>Mon, 13 Oct 2008 02:39:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/39#comment-14891</guid>
		<description>Hi Ian,

Your series on linkers has been interesting and informative. Especially since I am attempting (seemingly in vain) to write a very basic linker for ELF. No shared libraries or other strange stuff. Just combine objects and static libraries into a basic executable.

I understand the basics of how it works, but haven&#039;t really been able to figure out how to piece it together. I can parse objects and libraries, parse symbol tables, and print out most of this sort of information.

I am hoping you could help me with a bit more of a breakdown of how to put this altogether. Something kind of like pseudo-code.

Many Thanks,

Jessica</description>
		<content:encoded><![CDATA[<p>Hi Ian,</p>
<p>Your series on linkers has been interesting and informative. Especially since I am attempting (seemingly in vain) to write a very basic linker for ELF. No shared libraries or other strange stuff. Just combine objects and static libraries into a basic executable.</p>
<p>I understand the basics of how it works, but haven&#8217;t really been able to figure out how to piece it together. I can parse objects and libraries, parse symbol tables, and print out most of this sort of information.</p>
<p>I am hoping you could help me with a bit more of a breakdown of how to put this altogether. Something kind of like pseudo-code.</p>
<p>Many Thanks,</p>
<p>Jessica</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Lance Taylor</title>
		<link>http://www.airs.com/blog/archives/39/comment-page-1#comment-5026</link>
		<dc:creator>Ian Lance Taylor</dc:creator>
		<pubDate>Tue, 09 Oct 2007 06:07:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/39#comment-5026</guid>
		<description>Thanks for the note.  Maybe some day I&#039;ll research these earlier systems.

Thanks for the pointer to Donovan&#039;s book; I&#039;m not familiar with it.</description>
		<content:encoded><![CDATA[<p>Thanks for the note.  Maybe some day I&#8217;ll research these earlier systems.</p>
<p>Thanks for the pointer to Donovan&#8217;s book; I&#8217;m not familiar with it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rskrishnan</title>
		<link>http://www.airs.com/blog/archives/39/comment-page-1#comment-5009</link>
		<dc:creator>rskrishnan</dc:creator>
		<pubDate>Mon, 08 Oct 2007 20:46:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/39#comment-5009</guid>
		<description>I think shared libraries have been around for a while. I have used VMS systems with some _very_ sophisticated linkers and loaders. I&#039;ve also &quot;seen&quot; as/400 systems (but their terminology is totally gibberish to me).

I really liked assemblers and linkers as discussed in &quot;Systems Programming&quot; by John J. Donovan. Very exhaustive discussion on what happens at each stage of the compile/link/load/execute process. Very informative and assumes very little knowledge going in.</description>
		<content:encoded><![CDATA[<p>I think shared libraries have been around for a while. I have used VMS systems with some _very_ sophisticated linkers and loaders. I&#8217;ve also &#8220;seen&#8221; as/400 systems (but their terminology is totally gibberish to me).</p>
<p>I really liked assemblers and linkers as discussed in &#8220;Systems Programming&#8221; by John J. Donovan. Very exhaustive discussion on what happens at each stage of the compile/link/load/execute process. Very informative and assumes very little knowledge going in.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jrlevine</title>
		<link>http://www.airs.com/blog/archives/39/comment-page-1#comment-4271</link>
		<dc:creator>jrlevine</dc:creator>
		<pubDate>Thu, 13 Sep 2007 23:40:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/39#comment-4271</guid>
		<description>I think you&#039;ll find that shared libraries go back to Multics in about 1969. The Multics machines had hardware segments (sort of like the 286&#039;s but bigger) with each segment dynamically linking to others. Before that, executables with shared code were common, so that if three people were using the text editor they&#039;d all share the same copy of the code, but each program had all of the libraries it needed linked into it. The PDP-6 timesharing system had that probably by 1965, early PDP-11 Unix by 1972 or 3. Again, these ideas go way, way back.</description>
		<content:encoded><![CDATA[<p>I think you&#8217;ll find that shared libraries go back to Multics in about 1969. The Multics machines had hardware segments (sort of like the 286&#8217;s but bigger) with each segment dynamically linking to others. Before that, executables with shared code were common, so that if three people were using the text editor they&#8217;d all share the same copy of the code, but each program had all of the libraries it needed linked into it. The PDP-6 timesharing system had that probably by 1965, early PDP-11 Unix by 1972 or 3. Again, these ideas go way, way back.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Lance Taylor</title>
		<link>http://www.airs.com/blog/archives/39/comment-page-1#comment-4261</link>
		<dc:creator>Ian Lance Taylor</dc:creator>
		<pubDate>Thu, 13 Sep 2007 18:26:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/39#comment-4261</guid>
		<description>Thanks for the note.  I used TOPS-20 some in high school, but I never used VMS very much.</description>
		<content:encoded><![CDATA[<p>Thanks for the note.  I used TOPS-20 some in high school, but I never used VMS very much.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joe Buck</title>
		<link>http://www.airs.com/blog/archives/39/comment-page-1#comment-4247</link>
		<dc:creator>Joe Buck</dc:creator>
		<pubDate>Thu, 13 Sep 2007 05:20:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/39#comment-4247</guid>
		<description>Also, I recall that the VMS shared library implementation was quite modern, in the sense that it used position-independent code and mapped shared libraries into address spaces at any point. The page size was tiny, however, only 512 bytes.  But then, a whole department would share one massive Vax 11/780 with a whopping 2 Mb of memory back when I started.</description>
		<content:encoded><![CDATA[<p>Also, I recall that the VMS shared library implementation was quite modern, in the sense that it used position-independent code and mapped shared libraries into address spaces at any point. The page size was tiny, however, only 512 bytes.  But then, a whole department would share one massive Vax 11/780 with a whopping 2 Mb of memory back when I started.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joe Buck</title>
		<link>http://www.airs.com/blog/archives/39/comment-page-1#comment-4246</link>
		<dc:creator>Joe Buck</dc:creator>
		<pubDate>Thu, 13 Sep 2007 05:16:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/39#comment-4246</guid>
		<description>Dec&#039;s VMS had shared libraries from the beginning, in 1980. I was a VMS user before I was a Unix user (and before that used DEC&#039;s RSX-11 and RT-11), and was regularly stunned when I went to grad school at UC Berkeley at all of the grad students who thought that any given computer science concept was invented when it first appeared in some flavor of Unix.</description>
		<content:encoded><![CDATA[<p>Dec&#8217;s VMS had shared libraries from the beginning, in 1980. I was a VMS user before I was a Unix user (and before that used DEC&#8217;s RSX-11 and RT-11), and was regularly stunned when I went to grad school at UC Berkeley at all of the grad students who thought that any given computer science concept was invented when it first appeared in some flavor of Unix.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
