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