[PATCH v2] When using the Mozilla NSS library for cryptography, include the NSPR header files
Guido Trentalancia
guido@trentalancia.net
Tue May 31 17:51:00 GMT 2016
Hello Adhemerval.
I'll try to get back on the problem that you mention...
On Tue, 31/05/2016 at 11.39 -0300, Adhemerval Zanella wrote:
>
> 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#Proper
> ly_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. Â
I suspect it is a distro-based modification.
FHS specifies different directories, please see:
http://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s09.html
http://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s10.html
Try adding "/usr/lib/x86_64-linux-gnu/nss/" to LDFLAGS and passing such
variable to configure, for example as follows (please adapt it to your
needs):
LDFLAGS="-L/usr/lib/x86_64-linux-gnu/nss" configure --enable-nss-crypt
--whatever-other-options-you-might-need
Best regards,
Guido Trentalancia
> 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
> >
>
More information about the Libc-alpha
mailing list