crypt: Use NSPR header files in addition to NSS header files [BZ #17956]

When configuring and building GNU libc using the Mozilla NSS library
for cryptography (--enable-nss-crypt option), also include the
NSPR header files along with the Mozilla NSS library header files.

Finally, when running the check-local-headers test, ignore the
Mozilla NSPR library header files (used by the Mozilla NSS library).
This commit is contained in:
Guido Trentalancia 2017-10-04 15:02:35 +02:00 committed by Florian Weimer
parent 64d1e08ea8
commit 57b4af1955
5 changed files with 27 additions and 6 deletions

View File

@ -1,3 +1,14 @@
2017-10-04 Guido Trentalancia <guido@trentalancia.net>
[BZ #17956]
* configure.ac (--enable-nss-crypt): Use NSPR include directory.
* configure: Regenerate.
* crypt/Makefile (nss-cpp-flags): New variable.
(CPPFLAGS-sha256-crypt.c, CPPFLAGS-sha512-crypt.c)
(CPPFLAGS-md5-crypt.c): Use it.
* scripts/check-local-headers.sh: Ignore nspr header file
directory.
2017-10-04 Andreas Schwab <schwab@suse.de> 2017-10-04 Andreas Schwab <schwab@suse.de>
* nis/Makefile (services): Remove compat. * nis/Makefile (services): Remove compat.

6
configure vendored
View File

@ -3549,8 +3549,12 @@ if test x$nss_crypt = xyes; then
if test $? -ne 0; then if test $? -ne 0; then
as_fn_error $? "cannot find include directory with nss-config" "$LINENO" 5 as_fn_error $? "cannot find include directory with nss-config" "$LINENO" 5
fi fi
nspr_includes=-I$(nspr-config --includedir 2>/dev/null)
if test $? -ne 0; then
as_fn_error $? "cannot find include directory with nspr-config" "$LINENO" 5
fi
old_CFLAGS="$CFLAGS" old_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $nss_includes" CFLAGS="$CFLAGS $nss_includes $nspr_includes"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */

View File

@ -330,8 +330,12 @@ if test x$nss_crypt = xyes; then
if test $? -ne 0; then if test $? -ne 0; then
AC_MSG_ERROR([cannot find include directory with nss-config]) AC_MSG_ERROR([cannot find include directory with nss-config])
fi fi
nspr_includes=-I$(nspr-config --includedir 2>/dev/null)
if test $? -ne 0; then
AC_MSG_ERROR([cannot find include directory with nspr-config])
fi
old_CFLAGS="$CFLAGS" old_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $nss_includes" CFLAGS="$CFLAGS $nss_includes $nspr_includes"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([typedef int PRBool; AC_COMPILE_IFELSE([AC_LANG_PROGRAM([typedef int PRBool;
#include <hasht.h> #include <hasht.h>
#include <nsslowhash.h> #include <nsslowhash.h>

View File

@ -37,9 +37,11 @@ routines += $(libcrypt-routines)
endif endif
ifeq ($(nss-crypt),yes) ifeq ($(nss-crypt),yes)
CPPFLAGS-sha256-crypt.c = -DUSE_NSS -I$(shell nss-config --includedir) nss-cpp-flags := -DUSE_NSS \
CPPFLAGS-sha512-crypt.c = -DUSE_NSS -I$(shell nss-config --includedir) -I$(shell nss-config --includedir) -I$(shell nspr-config --includedir)
CPPFLAGS-md5-crypt.c = -DUSE_NSS -I$(shell nss-config --includedir) CPPFLAGS-sha256-crypt.c = $(nss-cpp-flags)
CPPFLAGS-sha512-crypt.c = $(nss-cpp-flags)
CPPFLAGS-md5-crypt.c = $(nss-cpp-flags)
LDLIBS-crypt.so = -lfreebl3 LDLIBS-crypt.so = -lfreebl3
else else
libcrypt-routines += md5 sha256 sha512 libcrypt-routines += md5 sha256 sha512

View File

@ -33,7 +33,7 @@ exec ${AWK} -v includedir="$includedir" '
BEGIN { BEGIN {
status = 0 status = 0
exclude = "^" includedir \ exclude = "^" includedir \
"/(.*-.*-.*/|.*-.*/|)(asm[-/]|arch|linux/|selinux/|mach/|mach_debug/|device/|hurd/(((hurd|ioctl)_types|paths)\\.h|ioctls\\.defs|ihash\\.h)|cthreads\\.h|gd|nss3/|c\\+\\+/|sys/(capability|sdt(|-config))\\.h|libaudit\\.h)" "/(.*-.*-.*/|.*-.*/|)(asm[-/]|arch|linux/|selinux/|mach/|mach_debug/|device/|hurd/(((hurd|ioctl)_types|paths)\\.h|ioctls\\.defs|ihash\\.h)|cthreads\\.h|gd|nss3/|nspr/|c\\+\\+/|sys/(capability|sdt(|-config))\\.h|libaudit\\.h)"
} }
/^[^ ]/ && $1 ~ /.*:/ { obj = $1 } /^[^ ]/ && $1 ~ /.*:/ { obj = $1 }
{ {