[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/24302] New: When DF_BIND_NOW the dt_tlsdesc_got should not be us

From: wangtao42 at huawei dot com
Subject: [Bug ld/24302] New: When DF_BIND_NOW the dt_tlsdesc_got should not be used
Date: Tue, 05 Mar 2019 03:50:52 +0000


            Bug ID: 24302
           Summary: When DF_BIND_NOW the dt_tlsdesc_got should not be used
           Product: binutils
           Version: 2.31
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: wangtao42 at huawei dot com
  Target Milestone: ---

Hi All,
  I produced a problem, and after debugging it seems that in
elfNN_aarch64_finish_dynamic_sections the value of htab->dt_tlsdesc_got should
be checked. If the htab->dt_tlsdesc_got is -1, then htab->root.sgot->contents
should not add it, otherwise this code will overwrite the contents of the
previous byte. The maybe-error code is as follows:
      if (htab->tlsdesc_plt)
          bfd_put_NN (output_bfd, (bfd_vma) 0,
                      htab->root.sgot->contents + htab->dt_tlsdesc_got);

          memcpy (htab->root.splt->contents + htab->tlsdesc_plt,
                  sizeof (elfNN_aarch64_tlsdesc_small_plt_entry));

  This is aarch64 backend, and the only assignment of dt_tlsdesc_got is limited
by DF_BIND_NOW. when linking with "-z now", this code won't be executed
      /* If we're not using lazy TLS relocations, don't generate the
         GOT entry required.  */
      if (!(info->flags & DF_BIND_NOW))
          htab->dt_tlsdesc_got = htab->root.sgot->size;
          htab->root.sgot->size += GOT_ENTRY_SIZE;
So anyone can explain this? Is htab->dt_tlsdesc_got needed to check validaty
before using in elfNN_aarch64_finish_dynamic_sections?

Because it needs many object file to reproduce this problem, I can't upload a
testcase. I'll be very grateful if someone can explain the code.


You are receiving this mail because:
You are on the CC list for the bug.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]