Visual Studio's cl.exe -? hangs on Windows x64 when building nss since changeset 9162c654d06915f0f15948fbf67d4103a229226f
Categories
(NSS :: Build, defect, P1)
Tracking
(Not tracked)
People
(Reporter: mikekaganski, Assigned: mikekaganski)
References
Details
Attachments
(1 file)
447 bytes,
patch
|
shigorin
:
review+
jcj
:
review+
|
Details | Diff | Splinter Review |
In bug 1554616, a check for lcc was added for 64-bit platforms using a call to $(CC) -? 2>&1 >/dev/null. When using MS compiler on cygwin, this command results in cl.exe hanging infinitely, waiting for user input (the redirection to /dev/null obviously affects that, since calling 'cl.exe -?' in cygwin console doesn't start an interactive output - unlike cmd.exe; and also using redirection to a dummy file also gives non-interactive output).
This effectively breaks building 64-bit nss on Windows. See thread starting at https://lists.freedesktop.org/archives/libreoffice/2019-July/083122.html
Proposal is to also redirect stdin to /dev/null, which fixes the problem with MS compiler.
Comment 1•4 years ago
|
||
It sounds like this needs to be back-ported to NSS 3.45. Will this need its own point release?
Updated•4 years ago
|
Updated•4 years ago
|
Comment 2•4 years ago
|
||
Comment 3•4 years ago
|
||
Comment on attachment 9077675 [details] [diff] [review] nss.fix-freebl-add-lcc-support.patch.1 Not sure about my review flag handling but I'm fine with this patch :-) (and lcc 1.23.12 is fine with it, too)
Updated•4 years ago
|
Comment 4•4 years ago
|
||
OK, build came back clean. I'll land it on default now.
Comment 5•4 years ago
|
||
Comment 6•4 years ago
|
||
NSS_3_45_BRANCH: https://hg.mozilla.org/projects/nss/rev/a777f84f4a754f26e6c025c1c9876994a6e93124
Right now I'll plan to treat this as a ridealong for a potential 3.45 patch release. Please needinfo me if you think this is severe enough to warrant a .1 release on its own. Thanks!
Comment 7•4 years ago
|
||
Just a drive-by comment on this one... $(CC) -? 2>&1 >/dev/null </dev/null
doesn't work quite as intended. stderr will not be directed to /dev/null
as it appears the intent is. To get that you need $(CC) -? >/dev/null 2>&1 </dev/null
.
Assignee | ||
Comment 8•4 years ago
|
||
(In reply to Martin Thomson [:mt:] from comment #7)
I suppose that it works just quite as intended, i.e. redirecting stderr to where was stdout, and then redirecting stdout to /dev/null. Otherwise, trying to parse some output of a program with all *outs redirected to /dev/null wouldn't make much sense.
Comment 9•4 years ago
|
||
Mike, indeed.
Description
•