This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v2] When using the Mozilla NSS library for cryptography, include the NSPR header files



On 31/05/2016 15:56, Guido Trentalancia wrote:
> Hello again.
> 
> On Tue, 31/05/2016 at 15.50 -0300, Adhemerval Zanella wrote:
>>
>> On 31/05/2016 14:28, Guido Trentalancia wrote:
>>> 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]
> 
> By the way, I have re-submitted the patch with the ChangeLog. So, it's
> just waiting to be committed...
> 
>>>> [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.  
> 
> [...]
> 
>>> 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
>>
>> It is indeed an ubuntu/debian modification (patch
>> 85_security_load.patch 
>> from libnss3 package) and I think it mainly due ubuntu/debian does
>> not
>> build glibc with NSS flag.
> 
> So, have you managed to configure GNU libc to use the Mozilla NSS
> library on your distribution ? Set LDFLAGS as mentioned above,
> eventually export it and run configure. The configure script should
> then be able to link the test program correctly...
> 
> I look forward to hearing from you.
> 
> Best regards,
> 
> Guido Trentalancia
> 

In fact I did something different:

configure.ac

 314   nss_libs=-L$(nss-config --libdir 2>/dev/null)
 315   if test $? -ne 0; then
 316     AC_MSG_ERROR([cannot find library directory with nss-config])
 317   fi

 332   LIBS="$LIBS $nss_libs/nss -lfreebl3"
 333   AC_LINK_IFELSE([AC_LANG_PROGRAM([typedef int PRBool;
 334 #include <hasht.h>
 335 #include <nsslowhash.h>],

And added the linker flag as well on crypt/Makefile.  However this is 
ad hoc fix just to check the patch on my non-default system libnss
installation.

With these change I could build glibc corretly and libcryto.so is linked
against libfreebl3.so (although since its patch is not on ld.so search
patch is not found).

I think general patch seems correct, I will comment on the third version.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]