<div dir="ltr">+kcc<div><br></div><div>AFAIU there are recent improvements in building glibc with Clang. Kostya, what is the current status of building upstream glibc?</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 29, 2014 at 9:33 AM, Sahoo, Swarup Kumar <span dir="ltr"><<a href="mailto:ssahoo2@illinois.edu" target="_blank">ssahoo2@illinois.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div dir="ltr" style="font-size:12pt;color:#000000;background-color:#ffffff;font-family:Calibri,Arial,Helvetica,sans-serif">
<div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt">Hi Joshua,<br>
<br>
     uClibc can be compiled with clang. You can try to use it if it works for you.<br>
<br>
Thanks,<br>
Swarup.<br>
<br>
<div style="font-family:Times New Roman;color:#000000;font-size:16px">
<hr>
<div style="direction:ltr"><font color="#000000" face="Tahoma"><b>From:</b> <a href="mailto:llvmdev-bounces@cs.uiuc.edu" target="_blank">llvmdev-bounces@cs.uiuc.edu</a> [<a href="mailto:llvmdev-bounces@cs.uiuc.edu" target="_blank">llvmdev-bounces@cs.uiuc.edu</a>] on behalf of Joshua Tuttle [<a href="mailto:jtuttle@i-a-i.com" target="_blank">jtuttle@i-a-i.com</a>]<br>
<b>Sent:</b> Monday, September 29, 2014 9:28 AM<br>
<b>To:</b> <a href="mailto:llvmdev@cs.uiuc.edu" target="_blank">llvmdev@cs.uiuc.edu</a><br>
<b>Subject:</b> [LLVMdev] Compiling glibc with clang/LLVM<br>
</font><br>
</div>
<div></div>
<div><span class="">
<p>Hey all,</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p>I was wondering if clang/LLVM has support to compile glibc in its entirety? The only thing I could find of recent was this thread saying the only way it could really be done is to use the dragonegg plugin with gcc...
</p>
<p><a href="https://groups.google.com/forum/#!topic/llvm-dev/pmZYVNTrVYQ" target="_blank">https://groups.google.com/forum/#!topic/llvm-dev/pmZYVNTrVYQ</a></p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<div><span><em>            [LLVMdev] clang/llvm with glibc</em></span><em>
</em></div>
<div>
<div><em>8 posts by 5 authors</em></div>
<em></em><span>
<div>
</div>
</span><em></em><span></span><em></em></div>
</span><div><input type="text">
<div>
<div>
<div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td valign="top">
<div></div>
</td>
<td align="left" valign="top"><em></em><span><span><em>Dave Buehmann</em></span></span><em>
</em><span></span><em></em></td>
<td align="right" valign="top">
<div>
<div>
<input type="text"><span></span></div>
<span>
<div>
<input style="min-height:1px;width:1px;overflow:hidden" type="text"><span><span></span></span><span><span></span></span></div>
</span></div>
<div><em></em><span title="Wednesday, June 5, 2013 2:34:41 PM UTC-4"><em>6/5/13</em></span><em>
</em></div>
</td>
</tr>
</tbody>
</table>
</div>
</div><span class="">
<div>
<div>
<div><em></em><span><em>Other recipients: </em></span><em></em><span><em></em><span><em><a href="mailto:llv...@cs.uiuc.edu" target="_blank">llv...@cs.uiuc.edu</a></em></span><em>
</em></span><em></em></div>
</div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<div style="overflow:auto">
<div dir="ltr">
<p><em>This question has been asked occasionally with no positive responses.</em></p>
<p><em>Has anybody had success compiling glib with clang/llvm?  If so, can you share any details?</em><br>
</p>
<p><em>If not, are there any good libc replacements with more complete functionality than newlib?</em><br>
</p>
<p><em>Thanks, dave</em><br>
</p>
</div>
</div>
</div>
</div>
</div>
<div>
<div>
<div>
<div style="display:inline-block"></div>
</div>
</div>
</div>
</span></div>
</div>
</div>
</div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<div>
<div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td valign="top">
<div></div>
</td>
<td align="left" valign="top"><em></em><span><span><em>JF Bastien</em></span></span><em>
</em><span></span><em></em></td>
<td align="right" valign="top">
<div>
<div>
<input type="text"><span></span></div>
<span>
<div>
<input style="min-height:1px;width:1px;overflow:hidden" type="text"><span><span></span></span><span><span></span></span></div>
</span></div>
<div><em></em><span title="Wednesday, June 5, 2013 3:05:08 PM UTC-4"><em>6/5/13</em></span><em>
</em></div>
</td>
</tr>
</tbody>
</table>
</div>
</div><span class="">
<div>
<div>
<div><em></em><span><em>Other recipients: </em></span><em></em><span><em></em><span><em><a href="mailto:db....@gmail.com" target="_blank">db....@gmail.com</a>, <a href="mailto:mcgr...@google.com" target="_blank">mcgr...@google.com</a>, <a href="mailto:llv...@cs.uiuc.edu" target="_blank">llv...@cs.uiuc.edu</a></em></span><em>
</em></span><em></em></div>
</div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<div style="overflow:auto">
<p dir="ltr"><em>Roland says the main blocker for now is support for nested functions, he thinks the rest should be straightforward.
</em></p>
<p dir="ltr"><em>There was apparently a post to the glibc mailing list about this.
</em><br>
<em></em></p>
<div class="gmail_quote">
<div>
<div><em>- show quoted text -</em></div>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div><em>- show quoted text -</em></div>
</div>
<em>______________________________</em><u></u><em>_________________</em><br>
<em>LLVM Developers mailing list</em><br>
<em></em><a><em>LLV...@cs.uiuc.edu</em></a><em>         </em><a href="http://llvm.cs.uiuc.edu" target="_blank"><em>http://llvm.cs.uiuc.edu</em></a><br>
<em></em><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank"><em>http://lists.cs.uiuc.edu/</em><u></u><em>mailman/listinfo/llvmdev</em></a><br>
<em></em><br>
</blockquote>
</div>
</div>
</div>
</div>
</div>
<div>
<div>
<div>
<div style="display:inline-block"></div>
</div>
</div>
</div>
</span></div>
</div>
</div>
</div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<div>
<div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td valign="top">
<div></div>
</td>
<td align="left" valign="top"><em></em><span><span><em>Peter Collingbourne</em></span></span><em>
</em><span></span><em></em></td>
<td align="right" valign="top">
<div>
<div>
<input type="text"><span></span></div>
<span>
<div>
<input style="min-height:1px;width:1px;overflow:hidden" type="text"><span><span></span></span><span><span></span></span></div>
</span></div>
<div><em></em><span title="Wednesday, June 5, 2013 4:42:02 PM UTC-4"><em>6/5/13</em></span><em>
</em></div>
</td>
</tr>
</tbody>
</table>
</div>
</div><span class="">
<div>
<div>
<div><em></em><span><em>Other recipients: </em></span><em></em><span><em></em><span><em><a href="mailto:db....@gmail.com" target="_blank">db....@gmail.com</a>, <a href="mailto:llv...@cs.uiuc.edu" target="_blank">llv...@cs.uiuc.edu</a></em></span><em>
</em></span><em></em></div>
</div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<div style="overflow:auto">
<div>
<div><em>- show quoted text -</em></div>
</div>
<em>It is (almost) possible to compile glibc using DragonEgg -- there </em><br>
<em>are only a handful of patches required (for LLVM and DragonEgg), </em><br>
<em>most of which are now up for review. </em><br>
<em></em><br>
<em>It builds, and most of glibc's test suite currently passes, except </em><br>
<em>for some tests that deal with floating point arithmetic, and some </em><br>
<em>tests which use very obscure GNU as features which I haven't seen </em><br>
<em>used outside the glibc test suite. </em><br>
<em></em><br>
<em>Hopefully within a month or so everything should be upstreamed, but </em><br>
<em>if you're itching for something that works now I can try to find some </em><br>
<em>time to send some WIP patches and instructions. </em><br>
<em></em><br>
<em>Thanks, </em><br>
<em>-- </em><br>
<em>Peter </em><br>
<div>
<div><em>- show quoted text -</em></div>
</div>
</div>
</div>
</div>
</div>
<div>
<div>
<div>
<div style="display:inline-block"></div>
</div>
</div>
</div>
</span></div>
</div>
</div>
</div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<div>
<div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td valign="top">
<div></div>
</td>
<td align="left" valign="top"><em></em><span><span><em>Reid Kleckner</em></span></span><em>
</em><span></span><em></em></td>
<td align="right" valign="top">
<div>
<div>
<input type="text"><span></span></div>
<span>
<div>
<input style="min-height:1px;width:1px;overflow:hidden" type="text"><span><span></span></span><span><span></span></span></div>
</span></div>
<div><em></em><span title="Wednesday, June 5, 2013 3:19:42 PM UTC-4"><em>6/5/13</em></span><em>
</em></div>
</td>
</tr>
</tbody>
</table>
</div>
</div><span class="">
<div>
<div>
<div><em></em><span><em>Other recipients: </em></span><em></em><span><em></em><span><em><a href="mailto:j...@google.com" target="_blank">j...@google.com</a>, <a href="mailto:llv...@cs.uiuc.edu" target="_blank">llv...@cs.uiuc.edu</a>, <a href="mailto:mcgr...@google.com" target="_blank">mcgr...@google.com</a></em></span><em>
</em></span><em></em></div>
</div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<div style="overflow:auto">
<div dir="ltr"><em>Here's a clang bug I filed long ago for it that was closed wontfix:</em>
<div><a href="http://llvm.org/bugs/show_bug.cgi?id=9206" target="_blank"><em>http://llvm.org/bugs/show_bug.</em><u></u><em>cgi?id=9206</em></a></div>
</div>
<div>
<div><em>- show quoted text -</em></div>
</div>
</div>
</div>
</div>
</div>
<div>
<div>
<div>
<div style="display:inline-block"></div>
</div>
</div>
</div>
</span></div>
</div>
</div>
</div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<div>
<div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td valign="top">
<div></div>
</td>
<td align="left" valign="top"><em></em><span><span><em>Dave Buehmann</em></span></span><em>
</em><span></span><em></em></td>
<td align="right" valign="top">
<div>
<div>
<input type="text"><span></span></div>
<span>
<div>
<input style="min-height:1px;width:1px;overflow:hidden" type="text"><span><span></span></span><span><span></span></span></div>
</span></div>
<div><em></em><span title="Thursday, June 6, 2013 11:34:57 AM UTC-4"><em>6/6/13</em></span><em>
</em></div>
</td>
</tr>
</tbody>
</table>
</div>
</div><span class="">
<div>
<div>
<div><em></em><span><em>Other recipients: </em></span><em></em><span><em></em><span><em><a href="mailto:llv...@cs.uiuc.edu" target="_blank">llv...@cs.uiuc.edu</a></em></span><em>
</em></span><em></em></div>
</div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<div style="overflow:auto"><em>Thanks Peter, </em><br>
<em></em><br>
<em>I'll try that path and follow up with you for the patches when I get to that </em>
<br>
<em>point </em><br>
<em></em><br>
<em>Best, dave </em><br>
<em></em><br>
<em></em><br>
<em></em><br>
<em>-- </em><br>
<em>View this message in context: </em><a href="http://llvm.1065342.n5.nabble.com/clang-llvm-with-glibc-tp58309p58336.html" target="_blank"><em>http://llvm.1065342.n5.nabble.</em><u></u><em>com/clang-llvm-with-glibc-</em><u></u><em>tp58309p58336.html</em></a><em>
</em><br>
<em>Sent from the LLVM - Dev mailing list archive at Nabble.com. </em><br>
<div>
<div><em>- show quoted text -</em></div>
</div>
</div>
</div>
</div>
</div>
<div>
<div>
<div>
<div style="display:inline-block"></div>
</div>
</div>
</div>
</span></div>
</div>
</div>
</div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<div>
<div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td valign="top">
<div></div>
</td>
<td align="left" valign="top"><em></em><span><span><em>Rafael Espíndola</em></span></span><em>
</em><span></span><em></em></td>
<td align="right" valign="top">
<div>
<div>
<input type="text"><span></span></div>
<span>
<div>
<input style="min-height:1px;width:1px;overflow:hidden" type="text"><span><span></span></span><span><span></span></span></div>
</span></div>
<div><em></em><span title="Friday, June 7, 2013 11:48:03 AM UTC-4"><em>6/7/13</em></span><em>
</em></div>
</td>
</tr>
</tbody>
</table>
</div>
</div><span class="">
<div>
<div>
<div><em></em><span><em>Other recipients: </em></span><em></em><span><em></em><span><em><a href="mailto:pe...@pcc.me.uk" target="_blank">pe...@pcc.me.uk</a>, <a href="mailto:llv...@cs.uiuc.edu" target="_blank">llv...@cs.uiuc.edu</a></em></span><em>
</em></span><em></em></div>
</div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<div style="overflow:auto">
<div><em>> It is (almost) possible to compile glibc using DragonEgg -- there
</em><br>
<em>> are only a handful of patches required (for LLVM and DragonEgg), </em><br>
<em>> most of which are now up for review. </em><br>
<em>> </em><br>
<em>> It builds, and most of glibc's test suite currently passes, except </em><br>
<em>> for some tests that deal with floating point arithmetic, and some </em><br>
<em>> tests which use very obscure GNU as features which I haven't seen </em><br>
<em>> used outside the glibc test suite. </em><br>
<em>> </em><br>
<em>> Hopefully within a month or so everything should be upstreamed, but </em><br>
<em>> if you're itching for something that works now I can try to find some </em>
<br>
<em>> time to send some WIP patches and instructions. </em><br>
<em></em><br>
</div>
<em>This is amazing! </em><br>
<em></em><br>
<em>What are you guys doing about -fno-toplevel-reorder? </em><br>
<em></em><br>
<em>Cheers, </em><br>
<em>Rafael </em><br>
<div>
<div><em>- show quoted text -</em></div>
</div>
</div>
</div>
</div>
</div>
<div>
<div>
<div>
<div style="display:inline-block"></div>
</div>
</div>
</div>
</span></div>
</div>
</div>
</div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<div>
<div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td valign="top">
<div></div>
</td>
<td align="left" valign="top"><em></em><span><span><em>Peter Collingbourne</em></span></span><em>
</em><span></span><em></em></td>
<td align="right" valign="top">
<div>
<div>
<input type="text"><span></span></div>
<span>
<div>
<input style="min-height:1px;width:1px;overflow:hidden" type="text"><span><span></span></span><span><span></span></span></div>
</span></div>
<div><em></em><span title="Friday, June 7, 2013 1:33:39 PM UTC-4"><em>6/7/13</em></span><em>
</em></div>
</td>
</tr>
</tbody>
</table>
</div>
</div><div><div class="h5">
<div>
<div>
<div><em></em><span><em>Other recipients: </em></span><em></em><span><em></em><span><em><a href="mailto:rafael.e...@gmail.com" target="_blank">rafael.e...@gmail.com</a>, <a href="mailto:llv...@cs.uiuc.edu" target="_blank">llv...@cs.uiuc.edu</a></em></span><em>
</em></span><em></em></div>
</div>
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<div style="overflow:auto">
<div><em>On Fri, Jun 07, 2013 at 11:48:03AM -0400, Rafael Espíndola wrote:
</em><br>
<em>> > It is (almost) possible to compile glibc using DragonEgg -- there </em><br>
<em>> > are only a handful of patches required (for LLVM and DragonEgg), </em><br>
<em>> > most of which are now up for review. </em><br>
<em>> > </em><br>
<em>> > It builds, and most of glibc's test suite currently passes, except </em><br>
<em>> > for some tests that deal with floating point arithmetic, and some </em><br>
<em>> > tests which use very obscure GNU as features which I haven't seen </em><br>
<em>> > used outside the glibc test suite. </em><br>
<em>> > </em><br>
<em>> > Hopefully within a month or so everything should be upstreamed, but </em>
<br>
<em>> > if you're itching for something that works now I can try to find some </em>
<br>
<em>> > time to send some WIP patches and instructions. </em><br>
<em>> </em><br>
<em>> This is amazing! </em><br>
<em>> </em><br>
<em>> What are you guys doing about -fno-toplevel-reorder? </em><br>
<em></em><br>
</div>
<em>I haven't done anything about this flag, to be honest.  From looking </em><br>
<em>at glibc's git HEAD it seems to currently be only used by two files </em><br>
<em>-- siglist.c and errlist.c -- and maybe I'm missing something but I </em><br>
<em>can't see any reason why either of these files now need it (in the </em><br>
<em>past these files seem to have contained some assembly but now </em><br>
<em>only contain straight C declarations).  It also seems to have been used </em>
<br>
<em>in the past by initfini.c but that file is now gone from glibc git. </em><br>
<em></em><br>
<em>Thanks, </em><br>
<em>-- </em><br>
<em>Peter </em><br>
<div>
<div><em>- show quoted text -</em></div>
</div>
</div>
</div>
</div>
</div>
<div>
<div>
<div>
<div style="display:inline-block"></div>
</div>
</div>
</div>
</div></div></div>
</div>
</div>
</div>
<input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div>
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td valign="top">
<div></div>
</td>
<td align="left" valign="top"><em></em><span><span><em>Rafael Espíndola</em></span></span><em>
</em><span></span><em></em></td>
<td align="right" valign="top">
<div>
<div>
<input type="text"><span></span></div>
<span>
<div>
<input style="min-height:1px;width:1px;overflow:hidden" type="text"><span><span></span></span><span><span></span></span></div>
</span></div>
<div><em></em><span title="Friday, June 7, 2013 1:49:12 PM UTC-4"><em>6/7/13</em></span><em>
</em></div>
</td>
</tr>
</tbody>
</table>
</div>
</div><div><div class="h5">
<div>
<div><em></em><span><em>Other recipients: </em></span><em></em><span><em></em><span><em><a href="mailto:pe...@pcc.me.uk" target="_blank">pe...@pcc.me.uk</a>, <a href="mailto:llv...@cs.uiuc.edu" target="_blank">llv...@cs.uiuc.edu</a></em></span><em>
</em></span><em></em></div>
</div>
<em></em><input style="min-height:1px;width:1px;overflow:hidden" type="text">
<div><em>>> What are you guys doing about -fno-toplevel-reorder?
</em><br>
<em>> </em><br>
<em>> I haven't done anything about this flag, to be honest.  From looking </em><br>
<em>> at glibc's git HEAD it seems to currently be only used by two files </em><br>
<em>> -- siglist.c and errlist.c -- and maybe I'm missing something but I </em><br>
<em>> can't see any reason why either of these files now need it (in the </em><br>
<em>> past these files seem to have contained some assembly but now </em><br>
<em>> only contain straight C declarations).  It also seems to have been used </em>
<br>
<em>> in the past by initfini.c but that file is now gone from glibc git. </em><br>
<em></em><br>
</div>
<em>I went looking in glibc's git and found </em><br>
<em>3add8e1353d62d77fdd9b4ca363cdf</em>
<div style="overflow:auto"><u></u><em>e7006b0efb adding support for crti and </em><br>
<em>crtn written is assembly, which eventually replaced the old initfini.c </em><br>
<em>hack. </em><br>
<em></em><br>
<em>Congratulations to all those involved, this a much better state than I </em><br>
<em>would have dreamed possible some years ago. </em><br>
<em></em><br>
<em>Cheers, </em><br>
<em>Rafael </em><br>
<div>
<div><em>- show quoted text -</em></div>
</div>
</div>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p>Is there any way to compile glibc only using clang as I have to be able to pass clang specific parameters for a pass to run on each file. </p>
<p><br>
</p>
<p><br>
</p>
<p>Thanks,</p>
<p>Josh<br>
</p>
<div style="font-size:8pt"><br>
<br>
<br>
<hr>
This message and all attachments are PRIVATE, and contain information that is PROPRIETARY to Intelligent Automation, Inc. You are not authorized to transmit or otherwise disclose this message or any attachments to any third party whatsoever without the express
 written consent of Intelligent Automation, Inc. If you received this message in error or you are not willing to view this message or any attachments on a confidential basis, please immediately delete this email and any attachments and notify Intelligent Automation,
 Inc. </div>
</div></div></div>
</div>
</div>
</div>

<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Alexey Samsonov<br><a href="mailto:vonosmas@gmail.com" target="_blank">vonosmas@gmail.com</a></div>
</div>