For all of you who may have troubles with these libraries on
Alpha I attach below, for your perusal in a spare moment,
a log from a test run for SSLeay-0.9.0a compiled on Linux/Alpha.
There are these small points to note:
- 'Configure' and other perl scripts assume that you
have '/usr/local/bin/perl'; edit or supply the later as a link.
I do not recommend the later as in some situations
'rpm --rebuild...' may pick it up instead of /usr/bin/perl
and you will have problems with dependencies
- 'linux-elf' target assumes blindly x86, as expected.
Use 'alpha-gcc' instead (even if you are using Compaq C).
- You will get 'CFLAG= -O3' in a generated Makefile. This should
be OK but for this test run I edited it to 'CFLAG= -O2 -Wall -g'.
Whatever.
- 'Makefile' tries to use 'BN_MULW= asm/alpha.o' define. This
would be nice if not for that small trouble that one end up with
as -o asm/alpha.o asm/alpha.s
asm/alpha.s: Assembler messages:
asm/alpha.s:198: Error: inappropriate arguments for opcode `stq'
make[2]: *** [asm/alpha.o] Error 1
on the following code fragment from 'crypto/bn/asm/alpha.s'
bn_add_words:
bn_add_words..ng:
.frame $30,0,$26,0
.prologue 0
bis $31,$31,$8 # carry = 0
ble $19,$900
$901:
ldq $0,0($17) # a[0]
ldq $1,0($18) # a[1]
addq $0,$1,$3 # c=a+b;
addq $17,8,$17 # a++
cmpult $3,$1,$7 # did we overflow?
addq $18,8,$18 # b++
addq $8,$3,$3 # c+=carry
cmpult $3,$8,$8 # did we overflow?
stq $3,($16) # r[0]=c <---- ERROR on this line!!!
addq $7,$8,$8 # add into overflow
subq $19,1,$19 # loop--
addq $16,8,$16 # r++
bgt $19,$901
$900:
bis $8,$8,$0 # return carry
ret $31,($26),1
.end bn_add_words
Somebody with an assembler expertise willing to explain why this
is unhappy? Even better - is the whole code from alpha.s is correct? :-)
Changing this define in Makefile to 'BN_MULW= bn_mulw.o' solves
that problem but maybe adds extra cycles.
Once past that everything compiles fine as you can see for yourself
in an attached log.
Michal
Attachment:
SSLeay.test_results.gz
Description: application/gunzip