If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

SSE2 optimizations in mpi_x86_asm.c do not allow to build with VC6 without processor pack, or VC5 or below

RESOLVED WONTFIX

Status

NSS
Build
RESOLVED WONTFIX
8 years ago
8 years ago

People

(Reporter: Christophe Ravel, Unassigned)

Tracking

trunk
x86
Windows 2000

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

8 years ago
Build error:

mpi_x86_asm.c
c:/security/securitytip/builds/20090727.1/nssw2000s_WIN/mozilla/security/nss/lib/freebl/mpi/mpi_x86_asm.c(132) : fatal error C1601: unsupported inline assembly opcode
make[4]: *** [WINNT5.0_OPT.OBJ/WINNT_SINGLE_SHLIB/mpi_x86_asm.obj] Error 2
The workaround is to pull rev 1.2 of freebl/mpi/mpi_x86_asm.c, instead of 
rev 1.4, when building with vc6.  

Given how easy that is, I don't think we'll fix it.  
Maybe we should create a tag named NSS_3_12_3_RTM_VC6

Comment 2

8 years ago
Nelson,

While pulling that revision would be a temporary fix, I am not sure it's the best one. IMO, the NSS trunk should be buildable with VC6 without pulling alternate tags - some people still use it, as well as older versions of MSVC (I think Wan-Teh uses VC5).

One solution is to #ifdef the SSE2 optimizations in this source file. So if you build with VC6, you wouldn't get them.

Another one is to put the opcode for the SSE2 instructions in binary, if the compiler allows it.

Comment 3

8 years ago
Good news : I am no longer seeing this build error after I applied my fix for bug 507041 . Marking as a duplicate.
Status: NEW → RESOLVED
Last Resolved: 8 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 507041

Comment 4

8 years ago
Actually, that fix may be unrelated. I suspect you are simply running with an old unpatched version of VC6 . The version I have is 

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

It is VC6 SP5 + processor pack. The processor pack probably makes all the difference. So this is not a bug in NSS, but a backlevel compiler issue. Of course, this may still break older compilers like VC5 . I'm reopening for that reason.

But for now I would recommend you install the latest VC6 patches.
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---

Comment 5

8 years ago
FYI, info on VC6 processor pack is at http://msdn.microsoft.com/en-us/vstudio/aa718349.aspx . You must have SP5 for VC6 to install it first.

Comment 6

8 years ago
Does anyone still use VC5 or below ? What's our official position on those compilers ? With the code as-is, it won't build with MSVC < VC6 SP5 with processor pack. This may be OK, I just want to make sure it doesn't inconvenience anyone.

Updated

8 years ago
Summary: SSE2 optimizations in mpi_x86_asm.c do not allow to build with VC6 → SSE2 optimizations in mpi_x86_asm.c do not allow to build with VC6 without processor pack

Comment 7

8 years ago
The NSS trunk doesn't need to support VC5 or below.

Comment 8

8 years ago
Thanks, Wan-Teh. Marking WONTFIX.
Status: REOPENED → RESOLVED
Last Resolved: 8 years ago8 years ago
Resolution: --- → WONTFIX
Summary: SSE2 optimizations in mpi_x86_asm.c do not allow to build with VC6 without processor pack → SSE2 optimizations in mpi_x86_asm.c do not allow to build with VC6 without processor pack, or VC5 or below
You need to log in before you can comment on or make changes to this bug.