"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]