diff --git a/meson.build b/meson.build index e5fd89e60c..e3ee957fd5 100644 --- a/meson.build +++ b/meson.build @@ -1005,6 +1005,22 @@ librt = cc.find_library('rt') libm = cc.find_library('m') libdl = cc.find_library('dl') +# On some distributions that use musl (e.g. Alpine), libintl.h may be provided by gettext rather than musl. +# In that case, we need to explicitly link with libintl.so. +if cc.has_function('dgettext', + prefix : '''#include ''', + args : '-D_GNU_SOURCE') + libintl = [] +else + libintl = cc.find_library('intl') + if not cc.has_function('dgettext', + prefix : '''#include ''', + args : '-D_GNU_SOURCE', + dependencies : libintl) + error('dgettext() not found') + endif +endif + # On some architectures, libatomic is required. But on some installations, # it is found, but actual linking fails. So let's try to use it opportunistically. # If it is installed, but not needed, it will be dropped because of --as-needed. diff --git a/src/home/meson.build b/src/home/meson.build index ebecc7b9c2..f40f935d55 100644 --- a/src/home/meson.build +++ b/src/home/meson.build @@ -115,6 +115,7 @@ modules += [ 'sources' : pam_systemd_home_sources, 'dependencies' : [ libcrypt, + libintl, libpam_misc, libpam, threads,