<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">It could be any of the following issues
      :-<br>
      <br>
      a) When writing content overlapped ...<br>
      b) The way relocations are applied in X86_64 would be different
      from AARCH64, so could be in the place how relocations are being
      processed.<br>
      <br>
      Thanks<br>
      <br>
      Shankar Easwaran<br>
      <br>
      On 7/28/2014 3:53 PM, Daniel Stewart wrote:<br>
    </div>
    <blockquote
      cite="mid:075401cfaaa5$ffee3240$ffca96c0$@codeaurora.org"
      type="cite">
      <pre wrap="">I've been adding ELF/AArch64 support to lld based off the existing x86_64
code that is already there in lld. I've been able to compile and link a
simple "Hello World"-type program. However, I'm getting what appears to be a
misplacement/name change of the _start atom. When I do the link, the _start
section gets named __tls_get_addr. The code inside this section appears to
be correct, just the name is wrong. If I output in YAML, it appears to have
the correct name. 

 

Since I know this is new code that no one has seen, I was just wondering if
anyone might give me a hint as to why this might happen or a good place to
start looking. I'm new to the linker and only have been looking into lld for
about a week. 

 

The output in YAML for the section in question is:

 

  - name:            _start

    scope:           global

    content:         [ 1D, 00, 80, D2, 1E, 00, 80, D2, FD, 03, 00, 91, 

                       E5, 03, 00, AA, E1, 03, 40, F9, E2, 23, 00, 91, 

                       E6, 03, 00, 91, A0, 00, 00, 58, C3, 00, 00, 58, 

                       E4, 00, 00, 58, 00, 00, 00, 94, 00, 00, 00, 94 ]

    alignment:       2^3

    section-name:    .text

    references:      

      - kind:            R_AARCH64_CALL26

        offset:          40

        target:          __plt___libc_start_main

      - kind:            R_AARCH64_CALL26

        offset:          44

        target:          __plt_abort

      - kind:            in-group

        offset:          0

        target:          L030

      - kind:            layout-after

        offset:          0

        target:          '$d.010'

 

The output during objdump of that section is:

 

00000000004006d0 <__tls_get_addr>:

  4006d0:              d280001d             mov       x29, #0x0
// #0

  4006d4:              d280001e             mov       x30, #0x0
// #0

  4006d8:              910003fd              mov       x29, sp

  4006dc:               aa0003e5             mov       x5, x0

  4006e0:              f94003e1              ldr           x1, [sp]

  4006e4:              910023e2             add        x2, sp, #0x8

  4006e8:              910003e6             mov       x6, sp

  4006ec:               580000a0             ldr           x0, 400700
<__tls_get_addr+0x30>

  4006f0:               580000c3              ldr           x3, 400708
<__tls_get_addr+0x38>

  4006f4:               580000e4             ldr           x4, 400710
<__tls_get_addr+0x40>

  4006f8:               97ffffe6                bl            400690
<__libc_start_main@plt>

  4006fc:                97ffffe9                bl            4006a0
<abort@plt>

  400700:               004008a0             .inst       0x004008a0 ;
undefined

  400704:               00000000             .inst       0x00000000 ;
undefined

  400708:               00400934             .inst       0x00400934 ;
undefined

  40070c:               00000000             .inst       0x00000000 ;
undefined

  400710:               004009ac              .inst       0x004009ac ;
undefined

  400714:               00000000             .inst       0x00000000 ;
undefined

 

 

Daniel

 

--

Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by
The Linux Foundation

 


</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a class="moz-txt-link-freetext" href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a>
</pre>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation</pre>
  </body>
</html>