"Andy Polyakov" <[EMAIL PROTECTED]> said: > As far as I can see "stock" OpenSSL doesn't generate assembler moduler > for DJGPP, so you've got to tell more details about how do you generate > assembler modules. Note that &picmeup is used in des assembler modules. > Can you figure out how it works there? A.
I tweaked the djgpp makefiles to generate asm versions. E.g. bn-586.o is generated by these equivalent steps; PLFLAGS = -I./crypto/perlasm -I./crypto/bn/asm -I./crypto/des/asm perl $(PLFLAGS) crypto\bn\asm\bn-586.pl cpp > tmp\tmp.c gcc -E -DBSDI tmp\tmp.c | as -o obj\bn-586.o And this: if ($sse2) { &picmeup("eax","OPENSSL_ia32cap"); &bt(&DWP(0,"eax"),26); (with $sse2=1), translates to this: #if (defined(ELF) || defined(SOL)) && defined(PIC) .align 4 call 1f 1: popl %eax addl $_GLOBAL_OFFSET_TABLE_+[.-1b],%eax movl [EMAIL PROTECTED](%eax),%eax #else leal OPENSSL_ia32cap,%eax #endif btl $26, (%eax) ------- So either picmeup() doesn't do the right '_' prefixing of a global variable. Or I use the wrong PerlAsm defs. AFAICS 'cpp' includes 'x86unix.pl'; maybe I'll try win32n / x86nasm.pl. This has worked well for a long time until this OPENSSL_ia32cap variable was introduced. --gv ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]