[all-commits] [llvm/llvm-project] 05a0d9: [orc][mach-o] Fix mixing objc and swift code in a ...

Ben Langmuir via All-commits all-commits at lists.llvm.org
Fri Nov 3 08:32:23 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 05a0d9441630ff417d6e4185b526478967d1fe15
      https://github.com/llvm/llvm-project/commit/05a0d9441630ff417d6e4185b526478967d1fe15
  Author: Ben Langmuir <blangmuir at apple.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    A compiler-rt/test/orc/TestCases/Darwin/arm64/objc-imageinfo.S
    A compiler-rt/test/orc/TestCases/Darwin/x86-64/objc-imageinfo.S
    M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
    M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp

  Log Message:
  -----------
  [orc][mach-o] Fix mixing objc and swift code in a single JITDylib (#69258)

The system linker merges __objc_imageinfo flags values to select a
compatible set of flags using the minimum swift version and only
erroring on incompatible ABIs. Match that behaviour in the orc macho
platform. One wrinkle is that the JIT can add new objects after the
dylib is running code. In that case we only check for known incompatible
flags and ignore the swift version. It's too late to change the flags at
that point and swift version is unlikely to change runtime behaviour in
practice.




More information about the All-commits mailing list