From: Sergey Kaplun via Tarantool-patches <tarantool-patches@dev.tarantool.org>
To: Sergey Bronnikov <sergeyb@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: [Tarantool-patches] [PATCH luajit 1/3] macOS: Fix macOS 15 / Clang 16 build.
Date: Mon, 24 Nov 2025 23:26:36 +0300 [thread overview]
Message-ID: <e4672db92bdeb28fc36e722db7ed8d7fe47706cd.1763991490.git.skaplun@tarantool.org> (raw)
In-Reply-To: <cover.1763991490.git.skaplun@tarantool.org>
From: Mike Pall <mike>
Note: The -Wl,-no_deduplicate workaround is NOT needed anymore.
Thanks to fxcoudert, corsix, clason, baconpaul, mvf.
(cherry picked from commit 2240d84464cc3dcb22fd976f1db162b36b5b52d5)
When building LuaJIT in the non-Debug mode, the -O2 optimization flag is
applied for both the compiler and the linker. Thus, the linker may apply
various optimizations, such as code deduplication. Since macOS 15, the
bundled Clang provided by Xcode tools may wrongly deduplicate the part
of the LuaJIT VM. One workaround may be to provide a flag to the linker
`-Wl,-no_deduplicate` [1], which helps to avoid wrong deduplication. The
other option is to remove emitting `.subsections_via_symbols` [2] to
avoid shrinking the object file by the labels.
The second option is more robust, since there is no rationale why this
directive was added in the past.
[1]: https://rocm.docs.amd.com/projects/llvm-project/en/latest/LLVM/lld/html/MachO/ld64-vs-lld.html
[2]: https://reviews.llvm.org/D79926
Sergey Kaplun:
* added the description for the problem
Part of tarantool/tarantool#11691
---
src/vm_arm64.dasc | 1 -
src/vm_x64.dasc | 1 -
src/vm_x86.dasc | 1 -
3 files changed, 3 deletions(-)
diff --git a/src/vm_arm64.dasc b/src/vm_arm64.dasc
index c5f0a7a7..6600e226 100644
--- a/src/vm_arm64.dasc
+++ b/src/vm_arm64.dasc
@@ -4076,7 +4076,6 @@ static void emit_asm_debug(BuildCtx *ctx)
"LEFDEY:\n\n", fcsize);
}
#endif
- fprintf(ctx->fp, ".subsections_via_symbols\n");
}
break;
#endif
diff --git a/src/vm_x64.dasc b/src/vm_x64.dasc
index d5296759..8b6781a6 100644
--- a/src/vm_x64.dasc
+++ b/src/vm_x64.dasc
@@ -4943,7 +4943,6 @@ static void emit_asm_debug(BuildCtx *ctx)
"LEFDEY:\n\n", fcsize);
}
#endif
- fprintf(ctx->fp, ".subsections_via_symbols\n");
}
break;
#endif
diff --git a/src/vm_x86.dasc b/src/vm_x86.dasc
index b043b830..7c11c78e 100644
--- a/src/vm_x86.dasc
+++ b/src/vm_x86.dasc
@@ -5853,7 +5853,6 @@ static void emit_asm_debug(BuildCtx *ctx)
fprintf(ctx->fp, "L_%s$stub:\n\t.indirect_symbol _%s\n\t.ascii \"\\364\\364\\364\\364\\364\"\n", *xn, *xn);
}
#endif
- fprintf(ctx->fp, ".subsections_via_symbols\n");
}
break;
#endif
--
2.51.2
next prev parent reply other threads:[~2025-11-24 20:27 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-24 20:26 [Tarantool-patches] [PATCH luajit 0/3] Various fixes for macOS Sergey Kaplun via Tarantool-patches
2025-11-24 20:26 ` Sergey Kaplun via Tarantool-patches [this message]
2025-11-25 13:56 ` [Tarantool-patches] [PATCH luajit 1/3] macOS: Fix macOS 15 / Clang 16 build Sergey Bronnikov via Tarantool-patches
2025-11-24 20:26 ` [Tarantool-patches] [PATCH luajit 2/3] macOS: Workaround for buggy XCode 15.0 - 15.2 linker Sergey Kaplun via Tarantool-patches
2025-11-26 12:09 ` Sergey Bronnikov via Tarantool-patches
2025-11-24 20:26 ` [Tarantool-patches] [PATCH luajit 3/3] macOS: Remove obsolete -single_module flag Sergey Kaplun via Tarantool-patches
2025-11-26 11:58 ` Sergey Bronnikov via Tarantool-patches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e4672db92bdeb28fc36e722db7ed8d7fe47706cd.1763991490.git.skaplun@tarantool.org \
--to=tarantool-patches@dev.tarantool.org \
--cc=sergeyb@tarantool.org \
--cc=skaplun@tarantool.org \
--subject='Re: [Tarantool-patches] [PATCH luajit 1/3] macOS: Fix macOS 15 / Clang 16 build.' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox