Under VS2005 VC++, using NASM, it appears the ASM files generated by the 
perl scripts define

OPENSSL_ia32cap_P to be common/BSS as opposed to declaring it to be extern.  In 
fact,

crypto/perlasm/x86nasm.pl goes out of its way to comment out the:



extern    _OPENSSL_ia32cap_P



and add a BSS definition at the end of the module.  This was probably 
done due to a bug/feature

of an older MS linker.  The new linker chokes with 'multiply defined' 
error messages (one for each perl generated

ASM module).  The real OPENSSL_ia32cap_P is defined in 
crypto/cryptlib.c and initialized there.



To get it to work right under VS2005, I just removed the special code 
from the ::file_end perl routine in x86nasm.pl

In addition, the crypto/aes/asm/aes-586.pl script also had to be 
modified to include:



&external_label("OPENSSL_ia32cap_P");



near the top someplace.



Apologies if this is mentioned somewhere else, but I searched and did 
not find anyone who had seen this.



_________________________________________________________________
Hotmail® has ever-growing storage! Don’t worry about storage limits. 
http://windowslive.com/Tutorial/Hotmail/Storage?ocid=TXT_TAGLM_WL_HM_Tutorial_Storage_062009

Reply via email to