Lua-language-server failed to compile

I can’t install lua-language-server on darwin.

My env:

λ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-darwin"`
 - host os: `Darwin 23.1.0, macOS 10.16`
 - multi-user?: `yes`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.18.1`
 - nixpkgs: `/Users/fundon/.nix-defexpr/channels/nixpkgs`

λ clang -Xlinker -v
@(#)PROGRAM:ld  PROJECT:dyld-1015.7
BUILD 18:48:43 Aug 22 2023
configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em
will use ld-classic for: armv6 armv7 armv7s arm64_32 i386 armv6m armv7k armv7m armv7em
LTO support using: LLVM version 15.0.0 (static support for 29, runtime is 29)
TAPI support using: Apple TAPI version 15.0.0 (tapi-1500.0.12.3)
Library search paths:
	/nix/store/4j38m9c97qzf7zhamm7i7gyrgbikcfhn-libiconv-50/lib
	/nix/store/n5k43in732h89ay4wzfdz0nqss49ji7x-openssl-3.0.12/lib
	/usr/local/lib
Framework search paths:
ld: Undefined symbols:
  _main, referenced from:
      <initial-undefines>
clang: error: linker command failed with exit code 1 (use -v to see invocation)

λ ld -v
@(#)PROGRAM:ld  PROJECT:dyld-1015.7
BUILD 18:48:43 Aug 22 2023
configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em
will use ld-classic for: armv6 armv7 armv7s arm64_32 i386 armv6m armv7k armv7m armv7em
LTO support using: LLVM version 15.0.0 (static support for 29, runtime is 29)
TAPI support using: Apple TAPI version 15.0.0 (tapi-1500.0.12.3)
Library search paths:
Framework search paths:
nix-env -iA nixpkgs.lua-language-server -vvv
...
building '/nix/store/g20jlw0zidrrq2almdk3h6c3i2l1wkhn-lua-language-server-3.7.3.drv'...
unpacking sources
unpacking source archive /nix/store/hd913mv61s12xar827riqpvrsfblpiwm-source
source root is source
unpackPhase completed in 42 seconds
patching sources
/private/tmp/nix-build-lua-language-server-3.7.3.drv-0/source/3rd/luamake /private/tmp/nix-build-lua-language-server-3.7.3.drv-0/source
configuring
no configure script, doing nothing
building
build flags: -j8 -fcompile/ninja/macos.ninja
[1/34] Compile C++ build/macos/obj/source_bee/version.obj
...
[30/34] Compile C   build/macos/obj/source_lua/onelua.obj
[31/34] Link    Exe build/macos/bin/bootstrap
ld: warning: object file (build/macos/obj/source_bee/lua-seri.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bootstrap/main.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/error.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/format.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/filewatch_osx.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/endpoint.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/version.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/socket.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/process_select.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/atomic_semaphore.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/subprocess_posix.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/setname.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/simplethread_posix.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/file_handle.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/spinlock.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/file_handle_osx.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/file_handle_posix.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/path_helper.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/lua_filesystem.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/lua_filewatch.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/lua_platform.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/lua_select.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/lua_serialization.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/lua_socket.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/lua_subprocess.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/lua_thread.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_bee/lua_time.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_lua/onelua.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_lua/utf8_crt.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/macos/obj/source_lua/linit.obj) was built for newer macOS version (10.15) than being linked (10.12)
[32/34] Copy build/macos/bin/bootstrap luamake
[33/34] Copy bee.lua/bootstrap/main.lua build/macos/bin/main.lua
[33/34] Run test.
/private/tmp/nix-build-lua-language-server-3.7.3.drv-0/source
Cleaning... 0 files.
[1/91] Compile C++ build/obj/source_bee/version.obj
...build/obj/source_bee/lua_filesystem.obj build/obj/source_bee/lua_filewatch.obj build/obj/source_bee/lua_platform.obj build/obj/source_bee/lua_select.obj build/obj/source_bee/lua_serialization.obj build/obj/source_bee/lua_socket.obj build/obj/source_bee/lua_subprocess.obj build/obj/source_bee/lua_thread.obj build/obj/source_bee/lua_time.obj build/obj/source_lua/utf8_crt.obj build/obj/source_lua/linit.obj build/obj/source_lua/onelua.obj -o build/bin/bootstrap -lm -ldl -framework Foundation -framework CoreFoundation -framework CoreServices -lstdc++ -Wl,-S,-x
ld: warning: object file (build/obj/source_bootstrap/main.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/lua-seri.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/format.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/error.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/endpoint.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/filewatch_osx.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/socket.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/version.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/process_select.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/subprocess_posix.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/atomic_semaphore.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/setname.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/spinlock.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/simplethread_posix.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/file_handle.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/file_handle_osx.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/file_handle_posix.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/path_helper.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/lua_filesystem.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/lua_filewatch.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/lua_platform.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/lua_select.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/lua_serialization.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/lua_socket.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/lua_subprocess.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/lua_thread.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_bee/lua_time.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_lua/linit.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_lua/onelua.obj) was built for newer macOS version (10.15) than being linked (10.12)
ld: warning: object file (build/obj/source_lua/utf8_crt.obj) was built for newer macOS version (10.15) than being linked (10.12)
Undefined symbols for architecture x86_64:
  "std::runtime_error::what() const", referenced from:
      fmt::v10::format_system_error(fmt::v10::detail::buffer<char>&, int, char const*) in format.obj
      vtable for fmt::v10::format_error in format.obj
  "std::length_error::~length_error()", referenced from:
      std::__1::__throw_length_error[abi:v160006](char const*) in main.obj
      std::__1::__throw_length_error[abi:v160006](char const*) in filewatch_osx.obj
      std::__1::__throw_length_error[abi:v160006](char const*) in endpoint.obj
      std::__1::__throw_length_error[abi:v160006](char const*) in subprocess_posix.obj
      std::__1::__throw_length_error[abi:v160006](char const*) in file_handle_osx.obj
      std::__1::__throw_length_error[abi:v160006](char const*) in path_helper.obj
      std::__1::__throw_length_error[abi:v160006](char const*) in lua_filesystem.obj
      ...
  "std::runtime_error::~runtime_error()", referenced from:
      void fmt::v10::detail::for_each_codepoint<fmt::v10::detail::utf8_to_utf16::utf8_to_utf16(fmt::v10::basic_string_view<char>)::$_0>(fmt::v10::basic_string_view<char>, fmt::v10::detail::utf8_to_utf16::utf8_to_utf16(fmt::v10::basic_string_view<char>)::$_0)::'lambda'(char const*, char const*)::operator()(char const*, char const*) const in format.obj
  "std::runtime_error::~runtime_error()", referenced from:
      fmt::v10::format_error::~format_error() in format.obj
      fmt::v10::format_error::~format_error() in format.obj
  "std::bad_array_new_length::bad_array_new_length()", referenced from:
      std::__throw_bad_array_new_length[abi:v160006]() in format.obj
      std::__throw_bad_array_new_length[abi:v160006]() in filewatch_osx.obj
      std::__throw_bad_array_new_length[abi:v160006]() in subprocess_posix.obj
      std::__throw_bad_array_new_length[abi:v160006]() in lua_filesystem.obj
      std::__throw_bad_array_new_length[abi:v160006]() in lua_filewatch.obj
      std::__throw_bad_array_new_length[abi:v160006]() in lua_platform.obj
      std::__throw_bad_array_new_length[abi:v160006]() in lua_select.obj
      ...
  "std::bad_array_new_length::~bad_array_new_length()", referenced from:
      std::__throw_bad_array_new_length[abi:v160006]() in format.obj
      std::__throw_bad_array_new_length[abi:v160006]() in filewatch_osx.obj
      std::__throw_bad_array_new_length[abi:v160006]() in subprocess_posix.obj
      std::__throw_bad_array_new_length[abi:v160006]() in lua_filesystem.obj
      std::__throw_bad_array_new_length[abi:v160006]() in lua_filewatch.obj
      std::__throw_bad_array_new_length[abi:v160006]() in lua_platform.obj
      std::__throw_bad_array_new_length[abi:v160006]() in lua_select.obj
      ...
  "std::terminate()", referenced from:
      fmt::v10::detail::assert_fail(char const*, int, char const*) in format.obj
      ___clang_call_terminate in format.obj
      ___clang_call_terminate in error.obj
      ___clang_call_terminate in filewatch_osx.obj
      ___clang_call_terminate in endpoint.obj
      ___clang_call_terminate in socket.obj
      ___clang_call_terminate in subprocess_posix.obj
      ...
  "vtable for __cxxabiv1::__class_type_info", referenced from:
      typeinfo for std::exception in main.obj
      typeinfo for std::exception in format.obj
      typeinfo for std::exception in filewatch_osx.obj
      typeinfo for std::exception in endpoint.obj
      typeinfo for std::exception in subprocess_posix.obj
      typeinfo for std::exception in file_handle_osx.obj
      typeinfo for std::exception in path_helper.obj
      ...
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for __cxxabiv1::__si_class_type_info", referenced from:
      typeinfo for std::logic_error in main.obj
      typeinfo for std::length_error in main.obj
      typeinfo for std::runtime_error in format.obj
      typeinfo for fmt::v10::format_error in format.obj
      typeinfo for std::__1::system_error in format.obj
      typeinfo for std::bad_alloc in format.obj
      typeinfo for std::bad_array_new_length in format.obj
      ...
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for std::length_error", referenced from:
      std::length_error::length_error[abi:v160006](char const*) in main.obj
      std::length_error::length_error[abi:v160006](char const*) in filewatch_osx.obj
      std::length_error::length_error[abi:v160006](char const*) in endpoint.obj
      std::length_error::length_error[abi:v160006](char const*) in subprocess_posix.obj
      std::length_error::length_error[abi:v160006](char const*) in file_handle_osx.obj
      std::length_error::length_error[abi:v160006](char const*) in path_helper.obj
      std::length_error::length_error[abi:v160006](char const*) in lua_filesystem.obj
      ...
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "operator delete[](void*)", referenced from:
      bee::filewatch::watch::update_stream() in filewatch_osx.obj
      bee::subprocess::process_select(bee::dynarray<bee::subprocess::process*> const&, int) in process_select.obj
      bee::subprocess::args_t::~args_t() in subprocess_posix.obj
      bee::subprocess::args_t::~args_t() in subprocess_posix.obj
      bee::path_helper::exe_path() in path_helper.obj
      bee::lua_subprocess::spawn::spawn(lua_State*) in lua_subprocess.obj
      bee::lua_subprocess::select(lua_State*) in lua_subprocess.obj
      ...
  "operator delete(void*)", referenced from:
      pmain(lua_State*) in main.obj
      std::__1::vector<luaL_Reg, std::__1::allocator<luaL_Reg>>::~vector[abi:v160006]() in main.obj
      pushprogdir(lua_State*) in main.obj
      std::__1::__fs::filesystem::operator/[abi:v160006](std::__1::__fs::filesystem::path const&, std::__1::__fs::filesystem::path const&) in main.obj
      std::__1::enable_if<__is_cpp17_forward_iterator<char const*>::value, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&>::type std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::append[abi:v160006]<char const*>(char const*, char const*) in main.obj
      fmt::v10::detail::report_error(void (*)(fmt::v10::detail::buffer<char>&, int, char const*), int, char const*) in format.obj
      fmt::v10::detail::write_loc(fmt::v10::appender, fmt::v10::loc_value, fmt::v10::format_specs<char> const&, fmt::v10::detail::locale_ref) in format.obj
      ...
  "operator new[](unsigned long)", referenced from:
      bee::filewatch::watch::update_stream() in filewatch_osx.obj
      bee::subprocess::process_select(bee::dynarray<bee::subprocess::process*> const&, int) in process_select.obj
      bee::subprocess::args_t::push(bee::basic_zstring_view<char, std::__1::char_traits<char>>) in subprocess_posix.obj
      bee::subprocess::envbuilder::release() in subprocess_posix.obj
      bee::subprocess::env_append(std::__1::vector<char*, std::__1::allocator<char*>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) in subprocess_posix.obj
      bee::path_helper::exe_path() in path_helper.obj
      bee::lua_subprocess::select(lua_State*) in lua_subprocess.obj
      ...
  "operator new(unsigned long)", referenced from:
      std::__1::enable_if<__is_cpp17_forward_iterator<char const*>::value, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&>::type std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::append[abi:v160006]<char const*>(char const*, char const*) in main.obj
      fmt::v10::vsystem_error(int, fmt::v10::basic_string_view<char>, fmt::v10::basic_format_args<fmt::v10::basic_format_context<fmt::v10::appender, char>>) in format.obj
      fmt::v10::vformat(fmt::v10::basic_string_view<char>, fmt::v10::basic_format_args<fmt::v10::basic_format_context<fmt::v10::appender, char>>) in format.obj
      fmt::v10::basic_memory_buffer<int, 500ul, std::__1::allocator<int>>::grow(unsigned long) in format.obj
      fmt::v10::detail::format_dragon(fmt::v10::detail::basic_fp<unsigned __int128>, unsigned int, int, fmt::v10::detail::buffer<char>&, int&) in format.obj
      fmt::v10::basic_memory_buffer<unsigned int, 32ul, std::__1::allocator<unsigned int>>::grow(unsigned long) in format.obj
      fmt::v10::detail::bigint::square() in format.obj
      ...
  "operator new(unsigned long, std::nothrow_t const&)", referenced from:
      bee::thread_create(void (*)(void*) noexcept, void*) in simplethread_posix.obj
  "___cxa_allocate_exception", referenced from:
      std::__1::__throw_length_error[abi:v160006](char const*) in main.obj
      fmt::v10::detail::throw_format_error(char const*) in format.obj
      fmt::v10::detail::print(__sFILE*, fmt::v10::basic_string_view<char>) in format.obj
      void fmt::v10::detail::for_each_codepoint<fmt::v10::detail::utf8_to_utf16::utf8_to_utf16(fmt::v10::basic_string_view<char>)::$_0>(fmt::v10::basic_string_view<char>, fmt::v10::detail::utf8_to_utf16::utf8_to_utf16(fmt::v10::basic_string_view<char>)::$_0)::'lambda'(char const*, char const*)::operator()(char const*, char const*) const in format.obj
      std::__throw_bad_array_new_length[abi:v160006]() in format.obj
      fmt::v10::detail::format_dragon(fmt::v10::detail::basic_fp<unsigned __int128>, unsigned int, int, fmt::v10::detail::buffer<char>&, int&) in format.obj
      int fmt::v10::detail::format_float<double>(double, int, fmt::v10::detail::float_specs, fmt::v10::detail::buffer<char>&) in format.obj
      ...
  "___cxa_begin_catch", referenced from:
      ___clang_call_terminate in format.obj
      fmt::v10::format_system_error(fmt::v10::detail::buffer<char>&, int, char const*) in format.obj
      ___clang_call_terminate in error.obj
      ___clang_call_terminate in filewatch_osx.obj
      ___clang_call_terminate in endpoint.obj
      ___clang_call_terminate in socket.obj
      ___clang_call_terminate in subprocess_posix.obj
      ...
  "___cxa_end_catch", referenced from:
      fmt::v10::format_system_error(fmt::v10::detail::buffer<char>&, int, char const*) in format.obj
  "___cxa_free_exception", referenced from:
      std::__1::__throw_length_error[abi:v160006](char const*) in main.obj
      fmt::v10::detail::throw_format_error(char const*) in format.obj
      fmt::v10::detail::print(__sFILE*, fmt::v10::basic_string_view<char>) in format.obj
      void fmt::v10::detail::for_each_codepoint<fmt::v10::detail::utf8_to_utf16::utf8_to_utf16(fmt::v10::basic_string_view<char>)::$_0>(fmt::v10::basic_string_view<char>, fmt::v10::detail::utf8_to_utf16::utf8_to_utf16(fmt::v10::basic_string_view<char>)::$_0)::'lambda'(char const*, char const*)::operator()(char const*, char const*) const in format.obj
      fmt::v10::detail::format_dragon(fmt::v10::detail::basic_fp<unsigned __int128>, unsigned int, int, fmt::v10::detail::buffer<char>&, int&) in format.obj
      int fmt::v10::detail::format_float<double>(double, int, fmt::v10::detail::float_specs, fmt::v10::detail::buffer<char>&) in format.obj
      std::__1::__throw_length_error[abi:v160006](char const*) in filewatch_osx.obj
      ...
  "___cxa_guard_acquire", referenced from:
      bee::lua::preload_module(lua_State*) in main.obj
      ___cxx_global_var_init in filewatch_osx.obj
      bee::lua::register_module(char const*, int (*)(lua_State*)) in lua_filesystem.obj
      bee::lua::register_module(char const*, int (*)(lua_State*)) in lua_filewatch.obj
      ___cxx_global_var_init in lua_filewatch.obj
      bee::lua::register_module(char const*, int (*)(lua_State*)) in lua_platform.obj
      bee::lua::register_module(char const*, int (*)(lua_State*)) in lua_select.obj
      ...
  "___cxa_guard_release", referenced from:
      bee::lua::preload_module(lua_State*) in main.obj
      ___cxx_global_var_init in filewatch_osx.obj
      bee::lua::register_module(char const*, int (*)(lua_State*)) in lua_filesystem.obj
      bee::lua::register_module(char const*, int (*)(lua_State*)) in lua_filewatch.obj
      ___cxx_global_var_init in lua_filewatch.obj
      bee::lua::register_module(char const*, int (*)(lua_State*)) in lua_platform.obj
      bee::lua::register_module(char const*, int (*)(lua_State*)) in lua_select.obj
      ...
  "___cxa_throw", referenced from:
      std::__1::__throw_length_error[abi:v160006](char const*) in main.obj
      fmt::v10::detail::throw_format_error(char const*) in format.obj
      fmt::v10::detail::print(__sFILE*, fmt::v10::basic_string_view<char>) in format.obj
      void fmt::v10::detail::for_each_codepoint<fmt::v10::detail::utf8_to_utf16::utf8_to_utf16(fmt::v10::basic_string_view<char>)::$_0>(fmt::v10::basic_string_view<char>, fmt::v10::detail::utf8_to_utf16::utf8_to_utf16(fmt::v10::basic_string_view<char>)::$_0)::'lambda'(char const*, char const*)::operator()(char const*, char const*) const in format.obj
      std::__throw_bad_array_new_length[abi:v160006]() in format.obj
      fmt::v10::detail::format_dragon(fmt::v10::detail::basic_fp<unsigned __int128>, unsigned int, int, fmt::v10::detail::buffer<char>&, int&) in format.obj
      int fmt::v10::detail::format_float<double>(double, int, fmt::v10::detail::float_specs, fmt::v10::detail::buffer<char>&) in format.obj
      ...
  "___gxx_personality_v0", referenced from:
      pmain(lua_State*) in main.obj
      pushprogdir(lua_State*) in main.obj
      std::__1::__fs::filesystem::_PathCVT<wchar_t>::__append_range[abi:v160006](std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, wchar_t const*, wchar_t const*) in main.obj
      std::__1::__fs::filesystem::operator/[abi:v160006](std::__1::__fs::filesystem::path const&, std::__1::__fs::filesystem::path const&) in main.obj
      std::__1::enable_if<__is_cpp17_forward_iterator<char const*>::value, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&>::type std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::append[abi:v160006]<char const*>(char const*, char const*) in main.obj
      std::__1::__throw_length_error[abi:v160006](char const*) in main.obj
      Dwarf Exception Unwind Info (__eh_frame) in main.obj
      ...
ld: symbol(s) not found for architecture x86_64
clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
[71/91] Compile C++ build/obj/code_format/Utf8.obj
[72/91] Compile C++ build/obj/code_format/InfoNode.obj
[73/91] Compile C++ build/obj/code_format/LuaLexer.obj
[74/91] Compile C++ build/obj/code_format/EditDistance.obj
[75/91] Compile C++ build/obj/code_format/SuggestItem.obj
[76/91] Compile C++ build/obj/code_format/StringUtil.obj
[77/91] Compile C++ build/obj/code_format/InfoTree.obj
[78/91] Compile C++ build/obj/code_format/LuaParser.obj
[79/91] Compile C++ build/obj/code_format/SymSpell.obj
ninja: build stopped: subcommand failed.
/nix/store/rfd901qqnvil1ng2qydy72a7lvn7vy9n-stdenv-darwin/setup: line 140: pop_var_context: head of shell_variables not a function context

But, I downloaded the source code and built it without nix. It worked.

lua-language-server on  master via 🌙 took 7s
λ ./make.sh
/nix/Workspaces/tmp/lua-language-server/3rd/luamake /nix/Workspaces/tmp/lua-language-server
ninja: no work to do.
/nix/Workspaces/tmp/lua-language-server
Cleaning... 89 files.

...

[88/91] Run test: 3rd/bee.lua/test/test.lua.
OS:       	macos 14.1.1
Arch:     	x86_64
Compiler: 	Clang 15.0.0
CRT:      	libc++ 160006
DEBUG:    	false
λ otool -L bin/lua-language-server
bin/lua-language-server:
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1336.0.0)
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 2048.1.255)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 2048.1.255)
	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 1226.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1600.151.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
λ vtool -show-build bin/lua-language-server
bin/lua-language-server:
Load command 10
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform MACOS
    minos 10.15
      sdk 14.0
   ntools 1
     tool LD
  version 1015.7

True for me on an aarch64-darwin Mac as well. Given the number of rebuilds and downloads I had after updating my dotfiles flake.lock this morning, I think some of the 23.11 staging changes might be starting to land?

In any case, the proposed fix PR is #268579 and hasn’t merged yet. You can track when it’s available on some of the primary channels via Nixpkgs PR #268579 ("lua-language-server: fix build with clang 12+") progress . Pinning to a revision prior to PR 267052 should also help.

1 Like

This staging cycle included the LLVM upgrade for Darwin (from 11 to 16). It also included a switch to the system CoreFoundation for x86_64-darwin (matching aarch64-darwin). Pretty much everything was rebuilt this cycle.

2 Likes

Looking forward to 23.11. :grinning: