<HTML>
<HEAD>
<TITLE>Patch for io-layer/collection.c</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Android&#8217;s build uses the GNU C compiler, but is failing while compiling &#8220;gpointer collection_thread (gpointer unused G_GNUC_UNUSED)&#8221; because it exits via a pthread_exit, and not via the return statement:<BR>
<BR>
static gpointer collection_thread (gpointer unused G_GNUC_UNUSED)<BR>
{<BR>
&nbsp;&nbsp;&nbsp;&nbsp;struct timespec sleepytime;<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;sleepytime.tv_sec = _WAPI_HANDLE_COLLECTION_UPDATE_INTERVAL;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;sleepytime.tv_nsec = 0;<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;while (_wapi_has_shut_down == FALSE) {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nanosleep (&amp;sleepytime, NULL);<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//_wapi_handle_dump ();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_wapi_handle_update_refs ();<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* This is an abuse of the collection thread, but it's<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* better than creating a new thread just for one more<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* function.<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_wapi_process_reap ();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;}<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;pthread_exit (NULL);<BR>
<BR>
#if !defined(__GNUC__)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;/* Even though we tell gcc that this function doesn't return,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* other compilers won't see that.<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<BR>
&nbsp;&nbsp;&nbsp;&nbsp;return(NULL);<BR>
#endif<BR>
}<BR>
<BR>
I&#8217;ve attached a patch that fixes the Android build by adding another condition to the #if.<BR>
<BR>
Koush </SPAN></FONT>
</BODY>
</HTML>