[all-commits] [llvm/llvm-project] 93509b: [ORC-RT][ORC][MachO] Fix some issues with executor...

lhames via All-commits all-commits at lists.llvm.org
Thu Dec 7 14:39:08 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 93509b4462a74c3f96eb576f1bbaaa26328e63b2
      https://github.com/llvm/llvm-project/commit/93509b4462a74c3f96eb576f1bbaaa26328e63b2
  Author: Lang Hames <lhames at gmail.com>
  Date:   2023-12-07 (Thu, 07 Dec 2023)

  Changed paths:
    M compiler-rt/lib/orc/macho_platform.cpp
    A compiler-rt/test/orc/TestCases/Darwin/arm64/Inputs/ret_self.S
    A compiler-rt/test/orc/TestCases/Darwin/arm64/trivial-dlsym.c
    A compiler-rt/test/orc/TestCases/Darwin/x86-64/Inputs/ret_self.S
    A compiler-rt/test/orc/TestCases/Darwin/x86-64/trivial-dlsym.c
    M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
    M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp

  Log Message:
  -----------
  [ORC-RT][ORC][MachO] Fix some issues with executor-side symbol tables.

1. Prevent deadlock by unlocking JDStatesMutex when calling back to the
   controller to request a push of new symbols. (If JDStatesMutex is locked
   then the push operation can't register the new symbols, and so can't
   complete).

2. Record MachOPlatform runtime symbols during bootstrap and attach their
   registration to the bootstrap-completion graph, similar to the way that
   deferred allocation actions are handled. We can't register the symbols
   the normal way during bootstrap since the symbol registration function is
   itself in the process of being materialized.

3. Add dlsym testcases to exercise these fixes.




More information about the All-commits mailing list