[Tarantool-patches] [PATCH luajit 1/3] macOS: Fix macOS 15 / Clang 16 build.

Sergey Kaplun skaplun at tarantool.org
Thu Nov 27 12:50:44 MSK 2025


Hi, Sergey!
Thanks for the review!

Fixed your comment and updated the branch.

On 25.11.25, Sergey Bronnikov wrote:
> 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>
> >
> > 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
> 
> I would also add a link to Mach-O File Format Reference [1]. We already 
> referred to it in the commit 6e3aad8fb65f20a294171620b2e3bb4a8287e9b3 
> ("OSX/iOS/ARM64: Fix generation of Mach-O object files.").
> Feel free to ignore.
> 
> 1. https://github.com/aidansteele/osx-abi-macho-file-format-reference

Indeed, this link is brilliant, added.

The new commit message is the following:

| macOS: Fix macOS 15 / Clang 16 build.
|
| 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][3] 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
| [3]: https://github.com/aidansteele/osx-abi-macho-file-format-reference
|
| Sergey Kaplun:
| * added the description for the problem
|
| Part of tarantool/tarantool#11691

> 
> <snipped>

-- 
Best regards,
Sergey Kaplun


More information about the Tarantool-patches mailing list