Closed Bug 1229587 Opened 5 years ago Closed 5 years ago

VS2015u1 breaks build of certverifier

Categories

(Core :: Security, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla45
Tracking Status
firefox45 --- fixed

People

(Reporter: xidorn, Assigned: xidorn)

References

Details

Attachments

(2 files)

After I upgraded VS2015 to Update 1, it reports two warnings (which is then treated as error and stops building):
> 0:28.50 central/obj-firefox-opt/security/certverifier/Unified_cpp_certverifier0.cpp: error C2220: warning treated as error - no 'object' file generated
> 0:28.50 central/obj-firefox-opt/security/certverifier/Unified_cpp_certverifier0.cpp: warning C4464: relative include path contains '..'
> 0:28.52 central\security\manager\ssl\ScopedNSSTypes.h(219): warning C4061: enumerator 'SEC_OID_BUSINESS_CATEGORY' in switch of enum 'SECOidTag' is not explicitly handled by a case label
> 0:28.52 central\obj-firefox-opt\dist\include\nss\secoidt.h(34): note: see declaration of 'SECOidTag'
> 0:28.53 ccentral\security\manager\ssl\ScopedNSSTypes.h(219): warning C4061: enumerator 'SEC_OID_HMAC_SHA256' in switch of enum 'SECOidTag' is not explicitly handled by a case label

There is no line number for C4464, so I have no idea where it is.

C4061 should have been suppressed for the switch in question via macro MOZ_NON_EXHAUSTIVE_SWITCH which adds __pragma(warning(suppress:4061)) before switch statement. So it is likely a new bug introduced in Update 1. I don't think it would get fixed before the next update, so we probably need to find a way to workaround it.
I've submitted https://connect.microsoft.com/VisualStudio/feedback/details/2081008 for C4061 issue. we can use push/disable/pop pragma to work around this issue.

C4464 is a new warning added in VS2015u1, which we could just disable directly in moz.build.

I'll submit patches for these workarounds as far as I can complete the build...
Bug 1229587 part 1 - Disable C4464 warning newly added in VS2015u1.
Attachment #8694512 - Flags: review?(dkeeler)
Bug 1229587 part 2 - Use verbose format to disable C4061 to workaround bug of VS2015u1.
Attachment #8694513 - Flags: review?(dkeeler)
Comment on attachment 8694512 [details]
MozReview Request: Bug 1229587 part 1 - Disable C4464 warning newly added in VS2015u1.

https://reviewboard.mozilla.org/r/26809/#review24311
Attachment #8694512 - Flags: review?(dkeeler) → review+
Comment on attachment 8694513 [details]
MozReview Request: Bug 1229587 part 2 - Use verbose format to disable C4061 to workaround bug of VS2015u1.

https://reviewboard.mozilla.org/r/26811/#review24313

Seems reasonable.

::: security/manager/ssl/ScopedNSSTypes.h:205
(Diff revision 1)
> +#pragma warning(disable:4061)

It would be nice to keep the comment describing what warning 4061 is.
Attachment #8694513 - Flags: review?(dkeeler) → review+
https://hg.mozilla.org/integration/mozilla-inbound/rev/d274136019db1c59cb3d4d8464b3ac4e6ac4ecbc
Bug 1229587 part 1 - Disable C4464 warning newly added in VS2015u1. r=keeler

https://hg.mozilla.org/integration/mozilla-inbound/rev/177b0d0529e9fe4c206bd9f9e1d857e765ba8377
Bug 1229587 part 2 - Use verbose format to disable C4061 to workaround bug of VS2015u1. r=keeler
Assignee: nobody → quanxunzhen
https://hg.mozilla.org/mozilla-central/rev/d274136019db
https://hg.mozilla.org/mozilla-central/rev/177b0d0529e9
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
You need to log in before you can comment on or make changes to this bug.