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.
