[PATCH] D29892: ar: add llvm-dlltool support

Martell Malone via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 3 07:34:22 PDT 2017


martell added inline comments.


================
Comment at: include/llvm/Object/COFFModuleDefinition.h:45
+parseCOFFModuleDefinition(MemoryBufferRef MB, COFF::MachineTypes Machine,
+                          bool MingwDef = false);
 
----------------
ruiu wrote:
> martell wrote:
> > ruiu wrote:
> > > I don't like to add a magical boolean flag to slightly change the existing behavior. Why do you need this? This should be removed unless absolutely necessary.
> > dlltool's defs are a little different then lib.exe's
> > specifically mangling, see isDecorated.
> > and the support for '==' for weak aliasing,
> > although support for the latter won't hurt lib.exe
> Why are they different?
mingw and wine def files does not mangle `_` which is important for x86.
It also does some weird things in the mingw crt like prepending `_` to all x86 crt functions so that they end up the same as x64 at link time.
I would like to not do this but this is a legacy problem with binutils dlltool.
I would have to update binutils to stop doing this before I could get mingw-w64 to change creating an abi breakage.
Some time in the future we could have this behind some flag like `--legacy-mode` and encourage mingw-w64 and wine to recreate all their `.def` files.


Repository:
  rL LLVM

https://reviews.llvm.org/D29892





More information about the llvm-commits mailing list