<div dir="ltr">Hi,<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Sep 7, 2013 at 2:08 AM, Weiming Zhao <span dir="ltr"><<a href="mailto:weimingz@codeaurora.org" target="_blank">weimingz@codeaurora.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Hi Eli,<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I didn’t find much info about atomics for targets. I find two attributes are relevant: MaxAtomicPromoteWidth and  MaxAtomicInlineWidth, but they cannot be used to compute the macros.<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Besides, even for the same target, the macros are dependent on CPU types. For example, for X86 target:<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">  if (CPU >= CK_i486) {<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">    Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1");<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">    Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");<u></u><u></u></span></p><p class="MsoNormal">

<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">    Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">  }<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">  if (CPU >= CK_i586)<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">    Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">}<u></u><u></u></span></p><p class="MsoNormal"><br></p></div></div></blockquote><div>How about adding these macros for only ARMv7 and up? Without this patch std::thread just fails on ARM so it would be rather nice to have this fixed in clang 3.4 release. </div>

<div><br></div><div>Regards.</div><div><br></div></div></div></div>