[all-commits] [llvm/llvm-project] 77e199: [llvm-readobj][Object][COFF] Print COFF import lib...

Daniel Paoliello via All-commits all-commits at lists.llvm.org
Sat Mar 16 15:57:13 PDT 2024


  Branch: refs/heads/release/18.x
  Home:   https://github.com/llvm/llvm-project
  Commit: 77e1992e89d3734f20c97ad47b4675219f5b9163
      https://github.com/llvm/llvm-project/commit/77e1992e89d3734f20c97ad47b4675219f5b9163
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M lld/test/COFF/def-export-cpp.s
    M lld/test/COFF/def-export-stdcall.s
    M lld/test/COFF/dllexport.s
    M llvm/include/llvm/Object/COFFImportFile.h
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/test/tools/llvm-dlltool/coff-decorated.def
    M llvm/test/tools/llvm-dlltool/coff-exports.def
    M llvm/test/tools/llvm-dlltool/coff-noname.def
    M llvm/test/tools/llvm-dlltool/no-leading-underscore.def
    M llvm/test/tools/llvm-lib/arm64ec-implib.test
    M llvm/test/tools/llvm-readobj/COFF/file-headers.test
    M llvm/tools/llvm-readobj/COFFImportDumper.cpp

  Log Message:
  -----------
  [llvm-readobj][Object][COFF] Print COFF import library symbol export name. (#78769)

getExportName implementation is based on lld-link. In its current form,
it's mostly about convenience, but it will be more useful for EXPORTAS
support, for which export name is not possible to deduce from other
printed properties.


  Commit: 76e1800f356513c491ac3bcebdf952842e7b5a3f
      https://github.com/llvm/llvm-project/commit/76e1800f356513c491ac3bcebdf952842e7b5a3f
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/COFF.h
    M llvm/include/llvm/Object/COFFImportFile.h
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/lib/Object/COFFModuleDefinition.cpp
    A llvm/test/tools/llvm-lib/exportas.test
    M llvm/tools/llvm-readobj/COFFImportDumper.cpp

  Log Message:
  -----------
  [llvm-lib][llvm-dlltool][Object] Add support for EXPORTAS name types. (#78772)

EXPORTAS is a new name type in import libraries. It's used by default on ARM64EC,
but it's allowed on other platforms as well.


  Commit: 79bc8b32c6ed4fc6e002d6426c04d4de874b07cc
      https://github.com/llvm/llvm-project/commit/79bc8b32c6ed4fc6e002d6426c04d4de874b07cc
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Object/COFF.h
    M llvm/include/llvm/Object/COFFImportFile.h
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/lib/Target/AArch64/AArch64Arm64ECCallLowering.cpp
    M llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
    M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
    M llvm/test/tools/llvm-lib/arm64ec-implib.test

  Log Message:
  -----------
  [llvm-lib][Object] Add support for EC importlib symbols. (#81059)

ARM64EC import libraries expose two additional symbols: mangled thunk
symbol (like `#func`) and auxiliary import symbol (like`__imp_aux_func`).
The main functional change with this patch is that those symbols are
properly added to static library ECSYMBOLS.


  Commit: 207ecd684cc6731266e12d8d2df0e3d1d9e1ff8d
      https://github.com/llvm/llvm-project/commit/207ecd684cc6731266e12d8d2df0e3d1d9e1ff8d
  Author: Daniel Paoliello <danpao at microsoft.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Object/COFFImportFile.h
    M llvm/lib/Object/ArchiveWriter.cpp
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/test/tools/llvm-lib/arm64ec-implib.test

  Log Message:
  -----------
  [Arm64EC] Copy import descriptors to the EC Map (#84834)

As noted in <https://github.com/llvm/llvm-project/pull/78537>, MSVC
places import descriptors in both the EC and regular map - that PR moved
the descriptors to ONLY the regular map, however this causes linking
errors when linking as Arm64EC:

```
bcryptprimitives.lib(bcryptprimitives.dll) : error LNK2001: unresolved external symbol __IMPORT_DESCRIPTOR_bcryptprimitives (EC Symbol)
```

This change copies import descriptors from the regular map to the EC
map, which fixes this linking error.


  Commit: 2f640ad26d176a70c5e7a77c92a899e525e366d9
      https://github.com/llvm/llvm-project/commit/2f640ad26d176a70c5e7a77c92a899e525e366d9
  Author: Daniel Paoliello <danpao at microsoft.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Object/COFFImportFile.h
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/lib/Object/COFFModuleDefinition.cpp
    M llvm/test/tools/llvm-lib/arm64ec-implib.test
    R llvm/test/tools/llvm-lib/exportas.test

  Log Message:
  -----------
  Remove support for EXPORTAS in def files to maintain ABI compatibility for COFFShortExport


Compare: https://github.com/llvm/llvm-project/compare/3a06861272d8...2f640ad26d17

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list