From: Igor Munkin via Tarantool-patches <tarantool-patches@dev.tarantool.org> To: Sergey Ostanevich <sergos@tarantool.org>, Sergey Kaplun <skaplun@tarantool.org> Cc: tarantool-patches@dev.tarantool.org Subject: [Tarantool-patches] [PATCH luajit 0/3] Basic fixes for LuaJIT on ARM64 Macs Date: Tue, 11 May 2021 01:09:04 +0300 [thread overview] Message-ID: <cover.1620678384.git.imun@tarantool.org> (raw) This series consists of the three patches: the one for CMake build machinery and two commits backported from the vanilla LuaJIT trunk[1]. If the latter commits are OK, they can be uses as an examples in backporting procedure document[2] for the others to be adopted. The first patch fixes the issue missed in #4862: CMake machinery fails to locate system headers provided by SDK on MacOS platforms. The bug was unnoticed for a while, since Tarantool testing environment doesn't use Debug build with LUA_USE_ASSERT enabled on MacOS hosts. Anyway, even if there was Debug build, there is a mess with the flags as a result of #4862, so LuaJIT internal assertions would be enabled neither. The fix contains of two parts: 1. Set the sysroot to SDK root directory if it is not set before. 2. Use ${CMAKE_C_FLAGS} in <LuaJITTestArch> auxiliary routine. The second patch is a backport of 2e2fb8f[3]. When Apple released Macs working on ARM64, the previous recipe in lj_arch.h for detecting Apple platforms is not valid anymore. Fortunately, there is a system header (i.e. TargetConditionals.h), provided by SDK with the proper defines to be set. Since testing machinery assumes that LuaJIT is built with JIT support being enabled unconditionally, a smoke test for it is also added alongside with this patch. The third patch is a backport of 521b367[4]. This patch fixes the issue introduced by commit 2e2fb8f6b5118e1a7996b76600c6ee98bfd5f203 ('OSX/iOS: Handle iOS simulator and ARM64 Macs.'). Within the mentioned commit LJ_TARGET_IOS define is set via Apple system header to enable several features (e.g. JIT and external unwinder) on ARM64 Macs, but its usage was not adjusted source-wide. This is done for FFI machinery within this commit. Since all LJ_TARGET_IOS usage is done with LJ_TARGET_ARM64 define being set, we can simply replace all entries with LJ_TARGET_OSX. Branch: https://github.com/tarantool/luajit/tree/imun/gh-5983-fix-build-on-m1 Issues: * https://github.com/tarantool/tarantool/issues/5983 * https://github.com/tarantool/tarantool/issues/5629 * https://github.com/tarantool/tarantool/issues/4862 CI looks to be OK[5] except the known problems with ASAN[6]. [1]: https://github.com/LuaJIT/LuaJIT [2]: https://github.com/tarantool/tarantool/wiki/LuaJIT-backporting-guidelines [3]: https://github.com/LuaJIT/LuaJIT/commit/2e2fb8f [4]: https://github.com/LuaJIT/LuaJIT/commit/521b367 [5]: https://github.com/tarantool/tarantool/commit/fba91e1 [6]: https://github.com/tarantool/tarantool/issues/6031 Igor Munkin (1): build: pass sysroot to MacOS SDK Mike Pall (2): OSX/iOS: Handle iOS simulator and ARM64 Macs. FFI/ARM64/OSX: Fix vararg call handling. CMakeLists.txt | 9 +++++++++ cmake/LuaJITUtils.cmake | 7 ++++++- src/lj_arch.h | 8 +++++++- src/lj_ccall.c | 8 ++++---- src/lj_ccallback.c | 2 +- .../gh-5983-jit-library-smoke-tests.test.lua | 11 +++++++++++ .../lj-695-ffi-vararg-call.test.lua | 16 ++++++++++++++++ 7 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 test/tarantool-tests/gh-5983-jit-library-smoke-tests.test.lua create mode 100644 test/tarantool-tests/lj-695-ffi-vararg-call.test.lua -- 2.25.0
next reply other threads:[~2021-05-10 22:30 UTC|newest] Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-10 22:09 Igor Munkin via Tarantool-patches [this message] 2021-05-10 22:09 ` [Tarantool-patches] [PATCH luajit 1/3] build: pass sysroot to MacOS SDK Igor Munkin via Tarantool-patches 2021-05-11 9:49 ` Sergey Kaplun via Tarantool-patches 2021-05-12 21:55 ` Igor Munkin via Tarantool-patches 2021-05-14 16:07 ` Sergey Kaplun via Tarantool-patches 2021-05-17 17:21 ` Igor Munkin via Tarantool-patches 2021-05-18 5:50 ` Sergey Kaplun via Tarantool-patches 2021-05-18 18:47 ` Igor Munkin via Tarantool-patches 2021-05-19 11:38 ` Igor Munkin via Tarantool-patches 2021-05-19 12:40 ` Sergey Ostanevich via Tarantool-patches 2021-05-19 13:23 ` Igor Munkin via Tarantool-patches 2021-05-19 16:06 ` Sergey Kaplun via Tarantool-patches 2021-05-10 22:09 ` [Tarantool-patches] [PATCH luajit 2/3] OSX/iOS: Handle iOS simulator and ARM64 Macs Igor Munkin via Tarantool-patches 2021-05-11 11:02 ` Sergey Kaplun via Tarantool-patches 2021-05-11 11:03 ` Igor Munkin via Tarantool-patches 2021-05-14 11:36 ` Sergey Ostanevich via Tarantool-patches 2021-05-14 11:27 ` Igor Munkin via Tarantool-patches 2021-05-10 22:09 ` [Tarantool-patches] [PATCH luajit 3/3] FFI/ARM64/OSX: Fix vararg call handling Igor Munkin via Tarantool-patches 2021-05-11 11:07 ` Sergey Kaplun via Tarantool-patches 2021-05-11 11:31 ` Igor Munkin via Tarantool-patches 2021-05-12 16:11 ` Sergey Ostanevich via Tarantool-patches 2021-05-12 21:59 ` Igor Munkin via Tarantool-patches 2021-05-13 9:50 ` Sergey Ostanevich via Tarantool-patches 2021-05-13 10:44 ` Igor Munkin via Tarantool-patches 2021-05-14 10:10 ` Sergey Ostanevich via Tarantool-patches 2021-05-14 10:31 ` Igor Munkin via Tarantool-patches 2021-05-19 15:38 ` [Tarantool-patches] [PATCH luajit 0/3] Basic fixes for LuaJIT on ARM64 Macs Igor Munkin 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=cover.1620678384.git.imun@tarantool.org \ --to=tarantool-patches@dev.tarantool.org \ --cc=imun@tarantool.org \ --cc=sergos@tarantool.org \ --cc=skaplun@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH luajit 0/3] Basic fixes for LuaJIT on ARM64 Macs' \ /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