<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="http://blogs.forum.nokia.com/styles/rss.css" type="text/css"?>
<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns="http://my.netscape.com/rdf/simple/0.9/"
>

 <channel>
  <title>Harry Li&#039;s Forum Nokia Blog</title>
  <link>http://blogs.forum.nokia.com/blog/harry-lis-forum-nokia-blog</link>
  <description>A Forum Nokia Blog</description>
 </channel>
    <item>
   <title>Limitation on Open C which matters HUGE project like Mozilla</title>
   <description>&lt;p&gt;Open C is a quite powerful tool when porting open source projects to Symbian OS platform. But a mobile kitty is not a desktop monster, it doesn&#039;t have a so powerful kernel, especially you encountered some design limitations. For small projects which don&#039;t utilize lower or system level functions, you will wield Open C without any pain. However, projects as large as Mozilla will meet the limitations and avoid using incomplete or absent functions. So marking those limitations with good documentation and practical experiences is very important. Here I will try to tell you some of my experiences.&lt;/p&gt;&lt;p&gt;First of all, you need to read Open C documents carefully, Nokia and Symbian try to explain every limitation they know as clear as possible. So you don&#039;t need go discussion board and ask questions before check the documents. *BUT ACTUALLY*, the problem is not all about checking Open C documents, there are possibilities the problem is not caused by Open C but your code. In this case, the situation is not easy. You need practical experiences from others, by talking with colleagues or searching discussion board.&lt;/p&gt;&lt;p&gt;Here comes the body. The most incomplete group is libc Signal Handling, but what&#039;s lucky is we can find absence of these functions, you don&#039;t need to determine where the problem comes from, your code or Open C. The second hard one to over come is using posix_spawn() instead of fork() and exec(). Here I would give you a suggestion, read the complete&amp;nbsp;&lt;a href=&quot;http://www.scit.wlv.ac.uk/cgi-bin/mansec?2+fork&quot; target=&quot;_blank&quot;&gt;fork() manual&lt;/a&gt;&amp;nbsp;and compare the difference between&amp;nbsp;&lt;a href=&quot;http://www.opengroup.org/onlinepubs/009695399/functions/posix_spawn.html&quot; target=&quot;_blank&quot;&gt;posix_spawn()&lt;/a&gt;. Then check the context of your code, see if these differences applied. This technique is not so easy, even there are further hidden side effect, for example &amp;quot;In the child process created with popen3/popen/system/posix_spawn, operations on the inherited file may cause a panic.&amp;quot; in&amp;nbsp;&lt;a href=&quot;http://developer.symbian.com/wiki/download/attachments/1411/pips_readme_1_3.pdf?version=1&quot; target=&quot;_blank&quot;&gt;P.I.P.S. V1.3 Release Notes&lt;/a&gt;. Bear in mind those side effects from practice, then the job would be less tough. &lt;/p&gt;&lt;p&gt;With two big stop showers ahead, I think the most important is not getting those limitations one by one, but a skill to find if the bug comes from _my_ code or Open C. Once the debug tricks are at hand, there won&#039;t be anything &amp;quot;won&#039;t fix&amp;quot;&amp;nbsp;&lt;img src=&quot;http://blogs.forum.nokia.com/js/tinymce/plugins/emotions/images/smiley-wink.gif&quot; border=&quot;0&quot; alt=&quot;Wink&quot; title=&quot;Wink&quot; /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
   <link>http://blogs.forum.nokia.com/blog/harry-lis-forum-nokia-blog/2008/06/03/limitation-on-open-c-which-matters-huge-project-like-mozilla</link>
      <pubDate>Tue, 03 Jun 2008 16:53:38 +0800</pubDate>   
  </item>
  </rdf:RDF>

