This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v2] When using the Mozilla NSS library for cryptography, include the NSPR header files
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Tue, 31 May 2016 11:39:21 -0300
- Subject: Re: [PATCH v2] When using the Mozilla NSS library for cryptography, include the NSPR header files
- Authentication-results: sourceware.org; auth=none
- References: <1464696577 dot 24965 dot 16 dot camel at trentalancia dot net> <1464698125 dot 24965 dot 18 dot camel at trentalancia dot net>
On 31/05/2016 09:35, Guido Trentalancia wrote:
> 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.
>
> Signed-off-by: Guido Trentalancia <guido@trentalancia.net>
This patch is missing a proper ChangeLog [1]
[1] https://sourceware.org/glibc/wiki/Contribution%20checklist#Properly_Formatted_GNU_ChangeLog
> ---
> configure | 6 +++++-
> configure.ac | 6 +++++-
> crypt/Makefile | 6 +++---
> 3 files changed, 13 insertions(+), 5 deletions(-)
>
> --- glibc-31052016-0900GMT/configure 2016-05-30 13:25:35.299696688 +0200
> +++ glibc-configure-nss-crypt-include-nspr-headers/configure 2016-05-31 13:57:28.117571376 +0200
> @@ -3501,8 +3501,12 @@ if test x$nss_crypt = xyes; then
> if test $? -ne 0; then
> as_fn_error $? "cannot find include directory with nss-config" "$LINENO" 5
> 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"
> - CFLAGS="$CFLAGS $nss_includes"
> + CFLAGS="$CFLAGS $nss_includes $nspr_includes"
I tried to build it on Ubuntu 16.04 and even with the patch configure failed
due it could not find libfreebl3.so. On this distro this is installed on
/usr/lib/x86_64-linux-gnu/nss/ and I am not familiar with this project to say
if this is the default folder, if it is something recently changed or if it a
distro-based modification. Either way I think to fully re-enable the NSS
configure option we need to take care of it.
>
> cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h. */
> --- glibc-31052016-0900GMT/configure.ac 2016-05-30 13:25:35.299696688 +0200
> +++ glibc-configure-nss-crypt-include-nspr-headers/configure.ac 2016-05-31 13:58:03.962731844 +0200
> @@ -311,8 +311,12 @@ if test x$nss_crypt = xyes; then
> if test $? -ne 0; then
> AC_MSG_ERROR([cannot find include directory with nss-config])
> 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"
> - CFLAGS="$CFLAGS $nss_includes"
> + CFLAGS="$CFLAGS $nss_includes $nspr_includes"
> AC_COMPILE_IFELSE([AC_LANG_PROGRAM([typedef int PRBool;
> #include <hasht.h>
> #include <nsslowhash.h>
> --- glibc-31052016-0900GMT/crypt/Makefile 2016-05-30 13:25:35.306696710 +0200
> +++ glibc-configure-nss-crypt-include-nspr-headers/crypt/Makefile 2016-05-31 14:28:38.995883272 +0200
> @@ -37,9 +37,9 @@ routines += $(libcrypt-routines)
> endif
>
> ifeq ($(nss-crypt),yes)
> -CPPFLAGS-sha256-crypt.c = -DUSE_NSS -I$(shell nss-config --includedir)
> -CPPFLAGS-sha512-crypt.c = -DUSE_NSS -I$(shell nss-config --includedir)
> -CPPFLAGS-md5-crypt.c = -DUSE_NSS -I$(shell nss-config --includedir)
> +CPPFLAGS-sha256-crypt.c = -DUSE_NSS -I$(shell nss-config --includedir) -I$(shell nspr-config --includedir)
> +CPPFLAGS-sha512-crypt.c = -DUSE_NSS -I$(shell nss-config --includedir) -I$(shell nspr-config --includedir)
> +CPPFLAGS-md5-crypt.c = -DUSE_NSS -I$(shell nss-config --includedir) -I$(shell nspr-config --includedir)
> LDLIBS-crypt.so = -lfreebl3
> else
> libcrypt-routines += md5 sha256 sha512
>