[Tarantool-patches] [PATCH luajit 2/3] macOS: Workaround for buggy XCode 15.0 - 15.2 linker.
Sergey Bronnikov
sergeyb at tarantool.org
Wed Nov 26 15:09:09 MSK 2025
Hi, Sergey,
thanks for the patch! LGTM with a minor comment.
Sergey
On 11/24/25 23:26, Sergey Kaplun wrote:
> From: Mike Pall <mike>
>
> Thanks to Carlo Cabrera.
>
> (cherry picked from commit b2915e9ab55b999429b4d1931097064c4e17de53)
>
> The previous commit removes emitting the `.subsections_via_symbols` [1]
> directive for macOS. Nevertheless, the aforementioned Xcode linker
> versions produce incorrect code for the VM without this directive.
>
> As a fix for old versions of macOS, this patch adds emitting this
I would add exact macOS versions, according to [1] it is: 15000000
1.
https://stackoverflow.com/questions/19387043/how-can-i-reliably-detect-the-version-of-clang-at-preprocessing-time#comment137533353_19391724
> directive in the buildvm.
>
> [1]:https://reviews.llvm.org/D79926
>
> Sergey Kaplun:
> * added the description for the problem
>
> Part of tarantool/tarantool#11691
> ---
> src/host/buildvm_asm.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/src/host/buildvm_asm.c b/src/host/buildvm_asm.c
> index 43595b31..fc09d71a 100644
> --- a/src/host/buildvm_asm.c
> +++ b/src/host/buildvm_asm.c
> @@ -347,6 +347,10 @@ void emit_asm(BuildCtx *ctx)
> fprintf(ctx->fp, "\t.ident \"%s\"\n", ctx->dasm_ident);
> break;
> case BUILD_machasm:
> +#if defined(__apple_build_version__) && __apple_build_version__ >= 15000000 && __apple_build_version__ < 15000300
> + /* Workaround for XCode 15.0 - 15.2. */
__apple_build_version__ defines a macOS version. But macOS 15 includes
XCode 16, see [2], not 15.x
So there is an inconsistency in condition and comment. I would list
macOS versions in a comment like this
"Workaround for macOS 15, 15.1 and 15.2" to avoid misinterpretation due
to non-strict inequality with 15000300.
Also, I would include a link to [2] to the commit message.
2.
https://developer.apple.com/documentation/macos-release-notes/macos-15-release-notes
> + fprintf(ctx->fp, "\t.subsections_via_symbols\n");
> +#endif
> fprintf(ctx->fp,
> "\t.cstring\n"
> "\t.ascii \"%s\\0\"\n", ctx->dasm_ident);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20251126/ba4b2fe5/attachment.htm>
More information about the Tarantool-patches
mailing list