[PATCH] D49640: [ARM64][Windows] Create COMDAT symbols for sections containing constants

Sanjin Sijaric via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Jul 21 19:09:11 PDT 2018


ssijaric created this revision.
ssijaric added reviewers: mstorsjo, rnk.
Herald added a reviewer: javed.absar.
Herald added subscribers: chrib, kristof.beyls.

As of SVN r334523, eligible constants are put in COMDAT sections in COFF on ARM64 Windows.  We need to create an appropriate COMDAT symbol, just as on X86.  Otherwise, the MS linker complains with something like

fatal error LNK1143: invalid or corrupt file: no symbol for COMDAT section 0x4

and the dumpbin output shows that there is no COMDAT symbol in the section

SECTION HEADER #4

  .rdata name
       0 physical address
       0 virtual address
       8 size of raw data
    6EA0 file pointer to raw data (00006EA0 to 00006EA7)
       0 file pointer to relocation table
       0 file pointer to line numbers
       0 number of relocations
       0 number of line numbers

40401040 flags

  Initialized Data
  COMDAT (no symbol)
  8 byte align
  Read Only

RAW DATA #4

  00000000: .......


Repository:
  rL LLVM

https://reviews.llvm.org/D49640

Files:
  lib/Target/AArch64/AArch64AsmPrinter.cpp
  test/CodeGen/AArch64/win_cst_pool.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D49640.156696.patch
Type: text/x-patch
Size: 5352 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180722/eb1d8cf0/attachment.bin>


More information about the llvm-commits mailing list