[Lldb-commits] [PATCH] D131741: [lldb] XFAIL target variable tests on Intel/Darwin when using Xcode 14

Jason Molenda via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Aug 11 17:53:43 PDT 2022


jasonmolenda added a comment.

I don't know if I support bothering with checking ld's version, I think these tests should be skipped on Darwin.

Before macOS 12, if you built these tests arm64e, the address for something like `my_global_str` in lldb/test/API/commands/target/basic/globals.c would be the file address and an extra high bit set, a flag to dyld at runtime.  As of macOS 12 and newer, on arm64 and arm64e, chained fixups are being used and now my_global_str as a file offset (not a file address) and a high bit to indicate the linker needs to fix it.

On Intel, if you use Xcode 13's ld64 and have a deployment target of macOS 13 (macOS Ventura, the one in beta right now), you'll also get chained fixups.  Old linker, newer deployment target, and the tests can fail.  Using the Xcode 13 ld64 on a macOS 13 system would probably get you chained fixups by default.

We already skip these tests for arm64 & arm64e because of the chained fixups and arm64e fixups before that -- and now we're going to skip them on x86_64 if the deployment target is new enough (that's the right way to do it, not the linker version) -- I say we skip them on Darwin outright.  Pre-execution, we can't reliably view global variables, unless we talk with the ld64/dyld folks and see if we can reliably get the file offset out of these fields and work out the file address ourselves.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D131741/new/

https://reviews.llvm.org/D131741



More information about the lldb-commits mailing list