This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v2] [BZ 17956] Fix build failure due to missing definitions from header file nss/nss.h when Mozilla NSS is used for cryptography
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: Guido Trentalancia <guido at trentalancia dot net>, Carlos O'Donell <carlos at redhat dot com>, libc-alpha at sourceware dot org
- Date: Tue, 31 May 2016 17:12:09 -0300
- Subject: Re: [PATCH v2] [BZ 17956] Fix build failure due to missing definitions from header file nss/nss.h when Mozilla NSS is used for cryptography
- Authentication-results: sourceware.org; auth=none
- References: <1464635653 dot 24965 dot 5 dot camel at trentalancia dot net> <1464700854 dot 24965 dot 21 dot camel at trentalancia dot net> <574DA91E dot 9040508 at linaro dot org> <1464708782 dot 2379 dot 12 dot camel at trentalancia dot net> <574DB2E3 dot 4020405 at redhat dot com> <1464714039 dot 2379 dot 30 dot camel at trentalancia dot net> <574DE05C dot 1010803 at linaro dot org> <1464722661 dot 2379 dot 61 dot camel at trentalancia dot net> <574DE8F3 dot 3090306 at linaro dot org> <1464724652 dot 2379 dot 71 dot camel at trentalancia dot net>
On 31/05/2016 16:57, Guido Trentalancia wrote:
> On Tue, 31/05/2016 at 16.41 -0300, Adhemerval Zanella wrote:
>>
>> On 31/05/2016 16:24, Guido Trentalancia wrote:
>>> Hello again.
>>>
>>> On Tue, 31/05/2016 at 16.05 -0300, Adhemerval Zanella wrote:
>>>>
>>>> On 31/05/2016 14:00, Guido Trentalancia wrote:
>>>>> Hello Carlos.
>>>>>
>>>>> On Tue, 31/05/2016 at 11.50 -0400, Carlos O'Donell wrote:
>>>>>> On 05/31/2016 11:33 AM, Guido Trentalancia wrote:
>>>>>>> Please let me know if the ChangeLog is required for the
>>>>>>> first
>>>>>>> two
>>>>>>> patches and I will be glad to prepare one (what has been
>>>>>>> changed is
>>>>>>> trivial and explained in the header of each patch).
>>>>>>
>>>>>> Adhemerval or myself can write the ChangeLog for you as a
>>>>>> first
>>>>>> time
>>>>>> contributor.
>>>>>>
>>>>>> The real issue is that I don't think your patch are quite
>>>>>> correct
>>>>>> or we haven't found the real cause of the failure.
>>>>>>
>>>>>> On Fedora we use --enable-nss-crypt for all of our builds and
>>>>>> see
>>>>>> no problems.
>>>>>>
>>>>>> You add nss3/nspr include directories to CFLAGS, which should
>>>>>> not
>>>>>> be needed.
>>>>>
>>>>> It is needed because the configure test program uses hasht.h
>>>>> (and nsslowhash.h) from the Mozilla NSS library which has the
>>>>> following
>>>>> include:
>>>>>
>>>>> #include "prtypes.h"
>>>>>
>>>>> That is why, unless Mozilla NSPR changes the above to:
>>>>>
>>>>> #include <nspr/prtypes.h>
>>>>>
>>>>> the configure test program from GNU libc fails to compile.
>>>>>
>>>>> I bet in Fedora you have patched with sed the Mozilla NSS
>>>>> header
>>>>> files
>>>>> so that they include <nspr/prtypes.h> instead of
>>>>> "prtypes.h"...?
>>>>
>>>> Nops, the distro I am using does not have this change, all the
>>>> headers
>>>> uses plain '#include "prtypes.h"'.
>>>
>>> So, you either need the patch posted with the following message
>>> subject:
>>>
>>> [PATCH v3] When using the Mozilla NSS library for cryptography,
>>> include
>>> the NSPR header files
>>>
>>> or otherwise, you need the patch posted with this message subject
>>> in
>>> conjunction with:
>>>
>>> CPPFLAGS="-I/path_to_your_NSS_header_files
>>> -I/path_to_your_NSPR_header_files"
>>>
>>> The two above mentioned patches are compatible with each other, so
>>> you
>>> can also use both (without the need for setting CPPFLAGS).
>>
>> Yes I am assuming the configure issue pointed you by your earlier
>> message patched.
>>
>>>
>>>> The only deviation is libfreebl3.so is
>>>> not installed in the expected folder.
>>>>
>>>> However I does not prevent to correctly configure it if I
>>>> instruct
>>>> the
>>>> linekr flags to check on correct folder for nss plugins.
>>>>
>>>> I think this patch is wrong because even when nss.h is presented
>>>> on
>>>> the
>>>> system, GLIBC include sysdep directive will use GLIBC own nss.h
>>>> header.
>>>
>>> I have tested the latest versions of all patches submitted and they
>>> are
>>> correct because they fix the problem and prevent it from happening.
>>
>> Nops, this does not indicate necessary that the patch is correct. It
>> does not even indicate there is an issue since even using a non-
>> default
>> libnss3 installation with just the initial fix you sent I can build
>> glibc with NSS enabled.
>
> Of course, testing the patch, verifying that it solves the problem
> reported and verifying that it does not introduce problems with the
> existing code implies that the patch is correct ! Are you joking or
> what ?
>
Because this problem you are describing does not make sense to me. I will
recapitulate:
1. I am using your v4 patch [1] that fixes the *configure* which check if
libnss can be used or not. This patch seems correct and fixes the
configure error I am seeing.
2. Now, the system I am using install the libfreebl3 on a non-standard
system path. I have multiple ways to 'fix' on my system and the
way I am using is adding a ad hoc patch to add both -L on both
configure.ac and crypto/Makefile. It has nothing to do your patch
and only fixes a issue in my side.
3. Now, with 1. and 2. fixed I can build GLIBC without any more patches,
so the issue your are describing and trying to fix *in this thread*
does not make sense to me. That's why I think *this* patch is not
correct.
Now I am checking your patch [1] against Fedora 23 (which I think have
the default NSS installation paths).
[1] https://sourceware.org/ml/libc-alpha/2016-05/msg00779.html
> It is only possible to build GNU libc with Mozilla NSS for cryptography
> by using AT LEAST either of the two following patches:
>
> [1] https://sourceware.org/bugzilla/attachment.cgi?id=9302 (fixes
> possible conflicts between Mozilla NSS nss.h header file and GNU libc
> nss.h header file)
>
> AND/OR
>
> [2] https://sourceware.org/ml/libc-alpha/2016-05/msg00738.html (fixes
> the GNU libc build system to correctly detect and use Mozilla NSPR)
>
> and using the following patch for sanitising the test suite:
>
> [3] https://sourceware.org/ml/libc-alpha/2016-05/msg00729.html (fixes
> the GNU libc test system to prevent false positives related to the use
> of the Mozilla NSPR header files)
>
> Now, at the request of Carlos O'Donell, [2] and [3] have been merged.
>
> Unfortunately, I do not have so much time available to circle around
> the same issues indefinitely. Carlos asked me to understand whether or
> not you have sorted the problems with building GNU libc with Mozilla
> NSS enabled.
>
> I assume your problems were due to non-compliance with FHS. Can you
> confirm ? Are you now able to use the patches and can you confirm that
> everything works fine ?
>
> I have carried out extensive testing and everything works fine.
>
> Best regards,
>
> Guido Trentalancia
>