<meta http-equiv="content-type" content="text/html; charset=utf-8"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">Hi,<div><br></div><div>[Forgot to reply-all]</div>
<div><br></div><div>Looking at Tools.cpp:AddSPARCTargetArgs(), it looks like the softfloat behaviour has been copy-pasted from another architecture's TargetArgs (notice the switch only has a default case?).</div><div>
<br></div><div>I don't know anything about SPARC so would not be able to say what the default behaviour should be - perhaps someone else could weigh in on that point?</div><div><br></div><div>Cheers,</div><div><br></div>
<div>James</div></span><br><div class="gmail_quote">On 25 May 2011 16:28, Witold Sowa <span dir="ltr"><<a href="mailto:witold.sowa@gmail.com">witold.sowa@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi James,<br><br>Your fix is working for me. Thanks a lot. The new issue is that now clang displays following message:<br>$ ./clang++ ~/q.cpp -o ~/q<br>clang-2: warning: unknown platform, assuming -mfloat-abi=soft<br>'+soft-float' is not a recognized feature for this target (ignoring feature)<br>

<br>I would assume that if soft-float is not recognized for this target (ie. sparc) a hardware floating point operations should be used in first place and we shouldn't even try to use soft-float. Do you know what is the status of sparc target support? Does it support floating point operations or not?<br>

<br>Cheers!<br>Witek<div><div></div><div class="h5"><br><br><br><div class="gmail_quote">2011/5/25 James Molloy <span dir="ltr"><<a href="mailto:james@jamesmolloy.co.uk" target="_blank">james@jamesmolloy.co.uk</a>></span><br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">
<div>Hi Witold,</div><div><br></div><div>This appears to be a bug in Clang. The offending code is in lib/Driver/Tools.cpp:</div><div><br></div><blockquote style="margin:0pt 0pt 0pt 40px;border:medium none;padding:0px">

<div>  if (FloatABI == "soft") {</div><div>    // Floating point operations and argument passing are soft.</div><div>    //</div><div>    // FIXME: This changes CPP defines, we need -target-soft-float.</div><div>


    CmdArgs.push_back("-msoft-float");</div><div>    CmdArgs.push_back("soft");</div><div>    CmdArgs.push_back("-target-feature");</div><div>    CmdArgs.push_back("+soft-float");</div>


<div>  } else {</div></blockquote><div><br></div><div>but –msoft-float is defined in CC1Options.td  as:</div><div><br></div><blockquote style="margin:0pt 0pt 0pt 40px;border:medium none;padding:0px">
<div>def msoft_float : Flag<"-msoft-float">,</div><div>  HelpText<"Use software floating point">;</div></blockquote><div><br></div><div>i.e. it doesn’t take an argument. So Clang (as cc1) is interpreting the extra ‘soft’ argument as an input file.</div>


<div><br></div><div>Fix is to remove the line “CmdArgs.push_back("soft");” as far as I can tell?</div><div><br></div><div>Cheers,</div><div><br></div><font color="#888888"><div>James</div><div><br></div>
</font></blockquote></div><br>
</div></div></blockquote></div><br>