Dont know if this was mentioned before, but last time I needed to build OpenSSL on Windows, I ran into this fairly easily reproducible. Using a stock 1.0.c source, IF I added a redirect like nmake -f ms/ntdll.mk > make.log I almost always got this and similar errors. If I did not redirect the output from nmake I usually did not get the error. BTW, was using a recent version of ActiveState Perl. Just a data point.
>-- Original Message -- >Subject: Re: [openssl.org #2963] Windows build bug (perl/nasm race) on OpenSSL >1.0.0c >From: "Andy Polyakov via RT" <[email protected]> >To: [email protected] >Cc: [email protected] >Date: Mon, 21 Jan 2013 21:31:45 +0100 >Reply-To: [email protected] > > >> We've been having regular build problems on Windows (with OpenSSL 1.0.0c, >though it looks like the problem also exists in git head from 2013-01-10): >sometimes nasm claims there are unresolved symbols. For example: >> set ASM=nasm -f win64 -DNEAR -Ox -g >> perl crypto\x86_64cpuid.pl tmp32dll.dbg\x86_64cpuid.asm >> >> nasm -f win64 -DNEAR -Ox -g -o tmp32dll.dbg\x86_64cpuid.obj >> tmp32dll.dbg\x86_64cpuid.asm >> tmp32dll.dbg\x86_64cpuid.asm:4: error: symbol `OPENSSL_cpuid_setup' undefined >> tmp32dll.dbg\x86_64cpuid.asm:17: error: symbol `L$spin' undefined >> tmp32dll.dbg\x86_64cpuid.asm:53: error: symbol `L$intel' undefined >> tmp32dll.dbg\x86_64cpuid.asm:64: error: symbol `L$intel' undefined >> >> ... >> >> NMAKE : fatal error U1077: '"C:\Program Files (x86)\nasm\nasm.EXE"' : return >code '0x1' >> Stop. >> >> I suspect the problem is line 10 of x86_64cpuid.pl (this is one instance >- the style is repeated in several files): > >This problem was discussed multiple times and so far suggestion was >switch off antivirus (Microsoft Defender is most recognized to be >culprit) and use "matching" perl (e.g. it would inappropriate to use >cygwin perl in this case). > >> open STDOUT,"| \"$^X\" $xlate $flavour $output"; > >If you can reproduce the problem 100%, try to replace above line with >following: > >open FD,"| \"$^X\" $xlate $flavour $output"; >*STDOUT=*FD; > >If it doesn't help, try further to replace 'close STDOUT;' at the end of > >file with 'close FD;' > >If it doesn't help, try further to > >$xlate_pid=open FD,"| \"$^X\" $xlate $flavour $output"; > >and then add 'waitpid $xlate_pid,0;' *after* 'close FD;' > >> On Windows pipes work differently than on Unix, so I think the script is >quitting before the pipe gets run. > >It's not pipes, but Perl problem. > >> Someone reported the same problem on the nasm mailing list a couple of >years ago: >http://old.nabble.com/nasm-intermittently-fails-to-assemble-a-file-td29947144.html >: >> >> "I tried that (with a custom clone of cat, since cat is not a standard > >> binary on Windows and a ported cat would barf at the other commandline > >> args anyway), and it showed that the .asm file was either empty or >> missing when "nasm.exe" started." > >Boy, that was wrong forum to report the problem, nasm-users... > > > >______________________________________________________________________ >OpenSSL Project http://www.openssl.org >Development Mailing List [email protected] >Automated List Manager [email protected] ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [email protected] Automated List Manager [email protected]
