<?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: Compiling the C30 gcc compiler on Mac OS X (Leopard)</title>
	<atom:link href="http://vanklinkenbergsoftware.nl/blog/?feed=rss2&#038;p=3" rel="self" type="application/rss+xml" />
	<link>http://vanklinkenbergsoftware.nl/blog/?p=3</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 24 Jul 2009 07:18:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: LnddMiles</title>
		<link>http://vanklinkenbergsoftware.nl/blog/?p=3&#038;cpage=1#comment-55</link>
		<dc:creator>LnddMiles</dc:creator>
		<pubDate>Fri, 24 Jul 2009 07:18:28 +0000</pubDate>
		<guid isPermaLink="false">http://vanklinkenbergsoftware.nl/blog/?p=3#comment-55</guid>
		<description>The best information i have found exactly here. Keep going Thank you</description>
		<content:encoded><![CDATA[<p>The best information i have found exactly here. Keep going Thank you</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bas</title>
		<link>http://vanklinkenbergsoftware.nl/blog/?p=3&#038;cpage=1#comment-26</link>
		<dc:creator>bas</dc:creator>
		<pubDate>Thu, 15 Jan 2009 01:05:21 +0000</pubDate>
		<guid isPermaLink="false">http://vanklinkenbergsoftware.nl/blog/?p=3#comment-26</guid>
		<description>That&#039;s right, the resource path handling leaves a lot to be desired. 
The resource path stuff built by Microchip is probably targeted towards the windows platform, and probably not tested for unix like file systems, hence the crash.
Anyway, my goal (and others, who actually made the patches - I just copy pasted mostly) was simply: &#039;make it compile, get it to work&#039;. Hence the shortcut taken by hardcoding the paths during the build process.

I think resolving this with symlinks feels a bit like a &#039;last resort&#039;. It would be better to fix the relative resource path code and include a couple of standard places where to go look for resource files (and gracefully fail if not found rather than crash). Those standard places should follow the way Apple organizes resource paths (for example for iPhone, or find out how it was done for the AVR gcc compiler).</description>
		<content:encoded><![CDATA[<p>That&#8217;s right, the resource path handling leaves a lot to be desired.<br />
The resource path stuff built by Microchip is probably targeted towards the windows platform, and probably not tested for unix like file systems, hence the crash.<br />
Anyway, my goal (and others, who actually made the patches &#8211; I just copy pasted mostly) was simply: &#8216;make it compile, get it to work&#8217;. Hence the shortcut taken by hardcoding the paths during the build process.</p>
<p>I think resolving this with symlinks feels a bit like a &#8216;last resort&#8217;. It would be better to fix the relative resource path code and include a couple of standard places where to go look for resource files (and gracefully fail if not found rather than crash). Those standard places should follow the way Apple organizes resource paths (for example for iPhone, or find out how it was done for the AVR gcc compiler).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leo</title>
		<link>http://vanklinkenbergsoftware.nl/blog/?p=3&#038;cpage=1#comment-24</link>
		<dc:creator>Leo</dc:creator>
		<pubDate>Wed, 14 Jan 2009 16:40:35 +0000</pubDate>
		<guid isPermaLink="false">http://vanklinkenbergsoftware.nl/blog/?p=3#comment-24</guid>
		<description>So I symlinked all the pic30-coff-* executables to pic30-* because my build scripts all use the pic30-* variants.  I put the symlinks in a separate directory from the executables.  When I tried building my project, the compiler crashed.  This was because it was looking for the file &quot;c30_device.info&quot; relative the symlink I made.

Bas, many of your patches relate to the resource paths and hard-coding them into the compiler.  Microchip&#039;s convoluted path parsing code is clearly designed to handle the situation where the whole packing is copied to a folder specified by the user, long after the package was built with &quot;make install&quot;.  Is Microchip&#039;s technique for doing this worth keeping?  Someone should try moving the base folder of their pic30 installation and see if it still works.  If it does, then Microchip&#039;s relative paths might make creating an installer much simpler.

Also, I realized that my patch for the file &quot;c30_resource_paths.h&quot; was only necessary because in Microchip&#039;s distribution there are two copies of the .gld and .inc files: with the assembler and with the compiler.  There are two ways to handle this: 1) modify the toolchain&#039;s hardcoded relative search paths or 2) symlink/copy resouces the the appropriate locations so that the directory layout is identical to Microchip&#039;s.  Which would be preferable?</description>
		<content:encoded><![CDATA[<p>So I symlinked all the pic30-coff-* executables to pic30-* because my build scripts all use the pic30-* variants.  I put the symlinks in a separate directory from the executables.  When I tried building my project, the compiler crashed.  This was because it was looking for the file &#8220;c30_device.info&#8221; relative the symlink I made.</p>
<p>Bas, many of your patches relate to the resource paths and hard-coding them into the compiler.  Microchip&#8217;s convoluted path parsing code is clearly designed to handle the situation where the whole packing is copied to a folder specified by the user, long after the package was built with &#8220;make install&#8221;.  Is Microchip&#8217;s technique for doing this worth keeping?  Someone should try moving the base folder of their pic30 installation and see if it still works.  If it does, then Microchip&#8217;s relative paths might make creating an installer much simpler.</p>
<p>Also, I realized that my patch for the file &#8220;c30_resource_paths.h&#8221; was only necessary because in Microchip&#8217;s distribution there are two copies of the .gld and .inc files: with the assembler and with the compiler.  There are two ways to handle this: 1) modify the toolchain&#8217;s hardcoded relative search paths or 2) symlink/copy resouces the the appropriate locations so that the directory layout is identical to Microchip&#8217;s.  Which would be preferable?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Antoine</title>
		<link>http://vanklinkenbergsoftware.nl/blog/?p=3&#038;cpage=1#comment-23</link>
		<dc:creator>Antoine</dc:creator>
		<pubDate>Tue, 13 Jan 2009 22:05:41 +0000</pubDate>
		<guid isPermaLink="false">http://vanklinkenbergsoftware.nl/blog/?p=3#comment-23</guid>
		<description>Oh. Strangly enough, firefox wont show any content for the feed, but my feed reader (actually Mail.app) shows the correct content. (I was using the correct link.) It&#039;s all fine now, thanks!</description>
		<content:encoded><![CDATA[<p>Oh. Strangly enough, firefox wont show any content for the feed, but my feed reader (actually Mail.app) shows the correct content. (I was using the correct link.) It&#8217;s all fine now, thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bas</title>
		<link>http://vanklinkenbergsoftware.nl/blog/?p=3&#038;cpage=1#comment-22</link>
		<dc:creator>bas</dc:creator>
		<pubDate>Tue, 13 Jan 2009 21:32:47 +0000</pubDate>
		<guid isPermaLink="false">http://vanklinkenbergsoftware.nl/blog/?p=3#comment-22</guid>
		<description>@Antoine: did you subscribe to the feed linked just above the start of the comments (at the end of the text) or did you use the RSS icon in the address bar? The former should track changes to the comments on this page, the latter tracks changes to the blog itself.</description>
		<content:encoded><![CDATA[<p>@Antoine: did you subscribe to the feed linked just above the start of the comments (at the end of the text) or did you use the RSS icon in the address bar? The former should track changes to the comments on this page, the latter tracks changes to the blog itself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bas</title>
		<link>http://vanklinkenbergsoftware.nl/blog/?p=3&#038;cpage=1#comment-21</link>
		<dc:creator>bas</dc:creator>
		<pubDate>Tue, 13 Jan 2009 20:14:58 +0000</pubDate>
		<guid isPermaLink="false">http://vanklinkenbergsoftware.nl/blog/?p=3#comment-21</guid>
		<description>Sounds like a nice plan!

Until now lack of time has held me back of trying to plug it into Xcode (I&#039;m using textmate right now).

Now if we could implement remote debugging via Xcode, that would be code nirvana :-D</description>
		<content:encoded><![CDATA[<p>Sounds like a nice plan!</p>
<p>Until now lack of time has held me back of trying to plug it into Xcode (I&#8217;m using textmate right now).</p>
<p>Now if we could implement remote debugging via Xcode, that would be code nirvana <img src='http://vanklinkenbergsoftware.nl/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leo</title>
		<link>http://vanklinkenbergsoftware.nl/blog/?p=3&#038;cpage=1#comment-20</link>
		<dc:creator>Leo</dc:creator>
		<pubDate>Tue, 13 Jan 2009 19:52:08 +0000</pubDate>
		<guid isPermaLink="false">http://vanklinkenbergsoftware.nl/blog/?p=3#comment-20</guid>
		<description>Here&#039;s a page that has some info on how to put together Xcode plugins:
http://maxao.free.fr/xcode-plugin-interface/index.html

However, the compiler spec appears to be outdated.  For one, the &quot;.pbcompspec&quot; files that they talk about are replaced by &quot;.xcpsec&quot; files in Xcode 3.  Some reverse engineering would be required to make an Xcode plugin for PIC30.</description>
		<content:encoded><![CDATA[<p>Here&#8217;s a page that has some info on how to put together Xcode plugins:<br />
<a href="http://maxao.free.fr/xcode-plugin-interface/index.html" rel="nofollow">http://maxao.free.fr/xcode-plugin-interface/index.html</a></p>
<p>However, the compiler spec appears to be outdated.  For one, the &#8220;.pbcompspec&#8221; files that they talk about are replaced by &#8220;.xcpsec&#8221; files in Xcode 3.  Some reverse engineering would be required to make an Xcode plugin for PIC30.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leo</title>
		<link>http://vanklinkenbergsoftware.nl/blog/?p=3&#038;cpage=1#comment-19</link>
		<dc:creator>Leo</dc:creator>
		<pubDate>Tue, 13 Jan 2009 18:41:07 +0000</pubDate>
		<guid isPermaLink="false">http://vanklinkenbergsoftware.nl/blog/?p=3#comment-19</guid>
		<description>It appears that the GNU license permits redistribution of this compiler in binary form.  Would it be legal to distribute a Mac OS X installer for pic30-gcc and binutils?  I don&#039;t see any reason why not.

The standard library, headers, and linker scripts would have to come separately, of course.  That wouldn&#039;t be a big problem because any user that has any kind of license, whether the full professional version or the free educational version, for Microchip C30 has a copy of the standard library already.

I have been using Xcode with SCons for cross-platform embedded development for about a year.  However, I see no reason why one couldn&#039;t use Xcode directly for building PIC30 projects.  Xcode should be able to parse debugging symbols from C30 object files, for auto-complete.

I am tempted to take a stab at a set of Xcode project templates for C30.</description>
		<content:encoded><![CDATA[<p>It appears that the GNU license permits redistribution of this compiler in binary form.  Would it be legal to distribute a Mac OS X installer for pic30-gcc and binutils?  I don&#8217;t see any reason why not.</p>
<p>The standard library, headers, and linker scripts would have to come separately, of course.  That wouldn&#8217;t be a big problem because any user that has any kind of license, whether the full professional version or the free educational version, for Microchip C30 has a copy of the standard library already.</p>
<p>I have been using Xcode with SCons for cross-platform embedded development for about a year.  However, I see no reason why one couldn&#8217;t use Xcode directly for building PIC30 projects.  Xcode should be able to parse debugging symbols from C30 object files, for auto-complete.</p>
<p>I am tempted to take a stab at a set of Xcode project templates for C30.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Antoine</title>
		<link>http://vanklinkenbergsoftware.nl/blog/?p=3&#038;cpage=1#comment-17</link>
		<dc:creator>Antoine</dc:creator>
		<pubDate>Tue, 13 Jan 2009 09:23:17 +0000</pubDate>
		<guid isPermaLink="false">http://vanklinkenbergsoftware.nl/blog/?p=3#comment-17</guid>
		<description>&quot;Side side note&quot;: the RSS feed for these comments does not seem to work. It&#039;s a shame, because I would not want to miss anything :)</description>
		<content:encoded><![CDATA[<p>&#8220;Side side note&#8221;: the RSS feed for these comments does not seem to work. It&#8217;s a shame, because I would not want to miss anything <img src='http://vanklinkenbergsoftware.nl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bas</title>
		<link>http://vanklinkenbergsoftware.nl/blog/?p=3&#038;cpage=1#comment-16</link>
		<dc:creator>bas</dc:creator>
		<pubDate>Mon, 12 Jan 2009 23:44:41 +0000</pubDate>
		<guid isPermaLink="false">http://vanklinkenbergsoftware.nl/blog/?p=3#comment-16</guid>
		<description>Based on the feedback from Leo and Antoine (thanks!) I&#039;ve updated the build script in the tar ball. Click &lt;a href=&quot;/download/pic30_3.10_build_osx.tar.gz&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; to get it (same link as in the text above).

I&#039;ve added a command that touches all .y and .l files in the binutils before building, so that the lex and yacc scripts will be rebuild, and I&#039;ve added a &lt;pre&gt;--disable-nls&lt;/pre&gt; option to the configure script of binutils (appearantly not only gcc suffers from this problem, but also binutils). This avoids a failing linker binary for users with different locale settings/libraries than me.</description>
		<content:encoded><![CDATA[<p>Based on the feedback from Leo and Antoine (thanks!) I&#8217;ve updated the build script in the tar ball. Click <a href="/download/pic30_3.10_build_osx.tar.gz" rel="nofollow">here</a> to get it (same link as in the text above).</p>
<p>I&#8217;ve added a command that touches all .y and .l files in the binutils before building, so that the lex and yacc scripts will be rebuild, and I&#8217;ve added a
<pre>--disable-nls</pre>
<p> option to the configure script of binutils (appearantly not only gcc suffers from this problem, but also binutils). This avoids a failing linker binary for users with different locale settings/libraries than me.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
