[PATCH] D65903: [LLD] [COFF] Allow using custom .edata from input object files

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 7 13:50:03 PDT 2019


mstorsjo created this revision.
mstorsjo added reviewers: ruiu, rnk.
Herald added subscribers: dexonsmith, mehdi_amini.
Herald added a project: LLVM.

This is used by Wine for manually crafting export tables.

If the input object contains .edata sections, GNU ld references them in the export directory instead of synthesizing an export table using either export directives or the normal auto export mechanism. (AFAIK, historically, way way back, GNU ld didn't support synthesizing the export table - one was supposed to generate it using dlltool and link it in instead.)

If faced with --out-implib and --output-def, GNU ld still populates those output files with the same export info as it would have generated otherwise, disregarding the input .edata. As this isn't an intended usage combination, I'm not adding checks for that in tests.


Repository:
  rLLD LLVM Linker

https://reviews.llvm.org/D65903

Files:
  COFF/Writer.cpp
  test/COFF/edata.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65903.213984.patch
Type: text/x-patch
Size: 3289 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190807/0bb227de/attachment.bin>


More information about the llvm-commits mailing list