<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Book Antiqua";
        panose-1:2 4 6 2 5 3 5 3 3 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Book Antiqua",serif;
        color:#943634;
        font-weight:normal;
        font-style:normal;
        text-decoration:none none;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-IE link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span style='font-family:"Book Antiqua",serif;color:#943634;mso-fareast-language:EN-US'>Thanks very much for working on Dragonegg.  I don’t have an answer for your specific problem, but there has been discussion on the topic of the LLVM licensing agreement that seems to be considering dropping Dragonegg, I’m not sure if you are aware of this?<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Book Antiqua",serif;color:#943634;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Book Antiqua",serif;color:#943634;mso-fareast-language:EN-US'>Dragonegg is the only method currently available to LLVM for incorporating FORTRAN numeric libraries into the set of targets that LLVM has code generators for, and while there are licensing issues to be careful of, the ability to import high quality mature FORTRAN libraries is very valuable to the LLVM community.  I think that the LLVM community needs to be aware of the utility of this particular project.  A huge amount of high quality, mature and robust HPC and numerical computing is currently only available through FORTRAN despite attempts to create C versions of BLAS, LAPACK, FFT3 and others.  But C suffers from aliasing issues that are hard to resolve, and the existing FORTRAN implementations of many libraries is only accessible to LLVM via the Dragonegg project.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Book Antiqua",serif;color:#943634;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Book Antiqua",serif;color:#943634;mso-fareast-language:EN-US'>Thanks again Arun & Tarun,<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Book Antiqua",serif;color:#943634;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Book Antiqua",serif;color:#943634;mso-fareast-language:EN-US'>            MartinO<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Book Antiqua",serif;color:#943634;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><b><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri",sans-serif'> llvm-dev [mailto:llvm-dev-bounces@lists.llvm.org] <b>On Behalf Of </b>Arun Prabhu via llvm-dev<br><b>Sent:</b> 28 October 2015 12:43<br><b>To:</b> llvm-dev@lists.llvm.org<br><b>Cc:</b> Tarun Prabhu <tarunprabhu@gmail.com><br><b>Subject:</b> [llvm-dev] DragonEgg for gcc-5 and llvm-3.6<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Hi,<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>My brother (Tarun) and I have been attempting to get dragonegg working with gcc-5 and llvm-3.6. So far we have had some success and most of the compilator and validator tests of dragonegg pass. However the following validator tests fail and we don't understand why.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>    The Validator :: c++/2007-01-06-ELF-Thunk-Sections.cpp<br>    The Validator :: c/ExternFunctionWeakref.c<br>    The Validator :: c/ExternVariableWeakref.c<br>    The Validator :: c/InternFunctionWeakref.c<br>    The Validator :: c/InternVariableWeakref.c<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Since the last four are extremely similar, I give the example of ExternVariableWeakref.c below:<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The test file looks like:<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>// RUN: %dragonegg -S %s -o - | FileCheck %s<br>static int variable_weakref __attribute__ ((weakref("bar")));<br>int *use_variable = &variable_weakref;<br>// CHECK: @use_variable = unnamed_addr global i32* @bar<br>// CHECK: @bar = extern_weak global i32<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>And the output we get (which ideally should match the CHECK sections above) is:<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>@use_variable = unnamed_addr global i32* @variable_weakref<br>@variable_weakref = internal global i32 0<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Note that for some reason, it is not creating a weak symbol.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>We'd appreciate any suggestions on how these might be fixed or where to look to figure out what's going on.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Thanks and Regards,<o:p></o:p></p></div><div><p class=MsoNormal>Arun Prabhu<o:p></o:p></p></div></div></div></body></html>