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

Reply via email to