configure: Disable building libcrypt by default

We mentioned eventual dropping of libcrypt in the 2.28 NEWS.  Actually
put that plan in motion by first disabling building libcrypt by default.
note in NEWS that the library will be dropped completely in a future
release.

Also add a couple of builds into build-many-glibcs.py.

Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
Reviewed-by: Andreas K. Hüttel <dilfridge@gentoo.org>
This commit is contained in:
Siddhesh Poyarekar 2023-07-17 12:44:17 -04:00 committed by Andreas K. Hüttel
parent 3edca7f545
commit 6c85c5a177
No known key found for this signature in database
GPG key ID: DC2B16215ED5412A
6 changed files with 38 additions and 25 deletions

20
INSTALL
View file

@ -228,16 +228,18 @@ if CFLAGS is specified it must enable optimization. For example:
By default for x86_64, the GNU C Library is built with the vector By default for x86_64, the GNU C Library is built with the vector
math library. Use this option to disable the vector math library. math library. Use this option to disable the vector math library.
--disable-crypt --enable-crypt
Do not install the passphrase-hashing library libcrypt or the Install the legacy passphrase-hashing library libcrypt and the
header file crypt.h. unistd.h will still declare the function header file crypt.h. unistd.h will declare the function
crypt. Using this option does not change the set of programs crypt regardless of this option. Using this option does not
that may need to be linked with -lcrypt; it only means that the change the set of programs that may need to be linked with
GNU C Library will not provide that library. -lcrypt; it only means that the GNU C Library will provide that
library.
This option is for hackers and distributions experimenting with This option is for hackers and distributions who may not yet be
independently-maintained implementations of libcrypt. It may able to use libcrypt alternatives such as libxcrypt and need this
become the default in a future release. legacy implementation as a temporary workaround. Note that
libcrypt may be removed in a future release.
--disable-scv --disable-scv
Disable using scv instruction for syscalls. All syscalls will Disable using scv instruction for syscalls. All syscalls will

5
NEWS
View file

@ -56,6 +56,11 @@ Major new features:
Deprecated and removed features, and other changes affecting compatibility: Deprecated and removed features, and other changes affecting compatibility:
* libcrypt is no longer built by default, one may use the --enable-crypt
option to build libcrypt. libcrypt is likely to be removed from the
GNU C Library in a future release, so it is recommended that
applications port away from it to an alternative such as libxcrypt.
* In the Linux kernel for the hppa/parisc architecture some of the * In the Linux kernel for the hppa/parisc architecture some of the
MADV_XXX constants were changed to have the same values as the other MADV_XXX constants were changed to have the same values as the other
architectures. New programs compiled with this glibc version and which architectures. New programs compiled with this glibc version and which

4
configure vendored
View file

@ -1484,7 +1484,7 @@ Optional Features:
architectures architectures
--enable-memory-tagging enable memory tagging if supported by the --enable-memory-tagging enable memory tagging if supported by the
architecture [default=no] architecture [default=no]
--disable-crypt do not build nor install the passphrase hashing --enable-crypt build and install the legacy passphrase hashing
library, libcrypt library, libcrypt
--enable-nss-crypt enable libcrypt to use nss --enable-nss-crypt enable libcrypt to use nss
--enable-systemtap enable systemtap static probe points [default=no] --enable-systemtap enable systemtap static probe points [default=no]
@ -4577,7 +4577,7 @@ if test ${enable_crypt+y}
then : then :
enableval=$enable_crypt; build_crypt=$enableval enableval=$enable_crypt; build_crypt=$enableval
else $as_nop else $as_nop
build_crypt=yes build_crypt=no
fi fi

View file

@ -316,10 +316,10 @@ fi
AC_SUBST(memory_tagging) AC_SUBST(memory_tagging)
AC_ARG_ENABLE([crypt], AC_ARG_ENABLE([crypt],
AS_HELP_STRING([--disable-crypt], AS_HELP_STRING([--enable-crypt],
[do not build nor install the passphrase hashing library, libcrypt]), [build and install the legacy passphrase hashing library, libcrypt]),
[build_crypt=$enableval], [build_crypt=$enableval],
[build_crypt=yes]) [build_crypt=no])
AC_SUBST(build_crypt) AC_SUBST(build_crypt)
AC_ARG_ENABLE([nss-crypt], AC_ARG_ENABLE([nss-crypt],

View file

@ -256,16 +256,18 @@ configure with @option{--disable-werror}.
By default for x86_64, @theglibc{} is built with the vector math library. By default for x86_64, @theglibc{} is built with the vector math library.
Use this option to disable the vector math library. Use this option to disable the vector math library.
@item --disable-crypt @item --enable-crypt
Do not install the passphrase-hashing library @file{libcrypt} or the Install the legacy passphrase-hashing library @file{libcrypt} and the
header file @file{crypt.h}. @file{unistd.h} will still declare the header file @file{crypt.h}. @file{unistd.h} will declare the function
function @code{crypt}. Using this option does not change the set of @code{crypt} regardless of this option. Using this option does not
programs that may need to be linked with @option{-lcrypt}; it only change the set of programs that may need to be linked with
means that @theglibc{} will not provide that library. @option{-lcrypt}; it only means that @theglibc{} will provide that
library.
This option is for hackers and distributions experimenting with This option is for hackers and distributions who may not yet be able to
independently-maintained implementations of libcrypt. It may become use libcrypt alternatives such as libxcrypt and need this legacy
the default in a future release. implementation as a temporary workaround. Note that libcrypt may be
removed in a future release.
@item --disable-scv @item --disable-scv
Disable using @code{scv} instruction for syscalls. All syscalls will use Disable using @code{scv} instruction for syscalls. All syscalls will use

View file

@ -431,7 +431,9 @@ class Context(object):
{'variant': 'disable-multi-arch', {'variant': 'disable-multi-arch',
'arch': 'sparcv9', 'arch': 'sparcv9',
'ccopts': '-m32 -mlong-double-128 -mcpu=v9', 'ccopts': '-m32 -mlong-double-128 -mcpu=v9',
'cfg': ['--disable-multi-arch']}]) 'cfg': ['--disable-multi-arch']},
{'variant': 'enable-crypt',
'cfg': ['--enable-crypt']}])
self.add_config(arch='x86_64', self.add_config(arch='x86_64',
os_name='linux-gnu', os_name='linux-gnu',
gcc_cfg=['--with-multilib-list=m64,m32,mx32'], gcc_cfg=['--with-multilib-list=m64,m32,mx32'],
@ -466,7 +468,9 @@ class Context(object):
{'arch': 'i586', {'arch': 'i586',
'ccopts': '-m32 -march=i586'}, 'ccopts': '-m32 -march=i586'},
{'variant': 'enable-fortify-source', {'variant': 'enable-fortify-source',
'cfg': ['--enable-fortify-source']}]) 'cfg': ['--enable-fortify-source']},
{'variant': 'enable-crypt',
'cfg': ['--enable-crypt']}])
self.add_config(arch='x86_64', self.add_config(arch='x86_64',
os_name='gnu', os_name='gnu',
gcc_cfg=['--disable-multilib']) gcc_cfg=['--disable-multilib'])