<div dir="ltr">Hi,all,<br>I find clang's integrated-as changes fast, My code which can't be compiled by llvm3.1 tool-chain can be compiled by llvm3.2 tool-chain now. However, there are still existing link-errors.<br>
<br>My develop environment is: <br>Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)<br>Target: x86_64-apple-darwin12.2.1<br>Thread model: posix<br><br>the code is attached, I get this error (there is no such error under gcc tool-chain):<br>
<br>Undefined symbols for architecture armv7:<br>  "_add_gas", referenced from:<br>      _main in main_ios_clang.o<br>ld: symbol(s) not found for architecture armv7<br>clang: error: linker command failed with exit code 1 (use -v to see invocation)<br>
<br>I find after add '_' to add_gas label in iosasm_clang.s(change all add_gas to _add_gas) will get rid of this error, but this will raise error(can't find symbol 'add_gas' when linking) in gcc tool chain. I don't know whether it's llvm's feature or not. Thanks for any help!<br>
<br><br>=============file: main.c===========================================<br><br><br>#include <stdio.h><br><br>extern void add_gas(int* dst,<br>                    int* src1,<br>                    int* src2);<br>
<br>int main(int argc, char **argv)<br>{<br>  int a = 10;<br>  int b = 10;<br>  int c = 0;<br>  add_gas(&c, &a, &b);<br>  printf("\nafter call add_gas, c=%d\<br>        (should be 20)\n", c);<br>  <br>
  return 0;<br>}<br><br>=============file: iosasm_clang.s=====================================<br><br><br>        /* this code follows ios' as syntax <br>         * comment test<br>         */<br><br>        .text<br>
        .globl  add_gas<br>        .align  4<br><br>add_gas:<br>        /* add src1 and src2, result is return to dst<br>         * r0: *dst<br>         * r1: *src1<br>         * r2: *src2<br>         */<br>        push    {r4, r5}<br>
        ldr     r3, [r1]<br>        ldr     r4, [r2]<br>        add     r5, r3, r4<br>        str     r5, [r0]<br>        pop     {r4, r5}<br>        bx      lr<br>===========end=============================================<br>
<br>Best regards,<br>ashi<br><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Feb 14, 2013 at 10:11 PM, ashi <span dir="ltr"><<a href="mailto:ashi08104@gmail.com" target="_blank">ashi08104@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Thanks, Renato.<div>I'm actually porting a project which is based on GAS to iOS platform. I'll report my result.</div>
<div><br></div><div>Best regards!</div><div><span class="HOEnZb"><font color="#888888">ashi</font></span><div><div class="h5"><br><div><div><div>On Feb 13, 2013, at 6:20 PM, Renato Golin <<a href="mailto:renato.golin@linaro.org" target="_blank">renato.golin@linaro.org</a>> wrote:</div>
<br><blockquote type="cite"><div dir="ltr">I don't think there is such a document...<div><br></div><div>There isn't a 1:1 compatibility assurance with any syntax, including the UAL and GAS, but there is good compatibility with most of them, focusing more on GAS than any other, though recent changes are making it more in sync with the UAL (as is happening on GAS, too).<br>

</div><div><br></div><div>I think the recommendation is to try it on, throw code that works on other (OSS) ARM assemblers and report any mismatch. We really need some more real world testing, as we're considering turning the integrated assembler by default on ARM, so your input is greatly appreciated.</div>

<div><br></div><div>cheers,</div><div>--renato</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 13 February 2013 01:09, ashi <span dir="ltr"><<a href="mailto:ashi08104@gmail.com" target="_blank">ashi08104@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,all. Since the recent clang(3.2) has an integrated assembler for ARM, but I can't find document about this assembler's syntax, such assembler's directive, pseudo-instruction, (I assumed it follows the ARM Unified Assembly Language in instructions), where can I get such information?<br>


<br>
Thanks!<br>
<span><font color="#888888">ashi<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">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>
</font></span></blockquote></div><br></div>
</blockquote></div><br></div></div></div></div></div></blockquote></div><br></div>