> 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]

Reply via email to