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