https://bz.apache.org/ooo/show_bug.cgi?id=126891

Don Lewis <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #85574|0                           |1
        is obsolete|                            |

--- Comment #9 from Don Lewis <[email protected]> ---
Created attachment 85577
  --> https://bz.apache.org/ooo/attachment.cgi?id=85577&action=edit
revised^2 patch to upgrade to nss-3.24-with-nspr-4.12

Fix build issue on FreeBSD 11.0 and other platforms with picky compilers.  The
result of shifting a negative signed value is undefined in C and C++.  The
generated code does the expected thing in my experience and this construct just
generates a compiler warning, but nss-3.24/nss/lib/zlib/inflate.c is compiled
with -Werror, which breaks the build.  Fix the issue by doing the calculations
using the equivalent unsigned type.  The function return should probably also
be changed, but that is more invasive.

Unfortunately I am now observing a build error on Windows:

Compiling: xmlsecurity/source/xmlsec/nss/cl : Command line warning D9025 :
overriding '/GR' with '/GR-'
nssinitializer.cxx
C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(96) : warning C4190: '&' has C-linkage
specified, but returns UDT 'M64' which is incompatible with C
        C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(77) : see declaration of 'M64'
C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(97) : warning C4190: '|' has C-linkage
specified, but returns UDT 'M64' which is incompatible with C
        C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(77) : see declaration of 'M64'
C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(98) : warning C4190: '^' has C-linkage
specified, but returns UDT 'M64' which is incompatible with C
        C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(77) : see declaration of 'M64'
C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(99) : warning C4190: 'andnot' has
C-linkage specified, but returns UDT 'M64' which is incompatible with C
        C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(77) : see declaration of 'M64'
C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(162) : warning C4190: 'cmpeq' has
C-linkage specified, but returns UDT 'I32vec2' which is incompatible with C
        C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(133) : see declaration of
'I32vec2'
C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(163) : warning C4190: 'cmpneq' has
C-linkage specified, but returns UDT 'I32vec2' which is incompatible with C
        C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(133) : see declaration of
'I32vec2'
C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(165) : warning C4190: 'unpack_low' has
C-linkage specified, but returns UDT 'I32vec2' which is incompatible with C
        C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(133) : see declaration of
'I32vec2'
C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(166) : warning C4190: 'unpack_high'
has C-linkage specified, but returns UDT 'I32vec2' which is incompatible with C
        C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(133) : see declaration of
'I32vec2'
C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(233) : warning C4190: 'cmpeq' has
C-linkage specified, but returns UDT 'Is32vec2' which is incompatible with C
        C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(171) : see declaration of
'Is32vec2'
C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(233) : error C2733: second C linkage
of overloaded function 'cmpeq' not allowed
        C:/PROGRA~1/MICROS~1.0/VC/include\ivec.h(233) : see declaration of
'cmpeq'
[and lots more]

My best guess is that this is erroneously getting included inside an extern "C"
block, but the compiler isn't helpful enough to report the path through the
nested includes.  I don't know why I did not see this problem before.

-- 
You are receiving this mail because:
You are the assignee for the issue.

Reply via email to