We've been having regular build problems on Windows: 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.
Running the command manually shows that perl quits before printing all
the assembly to stdout.
The command that seems to be going wrong is line 14 of x86_64cpuid.pl
(from git head):
open STDOUT,"| \"$^X\" $xlate $flavour $output";
Does the script need to close STDOUT *and* wait for the subprocess to exit?
--
Bruce Cran