[all-commits] [llvm/llvm-project] 4bba12: [lli] Make sure the exported __chkstk functions ar...

Martin Storsjö via All-commits all-commits at lists.llvm.org
Thu Sep 7 13:33:36 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4bba12f7226228221d1fa4bad7732e25647ecb87
      https://github.com/llvm/llvm-project/commit/4bba12f7226228221d1fa4bad7732e25647ecb87
  Author: Martin Storsjö <martin at martin.st>
  Date:   2023-09-07 (Thu, 07 Sep 2023)

  Changed paths:
    M llvm/tools/lli/lli.cpp

  Log Message:
  -----------
  [lli] Make sure the exported __chkstk functions are included when exporting them

The trick we use (since cbc2a0623a39461b56bd9eeb308ca535f03793f8)
for exporting the __chkstk function (with various per-arch names)
that is defined in a different object file, relies on the function
already being linked in (by some function referencing it).

This function does end up referenced if there's a function that
allocates more than 4 KB on the stack. In most cases, it's referenced
somewhere, but in the case of builds with LLVM_LINK_LLVM_DYLIB
enabled (so most of the code resides in a separate libLLVM-<ver>.dll)
the only code in lli.exe is the lli tool specific code and the
mingw-w64 crt startup code. In the case of GCC based MinGW i386
builds with LLVM_LINK_LLVM_DYLIB, nothing else references it though.

Manually add a reference to the function to make sure it is linked
in (from libgcc or compiler-rt builtins) so that it can be exported.

This fixes one build issue encountered in
https://github.com/msys2/MINGW-packages/pull/18002.

Differential Revision: https://reviews.llvm.org/D159085




More information about the All-commits mailing list