--- Begin Message ---
Package: numerix
Version: 0.22-1
Severity: serious
Tags: patch
Justification: no longer builds from source
numerix does not build on Alpha:
[...]
alpha-linux-gnu-gcc -fPIC -Wall -O2 -Duse_slong -c -o kernel/n/o/numerix-t.o
kernel/n/alpha/numerix.S
kernel/n/alpha/karatsuba.S: Assembler messages:
kernel/n/alpha/karatsuba.S:583: Error: syntax error
kernel/n/alpha/toom.S:379: Warning: operand out of range (-8 is not between 0
and 255)
kernel/n/alpha/toom.S:961: Warning: operand out of range (-8 is not between 0
and 255)
kernel/n/alpha/div_n2.S:309: Error: syntax error
kernel/n/alpha/div_n2.S:415: Error: syntax error
kernel/n/alpha/div_n2.S:541: Error: syntax error
kernel/n/alpha/sqrt_n2.S:141: Error: syntax error
kernel/n/alpha/smod.S:1019: Error: inappropriate arguments for opcode `bsr'
kernel/n/alpha/smod.S:1131: Warning: .end directive names different symbol than
.ent
kernel/n/alpha/smod.S:1511: Error: syntax error
kernel/n/alpha/smod.S:1512: Error: syntax error
kernel/n/alpha/smod.S:1545: Warning: .end directive names different symbol than
.ent
kernel/n/alpha/cmp.S:63: Error: syntax error
kernel/n/alpha/cmp.S:74: Error: syntax error
make[1]: *** [kernel/n/o/numerix-t.o] Error 1
make[1]: Leaving directory `/build/buildd/numerix-0.22'
make: *** [build-stamp] Error 2
Apparently the author uses Digital Unix, which is a bit sloppy about
correct syntax, and fixes up the invalid s4addq by itself. I've
created a quick patch. I haven't really tested it, though, so you
should probably run it by the upstream author.
diff -Nurp numerix-0.22/kernel/n/alpha/cmp.S
/tmp/numerix-0.22/kernel/n/alpha/cmp.S
--- numerix-0.22/kernel/n/alpha/cmp.S 2006-01-02 16:16:30.000000000 +0100
+++ /tmp/numerix-0.22/kernel/n/alpha/cmp.S 2006-08-22 23:34:09.000000000
+0200
@@ -60,7 +60,7 @@ sn_cmp:
subq _a_, 8, _a_
subq $0, 1, $0
ldq $1, 0(_a_)
- beq $1 1b
+ beq $1, 1b
addq $31, 1, $0
ret $31, ($26),1
@@ -71,7 +71,7 @@ sn_cmp:
subq _b_, 8, _b_
addq $0, 1, $0
ldq $1, 0(_b_)
- beq $1 2b
+ beq $1, 2b
subq $31, 1, $0
ret $31, ($26),1
diff -Nurp numerix-0.22/kernel/n/alpha/div_n2.S
/tmp/numerix-0.22/kernel/n/alpha/div_n2.S
--- numerix-0.22/kernel/n/alpha/div_n2.S 2006-06-09 13:29:29.000000000
+0200
+++ /tmp/numerix-0.22/kernel/n/alpha/div_n2.S 2006-08-22 23:18:44.000000000
+0200
@@ -108,7 +108,7 @@
beq y, 3f ;\
addq q, 1, q /* q++ */ ;\
beq q, 2f /* si débordement, abandonne */ ;\
- subq c, a c /* c:d -= a */ ;\
+ subq c, a, c /* c:d -= a */ ;\
br $31, 1b ;\
2: ;\
subq q, 1, q ;\
diff -Nurp numerix-0.22/kernel/n/alpha/karatsuba.S
/tmp/numerix-0.22/kernel/n/alpha/karatsuba.S
--- numerix-0.22/kernel/n/alpha/karatsuba.S 2006-01-02 16:19:48.000000000
+0100
+++ /tmp/numerix-0.22/kernel/n/alpha/karatsuba.S 2006-08-22
23:15:47.000000000 +0200
@@ -580,7 +580,7 @@ L(nogp):
s8addq $0, $16, $18 # r18 <- &a1
bis $2, $2, $19 # r19 <- q
bsr $26, .Lsn_asub_nogp # c[0..p-1] <- |a0-a1|
- stq $31 _x_
+ stq $31, _x_
# calcule |a0-a1|^2, a0^2, a1^2
ldq $16, _c_
diff -Nurp numerix-0.22/kernel/n/alpha/smod.S
/tmp/numerix-0.22/kernel/n/alpha/smod.S
--- numerix-0.22/kernel/n/alpha/smod.S 2006-05-25 14:25:37.000000000 +0200
+++ /tmp/numerix-0.22/kernel/n/alpha/smod.S 2006-08-22 23:45:02.000000000
+0200
@@ -1016,7 +1016,7 @@ L(small):
# d1:d2 <- a^2 mod (BASE^n - 1)
bis $18, $18, $17
lda $18, _d_
- bsr .Lsn_toomsqr_nogp
+ bsr $26, .Lsn_toomsqr_nogp
br $31, .Lsn_smul_small_aux # continue auvec smul
#undef _d_
@@ -1128,7 +1128,7 @@ L(big_odd):
#ifdef debug_smul
.end sn_ssqr_buggy
#else
- .end sn_sqr
+ .end sn_ssqr
#endif
#undef L
#endif /* assembly_sn_ssqr */
@@ -1508,8 +1508,8 @@ L(inc_b):
sll $3, 3, $3
lda $27, sn_addloop
subq _b_, $3, $16
- s8addq _k_, $16 $18
- s8addq _k_, $16 $20
+ s8addq _k_, $16, $18
+ s8addq _k_, $16, $20
s4addq $3, $27, $27
bis $31, $31, $0
jsr $27, ($27)
@@ -1542,7 +1542,7 @@ L(inc_b):
#ifdef debug_sjoin
.end sn_sjoin3_buggy
#else
- .end sn_sqr
+ .end sn_sjoin3
#endif
#undef L
#endif /* assembly_sn_sjoin3 */
diff -Nurp numerix-0.22/kernel/n/alpha/toom.S
/tmp/numerix-0.22/kernel/n/alpha/toom.S
--- numerix-0.22/kernel/n/alpha/toom.S 2006-01-12 14:25:42.000000000 +0100
+++ /tmp/numerix-0.22/kernel/n/alpha/toom.S 2006-08-22 23:28:55.000000000
+0200
@@ -376,7 +376,8 @@ L(nogp):
s8addq $17, $16, $18 # r18 <- &c[p+3]
bis $17, $17, $19 # r19 <- p+3
lda $20, _d_
- s4addq $17, -8, $0 # r0 <- 4p+4
+ lda $0, -8
+ s4addq $17, $0, $0 # r0 <- 4p+4
s8addq $0, $20, $20 # r20 <- &f
# diminue les longeurs des facteurs si les chiffres de tête sont nuls
@@ -958,7 +959,8 @@ L(nogp):
ldq $17, _p_
addq $17, 3, $17 # r17 <- p+3
lda $18, _d_
- s4addq $17, -8, $0 # r0 <- 4p+4
+ lda $0, -8
+ s4addq $17, $0, $0 # r0 <- 4p+4
s8addq $0, $18, $18 # r18 <- &f
# diminue les longeurs des facteurs si les chiffres de tête sont nuls
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: alpha
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17.5
Locale: LANG=C, [EMAIL PROTECTED] (charmap=ISO-8859-15)
--- End Message ---