firstboot: Include <crypt.h> for declaration of crypt() if needed (#7944)
Not every target system may provide a crypt() function in its stdlibc and may use an external or replacement library, like libxcrypt, for providing such functions. See https://fedoraproject.org/wiki/Changes/Replace_glibc_libcrypt_with_libxcrypt.
This commit is contained in:
parent
16c73c765d
commit
9f555bba67
|
@ -589,7 +589,8 @@ conf.set('GPERF_LEN_TYPE', gperf_len_type,
|
||||||
if not cc.has_header('sys/capability.h')
|
if not cc.has_header('sys/capability.h')
|
||||||
error('POSIX caps headers not found')
|
error('POSIX caps headers not found')
|
||||||
endif
|
endif
|
||||||
foreach header : ['linux/btrfs.h',
|
foreach header : ['crypt.h',
|
||||||
|
'linux/btrfs.h',
|
||||||
'linux/memfd.h',
|
'linux/memfd.h',
|
||||||
'linux/vm_sockets.h',
|
'linux/vm_sockets.h',
|
||||||
'sys/auxv.h',
|
'sys/auxv.h',
|
||||||
|
|
|
@ -23,6 +23,19 @@
|
||||||
#include <shadow.h>
|
#include <shadow.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_CRYPT_H
|
||||||
|
/* libxcrypt is a replacement for glibc's libcrypt, and libcrypt might be
|
||||||
|
* removed from glibc at some point. As part of the removal, defines for
|
||||||
|
* crypt(3) are dropped from unistd.h, and we must include crypt.h instead.
|
||||||
|
*
|
||||||
|
* Newer versions of glibc (v2.0+) already ship crypt.h with a definition
|
||||||
|
* of crypt(3) as well, so we simply include it if it is present. MariaDB,
|
||||||
|
* MySQL, PostgreSQL, Perl and some other wide-spread packages do it the
|
||||||
|
* same way since ages without any problems.
|
||||||
|
*/
|
||||||
|
# include <crypt.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "sd-id128.h"
|
#include "sd-id128.h"
|
||||||
|
|
||||||
#include "alloc-util.h"
|
#include "alloc-util.h"
|
||||||
|
|
Loading…
Reference in a new issue