From 00d5ece2027433074bb6d9390326233c9e290a57 Mon Sep 17 00:00:00 2001 From: Masayuki Yamamoto <15698961+ma8ma@users.noreply.github.com> Date: Sat, 9 Apr 2022 22:47:06 +0900 Subject: [PATCH] meson: Fix check for crypt(3) to improve OpenBSD support (#956) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OpenBSDでmesonを実行すると`crypt(3)`でエラーになると報告がありました。 mesonはlibcryptライブラリを探しますがOpenBSDのcrypt関数[1]は実体が libcにあるためチェック漏れしていたようです。そのためライブラリが 見つからないときは直接crypt関数を探すように修正します。 修正にあたり不具合報告をしていただきありがとうございました。 https://mevius.5ch.net/test/read.cgi/unix/1568040383/740 [1]: https://man.openbsd.org/crypt.3 --- meson.build | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 39acb0103..6e28d1558 100644 --- a/meson.build +++ b/meson.build @@ -80,14 +80,19 @@ x11_dep = dependency('x11') zlib_dep = dependency('zlib', version : '>= 1.2.0') -# crypt +# crypt(3) crypt_dep = cpp_compiler.find_library('crypt', required : false) if not crypt_dep.found() crypt_dep = dependency('libcrypt', required : false) endif if not crypt_dep.found() - crypt_dep = dependency('libxcrypt') + crypt_dep = dependency('libxcrypt', required : false) endif +# OpenBSD's crypt(3) is provided by libc. +if not crypt_dep.found() and not cpp_compiler.has_function('crypt') + error('crypt(3) is not found... Please report to ') +endif + if cpp_compiler.has_function('crypt_r', dependencies : crypt_dep) conf.set('HAVE_CRYPT_R', 1) endif