The package rpms/clisp.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/clisp.git/commit/?id=38141c9c4cc1....
Change:
-%ifarch ppc %{power64}
Thanks.
Full change:
============
commit 38141c9c4cc1260b0c047b298e2f12edcb42eaa9
Author: Jerry James <loganjerry(a)gmail.com>
Date: Thu Jun 21 21:37:01 2018 -0600
Update to recent git snapshot.
Also:
- License change: GPLv2 to GPLv2+.
- Build with readline 6 due to the new license.
- Drop upstreamed -arm, -libsvm, -alias, and -linux patches.
- Build for all architectures.
- Bring back the pari module.
diff --git a/.gitignore b/.gitignore
index 9d565cf..e168710 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
-/clisp-2.49-20130208hg.tar.bz2
/clisp-2.49-20161111hg.tar.xz
/clisp-2.49-20161113hg.tar.xz
/clisp-2.49-20170224hg.tar.xz
/clisp-2.49.93-20180224hg.tar.xz
+/clisp-d1310ad.tar.gz
diff --git a/clisp-alias.patch b/clisp-alias.patch
deleted file mode 100644
index 9619989..0000000
--- a/clisp-alias.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up clisp-2.49.93/src/record.d.alias clisp-2.49.93/src/record.d
---- clisp-2.49.93/src/record.d.alias 2018-02-26 11:40:53.668845947 -0500
-+++ clisp-2.49.93/src/record.d 2018-02-26 11:41:22.225164509 -0500
-@@ -1539,7 +1539,7 @@ global maygc object update_instance (obj
- ptr->inst_class_version = obj;
- clr_break_sem_1(); /* permit interrupts again */
- }
-- ASSERT(Record_flags(STACK_(2+4+2*kept_slots)) & instflags_forwarded_B);
-+ ASSERT(record_flags(TheInstance(STACK_(2+4+2*kept_slots))) &
instflags_forwarded_B);
- dotimesL(kept_slots,kept_slots, {
- var object new_slotinfo = popSTACK();
- ASSERT(atomp(new_slotinfo));
diff --git a/clisp-arm.patch b/clisp-arm.patch
deleted file mode 100644
index 1bbaacd..0000000
--- a/clisp-arm.patch
+++ /dev/null
@@ -1,856 +0,0 @@
---- src/ariarm.d.orig 2017-02-24 10:37:24.000000000 -0700
-+++ src/ariarm.d 2017-02-24 10:41:46.898615218 -0700
-@@ -86,7 +86,7 @@ pc .req r15
-
- #define C(x) x
- #define EXPORT(x) .global x
--#define GLABEL(x) x:
-+#define GLABEL(x) .type x STT_FUNC; x:
- #define LABEL(x) x:
- #define RRX rrx
- #define END
-@@ -187,7 +187,7 @@ GLABEL(mulu32_)
- LDR a3,[pc,#ptr_mulu32_high-.-8]
- STR a2,[a3,#0]
- #endif
-- MOVS pc,lr
-+ BX lr
-
- /* extern uint16 divu_3216_1616_ (uint32 x, uint16 y);
- entry
-@@ -243,7 +243,7 @@ GLABEL(divu_3216_1616_)
- LDR a3,[pc,#ptr_divu_16_rest-.-8] /* save rest so can be picked up later */
- STR a2,[a3,#0] /* the result is 16 bits */
- #endif
-- MOVS pc, lr
-+ BX lr
-
- /* extern uint32 divu_6432_3232_ (uint32 xhi, uint32 xlo, uint32 y); | -> Quotient q
- extern uint32 divu_32_rest; | -> Rest r
-@@ -278,7 +278,7 @@ GLABEL(divu_6432_3232_)
- LDR a4,[pc,#ptr_divu_32_rest-.-8]
- STR a2,[a4,#0] /* divu_32_rest = remainder */
- #endif
-- LDMFD sp!, {v1,v2,v3,v4,v5,v6,pc}^
-+ LDMFD sp!, {v1,v2,v3,v4,v5,v6,pc}
-
- LABEL(divu_6432_3232_l1)
- MOV v3, #0 /* s = 0 */
-@@ -346,7 +346,7 @@ LABEL(divu_6432_3232_l1)
- LDR a3,[pc,#ptr_divu_32_rest-.-8]
- STR a2,[a3,#0] /* divu_32_rest = remainder */
- #endif
-- LDMFD sp!, {v1,v2,v3,v4,v5,v6,pc}^
-+ LDMFD sp!, {v1,v2,v3,v4,v5,v6,pc}
-
- /* extern uintD* copy_loop_up (uintD* sourceptr, uintD* destptr, uintC count);
- entry
-@@ -370,7 +370,7 @@ GLABEL(copy_loop_up)
- LABEL(copy_loop_up_l1)
- BICS a4,a3,#3 /* set counter to multiple of 4 */
- MOVEQ a1,a2 /* return addr of last word stored */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1,lr} /* save work regs */
- LABEL(copy_loop_up_l2)
- LDMIA a1!,{a3,v1,ip,lr} /* copy 4 words in one go */
-@@ -380,7 +380,7 @@ LABEL(copy_loop_up_l2)
- STMGEIA a2!,{a3,v1,ip,lr} /* 4 more words */
- BGT copy_loop_up_l2 /* and loop */
- MOV a1,a2 /* return addr of last word stored */
-- LDMFD sp!,{v1,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1,pc} /* restore work regs and return */
-
- /* extern uintD* copy_loop_down (uintD* sourceptr, uintD* destptr, uintC count);
- entry
-@@ -404,7 +404,7 @@ GLABEL(copy_loop_down)
- LABEL(copy_loop_down_l1)
- BICS a4,a3,#3 /* set counter to multiple of 4 */
- MOVEQ a1,a2 /* return addr of last word stored */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1,lr} /* save work regs */
- LABEL(copy_loop_down_l2)
- LDMDB a1!,{a3,v1,ip,lr} /* copy 4 words in one go */
-@@ -414,7 +414,7 @@ LABEL(copy_loop_down_l2)
- STMGEDB a2!,{a3,v1,ip,lr} /* 4 more words */
- BGT copy_loop_down_l2 /* and loop */
- MOV a1,a2 /* return addr of last word stored */
-- LDMFD sp!,{v1,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1,pc} /* restore work regs and return */
-
- /* extern uintD* clear_loop_up (uintD* destptr, uintC count);
- entry
-@@ -446,7 +446,7 @@ GLABEL(fill_loop_up)
- STRGT a3,[a1],#4
- LABEL(fill_loop_up_l1)
- BICS a4,a2,#3 /* set counter to multiple of 4 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1,lr} /* save work regs */
- MOV v1,a3 /* copy filler to three other */
- MOV ip,a3 /* registers */
-@@ -456,7 +456,7 @@ LABEL(fill_loop_up_l2)
- SUBS a4,a4,#8 /* decrement counter by 8 */
- STMGEIA a1!,{a3,v1,ip,lr} /* if count still positive then store 4 */
- BGT fill_loop_up_l2 /* more and loop */
-- LDMFD sp!,{v1,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1,pc} /* restore work regs and return */
-
-
- /* extern uintD* clear_loop_down (uintD* destptr, uintC count);
-@@ -489,7 +489,7 @@ GLABEL(fill_loop_down)
- STRGT a3,[a1,#-4]!
- LABEL(fill_loop_down_l1)
- BICS a4,a2,#3 /* set counter to multiple of 4 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1,lr} /* save work regs */
- MOV v1,a3 /* copy filler to three other */
- MOV ip,a3 /* registers */
-@@ -499,7 +499,7 @@ LABEL(fill_loop_down_l2)
- SUBS a4,a4,#8 /* decrement counter by 8 */
- STMGEDB a1!,{a3,v1,ip,lr} /* if count still positive then store 4 */
- BGT fill_loop_down_l2 /* more and loop */
-- LDMFD sp!,{v1,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1,pc} /* restore work regs and return */
-
- /* extern void or_loop_up (uintD* xptr, uintD* yptr, uintC count);
- entry
-@@ -529,7 +529,7 @@ GLABEL(or_loop_up)
- STRGT ip,[a1],#4
- LABEL(or_loop_up_l1)
- BICS a4,a3,#3 /* set counter to multiple of 4 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1-v5,lr} /* save work regs */
- LABEL(or_loop_up_l2)
- LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
-@@ -541,7 +541,7 @@ LABEL(or_loop_up_l2)
- STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT or_loop_up_l2 /* if count still positive then loop */
-- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
-
- /* extern void xor_loop_up (uintD* xptr, uintD* yptr, uintC count);
- entry
-@@ -571,7 +571,7 @@ GLABEL(xor_loop_up)
- STRGT ip,[a1],#4
- LABEL(xor_loop_up_l1)
- BICS a4,a3,#3 /* set counter to multiple of 4 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1-v5,lr} /* save work regs */
- LABEL(xor_loop_up_l2)
- LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
-@@ -583,7 +583,7 @@ LABEL(xor_loop_up_l2)
- STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT xor_loop_up_l2 /* if count still positive then loop */
-- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
-
- /* extern void and_loop_up (uintD* xptr, uintD* yptr, uintC count);
- entry
-@@ -613,7 +613,7 @@ GLABEL(and_loop_up)
- STRGT ip,[a1],#4
- LABEL(and_loop_up_l1)
- BICS a4,a3,#3 /* set counter to multiple of 4 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1-v5,lr} /* save work regs */
- LABEL(and_loop_up_l2)
- LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
-@@ -625,7 +625,7 @@ LABEL(and_loop_up_l2)
- STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT and_loop_up_l2 /* if count still positive then loop */
-- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
-
- /* extern void eqv_loop_up (uintD* xptr, uintD* yptr, uintC count);
- entry
-@@ -659,7 +659,7 @@ GLABEL(eqv_loop_up)
- STRGT ip,[a1],#4
- LABEL(eqv_loop_up_l1)
- BICS a4,a3,#3 /* set counter to multiple of 4 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1-v5,lr} /* save work regs */
- LABEL(eqv_loop_up_l2)
- LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
-@@ -675,7 +675,7 @@ LABEL(eqv_loop_up_l2)
- STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT eqv_loop_up_l2 /* if count still positive then loop */
-- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
-
- /* extern void nand_loop_up (uintD* xptr, uintD* yptr, uintC count);
- entry
-@@ -709,7 +709,7 @@ GLABEL(nand_loop_up)
- STRGT ip,[a1],#4
- LABEL(nand_loop_up_l1)
- BICS a4,a3,#3 /* set counter to multiple of 4 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1-v5,lr} /* save work regs */
- LABEL(nand_loop_up_l2)
- LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
-@@ -725,7 +725,7 @@ LABEL(nand_loop_up_l2)
- STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT nand_loop_up_l2 /* if count still positive then loop */
-- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
-
- /* extern void nor_loop_up (uintD* xptr, uintD* yptr, uintC count);
- entry
-@@ -759,7 +759,7 @@ GLABEL(nor_loop_up)
- STRGT ip,[a1],#4
- LABEL(nor_loop_up_l1)
- BICS a4,a3,#3 /* set counter to multiple of 4 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1-v5,lr} /* save work regs */
- LABEL(nor_loop_up_l2)
- LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
-@@ -775,7 +775,7 @@ LABEL(nor_loop_up_l2)
- STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT nor_loop_up_l2 /* if count still positive then loop */
-- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
-
- /* extern void andc2_loop_up (uintD* xptr, uintD* yptr, uintC count);
- entry
-@@ -805,7 +805,7 @@ GLABEL(andc2_loop_up)
- STRGT ip,[a1],#4
- LABEL(andc2_loop_up_l1)
- BICS a4,a3,#3 /* set counter to multiple of 4 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1-v5,lr} /* save work regs */
- LABEL(andc2_loop_up_l2)
- LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
-@@ -817,7 +817,7 @@ LABEL(andc2_loop_up_l2)
- STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT andc2_loop_up_l2 /* if count still positive then loop */
-- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
-
- /* extern void orc2_loop_up (uintD* xptr, uintD* yptr, uintC count);
- entry
-@@ -851,7 +851,7 @@ GLABEL(orc2_loop_up)
- STRGT ip,[a1],#4
- LABEL(orc2_loop_up_l1)
- BICS a4,a3,#3 /* set counter to multiple of 4 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1-v5,lr} /* save work regs */
- LABEL(orc2_loop_up_l2)
- LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
-@@ -867,7 +867,7 @@ LABEL(orc2_loop_up_l2)
- STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT orc2_loop_up_l2 /* if count still positive then loop */
-- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
-
- /* extern void not_loop_up (uintD* xptr, uintC count);
- entry
-@@ -893,7 +893,7 @@ GLABEL(not_loop_up)
- STRGT a3,[a1],#4
- LABEL(not_loop_up_l1)
- BICS a4,a2,#3 /* set counter to multiple of 4 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{lr} /* save work regs */
- LABEL(not_loop_up_l2)
- LDMIA a1,{a2,a3,ip,lr} /* load 4 words in one go,NO writeback */
-@@ -904,7 +904,7 @@ LABEL(not_loop_up_l2)
- STMIA a1!,{a2,a3,ip,lr} /* store 4 results */
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT not_loop_up_l2 /* if count still positive then loop */
-- LDMFD sp!,{pc}^ /* restore work regs and return */
-+ LDMFD sp!,{pc} /* restore work regs and return */
-
- /* extern void and_test_loop_up (uintD* xptr, uintD* yptr, uintC count);
- entry
-@@ -923,13 +923,13 @@ GLABEL(and_test_loop_up)
- LDR ip,[a1],#4 /* to align the total to a multiple */
- TST ip,a4 /* of 4 words */
- MOVNE a1,#1 /* return true if AND_TEST ok */
-- MOVNES pc,lr
-+ BXNE lr
- BCC and_test_loop_up_l1 /* better to branch than skip instrs. */
- LDRGE a4,[a2],#4
- LDRGE ip,[a1],#4
- TSTGE ip,a4
- MOVNE a1,#1
-- MOVNES pc,lr
-+ BXNE lr
- ANDS a4,a3,#3
- CMP a4,#2
- BLE and_test_loop_up_l1 /* better to branch than skip instrs. */
-@@ -937,11 +937,11 @@ GLABEL(and_test_loop_up)
- LDRGT ip,[a1],#4
- TSTGT ip,a4
- MOVNE a1,#1
-- MOVNES pc,lr
-+ BXNE lr
- LABEL(and_test_loop_up_l1)
- BICS a4,a3,#3 /* set counter to multiple of 4 */
- MOVEQ a1,#0 /* return false */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1-v6,lr} /* save work regs */
- MOV v6,a1 /* move xptr to v6 */
- MOV a1,#1 /* set result to true */
-@@ -952,11 +952,11 @@ LABEL(and_test_loop_up_l2)
- TSTEQ v4,v1
- TSTEQ v5,v2
- TSTEQ lr,ip
-- LDMNEFD sp!,{v1-v6,pc}^
-+ LDMNEFD sp!,{v1-v6,pc}
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT and_test_loop_up_l2 /* if count still positive then loop */
- MOV a1,#0
-- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */
-
- /* extern void test_loop_up (uintD* xptr, uintC count);
- entry
-@@ -973,21 +973,21 @@ GLABEL(test_loop_up)
- BEQ test_loop_up_l1 /* yup, so branch */
- LDR a4,[ip],#4 /* TEST the first 1-3 words */
- TEQ a4,#0 /* align the total to a multiple of 4 */
-- MOVNES pc,lr /* return true if AND_TEST ok */
-+ BXNE lr /* return true if AND_TEST ok */
- CMP a3,#2
- BLT test_loop_up_l1 /* need to branch 'cos PSR set */
- LDRGE a4,[ip],#4 /* when checking against zero */
- TEQGE a4,#0
-- MOVNES pc,lr
-+ BXNE lr
- CMP a3,#2
- BLE test_loop_up_l1 /* need to branch 'cos PSR set */
- LDRGT a4,[ip],#4 /* when checking against zero */
- TEQGT a4,#0
-- MOVNES pc,lr
-+ BXNE lr
- LABEL(test_loop_up_l1)
- BICS a4,a2,#3 /* set counter to multiple of 4 */
- MOVEQ a1,#0 /* return false */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1,lr} /* save work regs */
- LABEL(test_loop_up_l2)
- LDMIA ip!,{a2,a3,v1,lr} /* load 4 words in one go */
-@@ -995,11 +995,11 @@ LABEL(test_loop_up_l2)
- TEQEQ a3,#0
- TEQEQ v1,#0
- TEQEQ lr,#0
-- LDMNEFD sp!,{v1,pc}^
-+ LDMNEFD sp!,{v1,pc}
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT test_loop_up_l2 /* if count still positive then loop */
- MOV a1,#0
-- LDMFD sp!,{v1,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1,pc} /* restore work regs and return */
-
- /* extern void compare_loop_up (uintD* xptr, uintD* yptr, uintC count);
- entry
-@@ -1021,7 +1021,7 @@ GLABEL(compare_loop_up)
- CMP ip,a4 /* of 4 words */
- MVNLO a1,#0 /* x < y -> -1 */
- MOVHI a1,#1 /* x > y -> +1 */
-- MOVNES pc,lr /* and return result if not equal */
-+ BXNE lr /* and return result if not equal */
- ANDS a4,a3,#3
- CMP a4,#2
- BLT compare_loop_up_l1 /* need to branch 'cos PSR used */
-@@ -1030,7 +1030,7 @@ GLABEL(compare_loop_up)
- CMP ip,a4
- MVNLO a1,#0
- MOVHI a1,#1
-- MOVNES pc,lr
-+ BXNE lr
- ANDS a4,a3,#3
- CMP a4,#2
- BLE compare_loop_up_l1 /* need to branch 'cos PSR used */
-@@ -1039,11 +1039,11 @@ GLABEL(compare_loop_up)
- CMP ip,a4
- MVNLO a1,#0
- MOVHI a1,#1
-- MOVNES pc,lr
-+ BXNE lr
- LABEL(compare_loop_up_l1)
- BICS a4,a3,#3 /* set counter to multiple of 4 */
- MOVEQ a1,#0 /* xptr[] == yptr[] -> 0 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1-v6,lr} /* save work regs */
- MOV v6,a1 /* move xptr to v6 */
- MOV a1,#1 /* set result to +1 */
-@@ -1055,11 +1055,11 @@ LABEL(compare_loop_up_l2)
- CMPEQ v5,v2
- CMPEQ lr,ip
- MVNLO a1,#0 /* x < y -> -1 (a1 already holds +1) */
-- LDMNEFD sp!,{v1-v6,pc}^
-+ LDMNEFD sp!,{v1-v6,pc}
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT compare_loop_up_l2 /* if count still positive then loop */
- MOV a1,#0
-- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */
-
- /* extern uintD addto_loop_down (uintD* sourceptr, uintD* destptr, uintC count);
- entry
-@@ -1111,11 +1111,11 @@ LABEL(add_loop_down_l0) /* at l
- BICS a4,a4,#3 /* set counter to multiple of 4 */
- BNE add_loop_down_l3 /* branch if more adds to do */
- ADCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */
-- LDMEQFD sp!,{v6,pc}^ /* and return */
-+ LDMEQFD sp!,{v6,pc} /* and return */
- LABEL(add_loop_down_l1)
- BICS a4,a4,#3 /* set counter to multiple of 4 */
- MOVEQ a1,#0 /* no adds, so C = 0 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- CMN a4,#0 /* clear carry bit */
- STMFD sp!,{v6,lr}
- LABEL(add_loop_down_l3)
-@@ -1132,7 +1132,7 @@ LABEL(add_loop_down_l2)
- TEQ a4,#0 /* are we done ? */
- BNE add_loop_down_l2 /* if count non-zero then loop */
- ADC a1,a4,a4 /* set result to Carry (a4 is 0) */
-- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */
-
- /* extern uintD inc_loop_down (uintD* ptr, uintC count);
- entry
-@@ -1150,11 +1150,11 @@ GLABEL(inc_loop_down)
- ADDS a4,a4,#1 /* align the total to a multiple of 2 */
- STR a4,[a1]
- MOVNE a1,#0 /* set result to 0 */
-- MOVNES pc,lr /* return 0 if non-zero result */
-+ BXNE lr /* return 0 if non-zero result */
- LABEL(inc_loop_down_l1)
- BICS a4,a2,#1 /* set counter to multiple of 2 */
- MOVEQ a1,#1 /* return 1 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- MOV ip,a1 /* move ptr to ip */
- MOV a1,#0 /* set result to 0 */
- ANDS a3,a4,#3
-@@ -1163,10 +1163,10 @@ LABEL(inc_loop_down_l1)
- ADDS a3,a3,#1 /* INC the two words */
- ADDEQS a2,a2,#1 /* stopping when first word non-zero */
- STMDB ip!,{a2,a3} /* store 2 results */
-- MOVNES pc,lr /* return 0 if any result non-zero */
-+ BXNE lr /* return 0 if any result non-zero */
- SUBS a4,a4,#2 /* decrement counter by 2 */
- MOVEQ a1,#1 /* if finished loop then */
-- MOVEQS pc,lr /* return 1 */
-+ BXEQ lr /* return 1 */
- LABEL(inc_loop_down_l3) /* now a multiple of 4 words */
- STMFD sp!,{v1,lr} /* save work regs */
- LABEL(inc_loop_down_l2)
-@@ -1176,11 +1176,11 @@ LABEL(inc_loop_down_l2)
- ADDEQS a3,a3,#1
- ADDEQS a2,a2,#1
- STMDB ip!,{a2,a3,v1,lr} /* store 4 results */
-- LDMNEFD sp!,{v1,pc}^ /* return 0 if any result non-zero */
-+ LDMNEFD sp!,{v1,pc} /* return 0 if any result non-zero */
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT inc_loop_down_l2 /* if count still positive then loop */
- MOV a1,#1
-- LDMFD sp!,{v1,pc}^ /* restore work regs and return 1 */
-+ LDMFD sp!,{v1,pc} /* restore work regs and return 1 */
-
- /* extern uintD sub_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr,
uintC count);
- entry
-@@ -1206,7 +1206,7 @@ GLABEL(sub_loop_down)
- LABEL(sub_loop_down_l4) /* drop through for better instr. timings */
- BICS a4,a4,#3 /* set counter to multiple of 4 */
- SBCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */
-- LDMEQFD sp!,{v6,pc}^ /* and return */
-+ LDMEQFD sp!,{v6,pc} /* and return */
- STMFD sp!,{v1-v5} /* save work regs */
- B sub_loop_down_l2 /* branch if more subtracts to do */
- LABEL(sub_loop_down_l0)
-@@ -1224,7 +1224,7 @@ LABEL(sub_loop_down_l0)
- LABEL(sub_loop_down_l1)
- BICS a4,a4,#3 /* set counter to multiple of 4 */
- MOVEQ a1,#0 /* no subtracts, so C = 0 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- CMP a4,#0 /* set carry bit, since a4 > 0 */
- STMFD sp!,{v1-v6,lr} /* save work regs */
- LABEL(sub_loop_down_l2)
-@@ -1239,7 +1239,7 @@ LABEL(sub_loop_down_l2)
- TEQ a4,#0 /* are we done ? */
- BNE sub_loop_down_l2 /* if count non-zero then loop */
- SBC a1,a4,a4 /* set result to Carry (a4 is 0) */
-- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */
-
- /* extern uintD subx_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr,
uintC count, uintD carry);
- entry
-@@ -1269,7 +1269,7 @@ LABEL(subx_loop_down_lsub)
- LABEL(subx_loop_down_l4) /* drop through for better instr. timings */
- BICS a4,a4,#3 /* set counter to multiple of 4 */
- SBCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */
-- LDMEQFD sp!,{v6,pc}^ /* and return */
-+ LDMEQFD sp!,{v6,pc} /* and return */
- STMFD sp!,{v1-v5} /* save work regs */
- B subx_loop_down_l2 /* branch if more subtracts to do */
- LABEL(subx_loop_down_l0)
-@@ -1287,7 +1287,7 @@ LABEL(subx_loop_down_l0)
- LABEL(subx_loop_down_l1)
- BICS a4,a4,#3 /* set counter to multiple of 4 */
- SBCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{v1-v6,lr} /* save work regs */
- LABEL(subx_loop_down_l2)
- LDMDB a2!,{v1,v2,v3,ip} /* load 4 words in one go */
-@@ -1301,7 +1301,7 @@ LABEL(subx_loop_down_l2)
- TEQ a4,#0 /* are we done ? */
- BNE subx_loop_down_l2 /* if count non-zero then loop */
- SBC a1,a4,a4 /* set result to Carry (a4 is 0) */
-- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */
-
- /* extern uintD subfrom_loop_down (uintD* sourceptr, uintD* destptr, uintC count);
- entry
-@@ -1326,7 +1326,7 @@ GLABEL(subfrom_loop_down)
- LABEL(subfrom_loop_down_l4) /* drop through for better instr. timings */
- BICS a4,a3,#3 /* set counter to multiple of 4 */
- SBCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */
-- LDMEQFD sp!,{pc}^ /* and return */
-+ LDMEQFD sp!,{pc} /* and return */
- STMFD sp!,{v1-v5} /* save work regs */
- B subfrom_loop_down_l2 /* branch if more subtracts to do */
- LABEL(subfrom_loop_down_l0)
-@@ -1344,7 +1344,7 @@ LABEL(subfrom_loop_down_l0)
- LABEL(subfrom_loop_down_l1)
- BICS a4,a3,#3 /* set counter to multiple of 4 */
- MOVEQ a1,#0 /* no subtracts, so C = 0 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- CMP a4,#0 /* set carry bit, since a4 > 0 */
- STMFD sp!,{v1-v5,lr} /* save work regs */
- LABEL(subfrom_loop_down_l2)
-@@ -1359,7 +1359,7 @@ LABEL(subfrom_loop_down_l2)
- TEQ a4,#0 /* are we done ? */
- BNE subfrom_loop_down_l2 /* if count non-zero then loop */
- SBC a1,a4,a4 /* set result to Carry (a4 is 0) */
-- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
-
- /* extern uintD dec_loop_down (uintD* ptr, uintC count);
- entry
-@@ -1377,11 +1377,11 @@ GLABEL(dec_loop_down)
- SUBS a4,a4,#1 /* align the total to a multiple of 2 */
- STR a4,[a1]
- MOVCS a1,#0 /* set result to 0 */
-- MOVCSS pc,lr /* return 0 if non-zero result */
-+ BXCS lr /* return 0 if non-zero result */
- LABEL(dec_loop_down_l1)
- BICS a4,a2,#1 /* set counter to multiple of 2 */
- MVNEQ a1,#0 /* return -1 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- MOV ip,a1 /* move ptr to ip */
- MOV a1,#0 /* set result to 0 */
- ANDS a3,a4,#3
-@@ -1390,10 +1390,10 @@ LABEL(dec_loop_down_l1)
- SUBS a3,a3,#1 /* DEC the two words */
- SUBCCS a2,a2,#1 /* stopping when first word non-zero */
- STMDB ip!,{a2,a3} /* store 2 results */
-- MOVCSS pc,lr /* return 0 if any result non-zero */
-+ BXCS lr /* return 0 if any result non-zero */
- SUBS a4,a4,#2 /* decrement counter by 2 */
- MVNEQ a1,#0 /* if finished loop then */
-- MOVEQS pc,lr /* return -1 */
-+ BXEQ lr /* return -1 */
- LABEL(dec_loop_down_l3) /* now a multiple of 4 words */
- STMFD sp!,{v1,lr} /* save work regs */
- LABEL(dec_loop_down_l2)
-@@ -1403,11 +1403,11 @@ LABEL(dec_loop_down_l2)
- SUBCCS a3,a3,#1
- SUBCCS a2,a2,#1
- STMDB ip!,{a2,a3,v1,lr} /* store 4 results */
-- LDMCSFD sp!,{v1,pc}^ /* return 0 if any carry */
-+ LDMCSFD sp!,{v1,pc} /* return 0 if any carry */
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT dec_loop_down_l2 /* if count still positive then loop */
- MVN a1,#0
-- LDMFD sp!,{v1,pc}^ /* restore work regs and return -1 */
-+ LDMFD sp!,{v1,pc} /* restore work regs and return -1 */
-
- /* extern void neg_loop_down (uintD* ptr, uintC count);
- entry
-@@ -1421,7 +1421,7 @@ LABEL(dec_loop_down_l2)
- GLABEL(neg_loop_down)
- CMPS a2,#0 /* count = 0 ? */
- MOVEQ a1,#0 /* yup, so return 0 */
-- MOVEQS pc,lr
-+ BXEQ lr
- LABEL(neg_loop_down_l1) /* skip all the zero words first */
- LDR a3,[a1,#-4]! /* compare words against zero */
- CMPS a3,#0 /* downwards in memory */
-@@ -1429,13 +1429,13 @@ LABEL(neg_loop_down_l1) /* skip
- SUBS a2,a2,#1 /* reduce count of words */
- BNE neg_loop_down_l1 /* more ?, so loop */
- MOV a1,#0 /* return 0 */
-- MOVS pc,lr
-+ BX lr
- LABEL(neg_loop_down_l2)
- RSB a3,a3,#0 /* first non-zero word = -word */
- STR a3,[a1]
- SUBS a2,a2,#1
- MVNEQ a1,#0 /* done ? -> return -1 */
-- MOVEQS pc,lr
-+ BXEQ lr
- /* now NOT rest of the words */
- ANDS a3,a2,#3 /* multiple of 4 words ? */
- BEQ neg_loop_down_l3 /* yup, so branch */
-@@ -1453,7 +1453,7 @@ LABEL(neg_loop_down_l2)
- LABEL(neg_loop_down_l3)
- BICS a4,a2,#3 /* set counter to multiple of 4 */
- MVNEQ a1,#0 /* set result to -1 */
-- MOVEQS pc,lr /* if zero then we're done */
-+ BXEQ lr /* if zero then we're done */
- STMFD sp!,{lr} /* save work regs */
- LABEL(neg_loop_down_l4)
- LDMDB a1,{a2,a3,ip,lr} /* load 4 words in one go,NO writeback */
-@@ -1465,7 +1465,7 @@ LABEL(neg_loop_down_l4)
- SUBS a4,a4,#4 /* decrement counter by 4 */
- BGT neg_loop_down_l4 /* if count still positive then loop */
- MVN a1,#0 /* set result to -1 */
-- LDMFD sp!,{pc}^ /* restore work regs and return -1 */
-+ LDMFD sp!,{pc} /* restore work regs and return -1 */
-
- /* extern uintD shift1left_loop_down (uintD* ptr, uintC count);
- entry
-@@ -1485,7 +1485,7 @@ GLABEL(shift1left_loop_down)
- LABEL(shift1left_loop_down_l1)
- BICS a4,a2,#1 /* set counter to multiple of 2 */
- ADCEQ a1,a4,a4 /* if zero set result to C (a4 is 0) */
-- MOVEQS pc,lr /* and return */
-+ BXEQ lr /* and return */
- ANDS a3,a4,#3 /* multiple of 4 words ? */
- BEQ shift1left_loop_down_l3 /* yup, so branch */
- LDMDB a1,{a2,a3} /* load 2 words in one go */
-@@ -1494,7 +1494,7 @@ LABEL(shift1left_loop_down_l1)
- STMDB a1!,{a2,a3} /* store 2 results */
- BICS a4,a4,#2 /* decrement counter by 2 */
- ADCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */
-- MOVEQS pc,lr /* and return */
-+ BXEQ lr /* and return */
- LABEL(shift1left_loop_down_l3) /* now a multiple of 4 words */
- STMFD sp!,{lr} /* save work regs */
- LABEL(shift1left_loop_down_l2)
-@@ -1508,7 +1508,7 @@ LABEL(shift1left_loop_down_l2)
- TEQ a4,#0 /* are we done ? */
- BNE shift1left_loop_down_l2 /* if count non-zero then loop */
- ADC a1,a4,a4 /* set result to Carry (a4 is 0) */
-- LDMFD sp!,{pc}^ /* restore work regs and return 1 */
-+ LDMFD sp!,{pc} /* restore work regs and return 1 */
-
- /* extern uintD shiftleft_loop_down (uintD* ptr, uintC count, uintC i, uintD carry);
- entry
-@@ -1542,7 +1542,7 @@ GLABEL(shiftleft_loop_down)
- LABEL(shiftleft_loop_down_l1)
- BICS ip,a2,#3 /* set counter to multiple of 4 */
- MOVEQ a1,a4 /* if zero then we're done */
-- LDMEQFD sp!,{v6,pc}^ /* so return last shift out */
-+ LDMEQFD sp!,{v6,pc} /* so return last shift out */
- STMFD sp!,{v1-v3} /* save work regs */
- LABEL(shiftleft_loop_down_l2)
- LDMDB a1,{a2,v1,v2,v3} /* load 4 words in one go */
-@@ -1558,7 +1558,7 @@ LABEL(shiftleft_loop_down_l2)
- SUBS ip,ip,#4 /* decrement counter by 4 */
- BGT shiftleft_loop_down_l2 /* if count still positive then loop */
- MOV a1,a4 /* result = last shift out */
-- LDMFD sp!,{v1-v3,v6,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v3,v6,pc} /* restore work regs and return */
-
- /* extern uintD shiftleftcopy_loop_down (uintD* sourceptr, uintD* destptr, uintC count,
uintC i);
- entry
-@@ -1593,7 +1593,7 @@ GLABEL(shiftleftcopy_loop_down)
- LABEL(shiftleftcopy_loop_down_l1)
- BICS ip,a3,#3 /* set counter to multiple of 4 */
- MOVEQ a1,v5 /* if zero then we're done */
-- LDMEQFD sp!,{v5,v6,pc}^ /* so return last shift out */
-+ LDMEQFD sp!,{v5,v6,pc} /* so return last shift out */
- STMFD sp!,{v1-v3} /* save work regs */
- LABEL(shiftleftcopy_loop_down_l2)
- LDMDB a1!,{a3,v1,v2,v3} /* load 4 words in one go */
-@@ -1609,7 +1609,7 @@ LABEL(shiftleftcopy_loop_down_l2)
- SUBS ip,ip,#4 /* decrement counter by 4 */
- BGT shiftleftcopy_loop_down_l2 /* if count still positive then loop */
- MOV a1,v5 /* result = last shift out */
-- LDMFD sp!,{v1-v3,v5,v6,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v3,v5,v6,pc} /* restore work regs and return */
-
- /* extern uintD shift1right_loop_up (uintD* ptr, uintC count, uintD carry);
- entry
-@@ -1630,7 +1630,7 @@ GLABEL(shift1right_loop_up)
- LABEL(shift1right_loop_up_l1)
- BICS a4,a2,#1 /* set counter to multiple of 2 */
- MOVEQ a1,a4,RRX /* if zero set result to C (a4 is 0) */
-- MOVEQS pc,lr /* and return */
-+ BXEQ lr /* and return */
- ANDS a3,a4,#3 /* multiple of 4 words ? */
- BEQ shift1right_loop_up_l3 /* yup, so branch */
- LDMIA a1,{a2,a3} /* load 2 words in one go */
-@@ -1639,7 +1639,7 @@ LABEL(shift1right_loop_up_l1)
- STMIA a1!,{a2,a3} /* store 2 results */
- BICS a4,a4,#2 /* decrement counter by 2 */
- ADCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */
-- MOVEQS pc,lr /* and return */
-+ BXEQ lr /* and return */
- LABEL(shift1right_loop_up_l3) /* now a multiple of 4 words */
- STMFD sp!,{lr} /* save work regs */
- LABEL(shift1right_loop_up_l2)
-@@ -1653,7 +1653,7 @@ LABEL(shift1right_loop_up_l2)
- TEQ a4,#0 /* are we done ? */
- BNE shift1right_loop_up_l2 /* if count non-zero then loop */
- MOV a1,a4,RRX /* set result to Carry (a4 is 0) */
-- LDMFD sp!,{pc}^ /* restore work regs and return 1 */
-+ LDMFD sp!,{pc} /* restore work regs and return 1 */
-
- /* extern uintD shiftright_loop_up (uintD* ptr, uintC count, uintC i);
- entry
-@@ -1688,7 +1688,7 @@ LABEL(shiftright_loop_up_l0)
- LABEL(shiftright_loop_up_l1)
- BICS ip,a2,#3 /* set counter to multiple of 4 */
- MOVEQ a1,a4 /* if zero then we're done */
-- LDMEQFD sp!,{v6,pc}^ /* so return last shift out */
-+ LDMEQFD sp!,{v6,pc} /* so return last shift out */
- STMFD sp!,{v1-v3} /* save work regs */
- LABEL(shiftright_loop_up_l2)
- LDMIA a1,{v1,v2,v3,lr} /* load 4 words in one go */
-@@ -1704,7 +1704,7 @@ LABEL(shiftright_loop_up_l2)
- SUBS ip,ip,#4 /* decrement counter by 4 */
- BGT shiftright_loop_up_l2 /* if count still positive then loop */
- MOV a1,a4 /* result = last shift out */
-- LDMFD sp!,{v1-v3,v6,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v3,v6,pc} /* restore work regs and return */
-
- /* extern uintD shiftrightsigned_loop_up (uintD* ptr, uintC count, uintC i);
- entry
-@@ -1759,7 +1759,7 @@ LABEL(shiftrightcopy_loop_up_l0)
- LABEL(shiftrightcopy_loop_up_l1)
- BICS ip,a3,#3 /* set counter to multiple of 4 */
- MOVEQ a1,v5 /* if zero then we're done */
-- LDMEQFD sp!,{v5,v6,pc}^ /* so return last shift out */
-+ LDMEQFD sp!,{v5,v6,pc} /* so return last shift out */
- STMFD sp!,{v1-v3} /* save work regs */
- LABEL(shiftrightcopy_loop_up_l2)
- LDMIA a1!,{v1,v2,v3,lr} /* load 4 words in one go */
-@@ -1775,7 +1775,7 @@ LABEL(shiftrightcopy_loop_up_l2)
- SUBS ip,ip,#4 /* decrement counter by 4 */
- BGT shiftrightcopy_loop_up_l2 /* if count still positive then loop */
- MOV a1,v5 /* result = last shift out */
-- LDMFD sp!,{v1-v3,v5,v6,pc}^ /* restore work regs and return */
-+ LDMFD sp!,{v1-v3,v5,v6,pc} /* restore work regs and return */
-
- #ifndef HAVE_umull
- /* mulu32_64_vregs
-@@ -1800,7 +1800,7 @@ LABEL(mulu32_64_vregs)
- ADDCS v2,v2,#0x10000 /* carry from above add */
- ADDS v1,v4,ip,LSL #16 /* x is now bottom 32 bits of result */
- ADC ip,v2,ip,LSR #16 /* hi is top 32 bits */
-- MOVS pc,lr
-+ BX lr
- #endif /* HAVE_umull */
-
- /* extern uintD mulusmall_loop_down (uintD digit, uintD* ptr, uintC len, uintD
newdigit);
-@@ -1816,7 +1816,7 @@ LABEL(mulu32_64_vregs)
- GLABEL(mulusmall_loop_down)
- CMP a3,#0
- MOVEQ a1,a4
-- MOVEQS pc,lr
-+ BXEQ lr
- #ifdef HAVE_umull
- STMFD sp!,{v1,lr}
- LABEL(mulusmall_loop_down_l1)
-@@ -1828,7 +1828,7 @@ LABEL(mulusmall_loop_down_l1)
- SUBS a3,a3,#1 /* len-- */
- BNE mulusmall_loop_down_l1 /* until len==0 */
- MOV a1,a4 /* return carry */
-- LDMFD sp!,{v1,pc}^
-+ LDMFD sp!,{v1,pc}
- #else
- STMFD sp!,{v1-v2,lr}
- LABEL(mulusmall_loop_down_l1)
-@@ -1850,7 +1850,7 @@ LABEL(mulusmall_loop_down_l1)
- SUBS a3,a3,#1 /* len-- */
- BNE mulusmall_loop_down_l1 /* until len==0 */
- MOV a1,a4 /* return carry */
-- LDMFD sp!,{v1-v2,pc}^
-+ LDMFD sp!,{v1-v2,pc}
- #endif
-
- /* extern void mulu_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC
len);
-@@ -1875,7 +1875,7 @@ LABEL(mulu_loop_down_l1)
- SUBS a4,a4,#1 /* len-- */
- BNE mulu_loop_down_l1 /* until len==0 */
- STR v5,[a3,#-4]! /* *--destptr = carry */
-- LDMFD sp!,{v1,v5,pc}^
-+ LDMFD sp!,{v1,v5,pc}
- #else
- STMFD sp!,{v1-v5,lr}
- MOV v5,#0
-@@ -1888,7 +1888,7 @@ LABEL(mulu_loop_down_l1)
- SUBS a4,a4,#1 /* len-- */
- BNE mulu_loop_down_l1 /* until len==0 */
- STR v5,[a3,#-4]! /* *--destptr = carry */
-- LDMFD sp!,{v1-v5,pc}^
-+ LDMFD sp!,{v1-v5,pc}
- #endif
-
- /* extern void muluadd_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC
len);
-@@ -1916,7 +1916,7 @@ LABEL(muluadd_loop_down_l1)
- SUBS a4,a4,#1 /* len-- */
- BNE muluadd_loop_down_l1 /* until len==0 */
- MOV a1,v5 /* return carry */
-- LDMFD sp!,{v1,v5,pc}^
-+ LDMFD sp!,{v1,v5,pc}
- #else
- STMFD sp!,{v1-v5,lr}
- MOV v5,#0
-@@ -1932,7 +1932,7 @@ LABEL(muluadd_loop_down_l1)
- SUBS a4,a4,#1 /* len-- */
- BNE muluadd_loop_down_l1 /* until len==0 */
- MOV a1,v5 /* return carry */
-- LDMFD sp!,{v1-v5,pc}^
-+ LDMFD sp!,{v1-v5,pc}
- #endif
-
- /* extern void mulusub_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC
len);
-@@ -1960,7 +1960,7 @@ LABEL(mulusub_loop_down_l1)
- SUBS a4,a4,#1 /* len-- */
- BNE mulusub_loop_down_l1 /* until len==0 */
- MOV a1,v5 /* return carry */
-- LDMFD sp!,{v1,v5,pc}^
-+ LDMFD sp!,{v1,v5,pc}
- #else
- STMFD sp!,{v1-v5,lr}
- MOV v5,#0
-@@ -1976,7 +1976,7 @@ LABEL(mulusub_loop_down_l1)
- SUBS a4,a4,#1 /* len-- */
- BNE mulusub_loop_down_l1 /* until len==0 */
- MOV a1,v5 /* return carry */
-- LDMFD sp!,{v1-v5,pc}^
-+ LDMFD sp!,{v1-v5,pc}
- #endif
-
- END
diff --git a/clisp-db.patch b/clisp-db.patch
index 60c9495..e30179d 100644
--- a/clisp-db.patch
+++ b/clisp-db.patch
@@ -1,16 +1,5 @@
---- modules/berkeley-db/configure.orig 2017-02-24 10:37:24.000000000 -0700
-+++ modules/berkeley-db/configure 2017-02-24 10:42:31.636232558 -0700
-@@ -5297,7 +5297,7 @@ if ${ac_cv_dbe_set_errcall_accept_dbe+:}
- else
-
- CFLAGS_save="$CFLAGS"
--CFLAGS="$CFLAGS -Werror"
-+CFLAGS="$CFLAGS -Wno-uninitialized -Werror"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
- #include <db.h>
---- modules/berkeley-db/configure.in.orig 2017-02-24 10:37:24.000000000 -0700
-+++ modules/berkeley-db/configure.in 2017-02-24 10:42:31.636232558 -0700
+--- modules/berkeley-db/configure.in.orig 2018-04-23 07:44:21.000000000 -0600
++++ modules/berkeley-db/configure.in 2018-06-21 20:30:56.502368686 -0600
@@ -48,7 +48,7 @@ dnl <
http://www.sleepycat.com/docs/ref/u
AC_CACHE_CHECK([whether DB_ENV->set_errcall() accepts DBE],
ac_cv_dbe_set_errcall_accept_dbe,[
@@ -20,3 +9,14 @@
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <db.h>
void my_callback (const DB_ENV* dbe, const char *errpfx, const char *msg) {}],
[[DB_ENV dbe; dbe.set_errcall(&dbe,&my_callback);]])],
+--- modules/berkeley-db/configure.orig 2018-04-23 07:44:21.000000000 -0600
++++ modules/berkeley-db/configure 2018-06-21 20:30:56.504368682 -0600
+@@ -5814,7 +5814,7 @@ if ${ac_cv_dbe_set_errcall_accept_dbe+:}
+ else
+
+ CFLAGS_save="$CFLAGS"
+-CFLAGS="$CFLAGS -Werror"
++CFLAGS="$CFLAGS -Wno-uninitialized -Werror"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ #include <db.h>
diff --git a/clisp-format.patch b/clisp-format.patch
index 6ac77ef..e029fe1 100644
--- a/clisp-format.patch
+++ b/clisp-format.patch
@@ -1,145 +1,33 @@
---- src/errunix.d.orig 2017-02-24 10:37:24.000000000 -0700
-+++ src/errunix.d 2017-02-24 10:41:33.217732236 -0700
-@@ -94,7 +94,7 @@ global _Noreturn void OS_error_arg (obje
- > FILE: Filename (with quotation marks) as constant ASCIZ-String
- > LINE: line number */
- global void errno_out_low (int errorcode, const char* file, uintL line) {
-- fprintf(stderr,"\n[%s:%d] errno = %d", file, line, errorcode);
-+ fprintf(stderr,"\n[%s:%" PRIul "] errno = %d", file, line,
errorcode);
- var object code = ANSIC_error_code_converter(errorcode);
- if (symbolp(code)) { /* known name? */
- fputs(" (",stderr);
---- src/lispbibl.d.orig 2017-02-24 10:37:24.000000000 -0700
-+++ src/lispbibl.d 2017-02-24 10:41:33.223732185 -0700
-@@ -1013,7 +1013,7 @@
- #endif
- typedef unsigned char UBYTE;
- #else
-- #error No 8 bit integer type? -- Which Interger-type has 8 Bit?
-+ #error No 8 bit integer type? -- Which Integer-type has 8 Bit?
- #endif
- #if (short_bitsize==16)
- typedef short SWORD;
-@@ -1024,26 +1024,36 @@
- #if (long_bitsize==32)
- typedef long SLONG;
- typedef unsigned long ULONG;
-+ #define PRIsl "ld"
-+ #define PRIul "lu"
- #elif (int_bitsize==32)
- typedef int SLONG;
- typedef unsigned int ULONG;
-+ #define PRIsl "d"
-+ #define PRIul "u"
- #else
- #error No 32 bit integer type? -- Which Integer-type has 32 Bit?
- #endif
- #if (long_bitsize==64) && !defined(UNIX_CYGWIN32)
- typedef long SLONGLONG;
- typedef unsigned long ULONGLONG;
-+ #define PRIsll "ld"
-+ #define PRIull "lu"
- #ifndef HAVE_LONG_LONG_INT
- #define HAVE_LONG_LONG_INT
- #endif
- #elif defined(MICROSOFT)
- typedef __int64 SLONGLONG;
- typedef unsigned __int64 ULONGLONG;
-+ #define PRIsll "I64d"
-+ #define PRIull "I64u"
- #define HAVE_LONG_LONG_INT
- #elif defined(HAVE_LONG_LONG_INT)
- #if defined(long_long_bitsize) && (long_long_bitsize==64)
- typedef long long SLONGLONG;
- typedef unsigned long long ULONGLONG;
-+ #define PRIsll "lld"
-+ #define PRIull "llu"
- #else /* useless type */
- #undef HAVE_LONG_LONG_INT
- #endif
-@@ -1685,10 +1695,14 @@ typedef unsigned_int_with_n_bits(intBWLs
- #if (intCsize==intWsize)
- #define dotimesC dotimesW
- #define dotimespC dotimespW
-+ #define PRIuintC "hu"
-+ #define PRIsintC "hd"
- #endif
- #if (intCsize==intLsize)
- #define dotimesC dotimesL
- #define dotimespC dotimespL
-+ #define PRIuintC PRIul
-+ #define PRIsintC PRIsl
- #endif
- /* Use 'uintC' for counters, which are small most of the time. */
- %% export_def(uintC);
---- src/spvw_debug.d.orig 2017-02-24 10:37:24.000000000 -0700
-+++ src/spvw_debug.d 2017-02-24 10:41:33.224732176 -0700
-@@ -81,7 +81,7 @@ local void nobject_out1 (FILE* out, obje
- fputc('"',out);
- } else if (charp(obj)) {
- object name = char_name(char_code(obj));
-- fprintf(out,"[%c]",as_cint(char_code(obj)));
-+ fprintf(out,"[%c]",(int)as_cint(char_code(obj)));
- if (!nullp(name)) {
- fputs("=#\\",out);
- string_out(out,name);
-@@ -120,8 +120,8 @@ local void nobject_out1 (FILE* out, obje
- fputc(')',out);
- } else if (arrayp(obj)) {
- fprintf(out,"#<array %d",Array_type(obj));
-- if (mdarrayp(obj)) fprintf(out," rank=%d",Iarray_rank(obj));
-- else fprintf(out," len=%d",vector_length(obj));
-+ if (mdarrayp(obj)) fprintf(out," rank=%" PRIul,Iarray_rank(obj));
-+ else fprintf(out," len=%" PRIul,vector_length(obj));
- fprintf(out," 0x%lx>",as_oint(obj));
- } else if (functionp(obj)) {
- fputs("#<",out);
-@@ -182,7 +182,7 @@ local void nobject_out1 (FILE* out, obje
- fputc(')',out);
- } else if (hash_table_p(obj)) {
- fputs("#(",out); XOUT(S(hash_table));
-- fprintf(out," size=%u maxcount=%u mincount=%u\n",
-+ fprintf(out," size=%" PRIul " maxcount=%" PRIul "
mincount=%" PRIul "\n",
- TheHashtable(obj)->ht_size,
- (uintL)posfixnum_to_V(TheHashtable(obj)->ht_maxcount),
- (uintL)posfixnum_to_V(TheHashtable(obj)->ht_mincount));
-@@ -281,10 +281,10 @@ local void nobject_out1 (FILE* out, obje
- case DRIVER_frame_info: fputs("DRIVER",out); break;
- default: fputs("**UNKNOWN**",out);
- }
-- fprintf(out," %d>",STACK_item_count(uTheFramepointer(obj),
-+ fprintf(out," %" PRIul
">",STACK_item_count(uTheFramepointer(obj),
- (gcv_object_t*)STACK_start));
- } else if (builtin_stream_p(obj)) {
-- fprintf(out,"#<built-in-stream type=%d flags=%d len=%d xlen=%d
slen=%ld",
-+ fprintf(out,"#<built-in-stream type=%d flags=%d len=%" PRIul "
xlen=%" PRIul " slen=%zd",
- TheStream(obj)->strmtype,TheStream(obj)->strmflags,
- Stream_length(obj),Stream_xlength(obj),strm_len);
- switch (TheStream(obj)->strmtype) {
-@@ -358,13 +358,13 @@ local int back_trace_depth (const struct
- /* print a single struct backtrace_t object
- the caller must do begin_system_call()/end_system_call() ! */
- local void bt_out (FILE* out, const struct backtrace_t *bt, uintL bt_index) {
-- fprintf(out,"[%d/0x%lx]%s ",bt_index,(uintP)bt,
-+ fprintf(out,"[%" PRIul "/0x%lx]%s ",bt_index,(uintP)bt,
- bt_beyond_stack_p(bt,STACK)?"<":">");
- nobject_out(out,bt->bt_function);
- if (bt->bt_num_arg >= 0)
- fprintf(out," %d args",bt->bt_num_arg);
- if (bt->bt_next)
-- fprintf(out," delta: STACK=%ud; SP=%ld",
-+ fprintf(out," delta: STACK=%" PRIul "; SP=%lu",
- STACK_item_count(top_of_back_trace_frame(bt),
- top_of_back_trace_frame(bt->bt_next)),
- (((long)((char*)(bt->bt_next) - (char*)bt) ^ SPoffset) - SPoffset)
---- src/spvw_memfile.d.orig 2017-02-24 10:37:24.000000000 -0700
-+++ src/spvw_memfile.d 2017-02-24 10:41:33.225732167 -0700
-@@ -1817,7 +1817,7 @@ local void loadmem_from_handle (Handle h
- (uintL)posfixnum_to_V(header._dumptime.seconds));
- #endif
- char memdumptime[10+1];
-- sprintf(memdumptime,"%u",header._dumptime);
-+ sprintf(memdumptime,"%" PRIul,header._dumptime);
- O(memory_image_timestamp) = ascii_to_string(memdumptime);
- O(memory_image_host) = asciz_to_string(header._dumphost,
- Symbol_value(S(utf_8)));
+--- src/spvw_fault.d.orig 2017-10-08 11:45:53.000000000 -0600
++++ src/spvw_fault.d 2018-02-18 12:41:32.934240135 -0700
+@@ -289,7 +289,7 @@ modexp bool handle_fault_range (int prot
+
+ local void xmprotect (aint addr, uintM len, int prot) {
+ if (mprotect((void*)addr,len,prot) < 0) {
+- fprintf(stderr,GETTEXTL("mprotect(0x%lx,%d,%d) failed."),addr,len,prot);
++ fprintf(stderr,GETTEXTL("mprotect(0x%lx,%lu,%d) failed."),addr,(unsigned
long)len,prot);
+ errno_out(OS_errno);
+ abort();
+ }
+--- src/spvw_language.d.orig 2017-05-25 09:49:04.000000000 -0600
++++ src/spvw_language.d 2018-02-18 12:41:32.934240135 -0700
+@@ -172,7 +172,7 @@ global void init_language
+ { /* Invalidate the gettext internal caches. */
+ char *td = textdomain(NULL);
+ if (NULL == td) {
+- ANSIC_ERROR("textdomain",NULL);
++ ANSIC_ERROR("textdomain","");
+ }
+ if (NULL == textdomain(td)) {
+ ANSIC_ERROR("textdomain",td);
+--- src/spvw_sigsegv.d.orig 2018-01-09 16:04:26.000000000 -0700
++++ src/spvw_sigsegv.d 2018-03-03 13:52:32.985798284 -0700
+@@ -62,7 +62,7 @@ local void print_mem_stats (void) {
+ /* Put a breakpoint here if you want to catch CLISP just before it dies. */
+ global void sigsegv_handler_failed (void* address) {
+ fprint(stderr,"\n");
+- fprintf(stderr,GETTEXTL("SIGSEGV cannot be cured. Fault address = 0x%lx."),
++ fprintf(stderr,GETTEXTL("SIGSEGV cannot be cured. Fault address = %p."),
+ address);
+ fprint(stderr,"\n");
+ print_mem_stats();
diff --git a/clisp-libsvm.patch b/clisp-libsvm.patch
deleted file mode 100644
index a037801..0000000
--- a/clisp-libsvm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- modules/libsvm/libsvm.lisp.orig 2017-02-24 10:37:24.000000000 -0700
-+++ modules/libsvm/libsvm.lisp 2017-02-24 10:42:20.857324755 -0700
-@@ -31,7 +31,7 @@
- (c-lines "
- #if !defined(HAVE_SVM_DESTROY_MODEL)
- # if defined(HAVE_SVM_FREE_AND_DESTROY_MODEL)
--void svm_destroy_model (svm_model *model){ svm_free_and_destroy_model(&model); }
-+void svm_destroy_model (struct svm_model *model){
svm_free_and_destroy_model(&model); }
- # else
- # error No svm_destroy_model and no svm_free_and_destroy_model!
- # endif
diff --git a/clisp-linux.patch b/clisp-linux.patch
deleted file mode 100644
index 8f8c760..0000000
--- a/clisp-linux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- modules/bindings/glibc/linux.lisp.orig 2017-02-24 10:37:24.000000000 -0700
-+++ modules/bindings/glibc/linux.lisp 2017-02-24 10:42:45.491114052 -0700
-@@ -294,6 +294,8 @@
- ;; for robust mutexes
- (def-c-const EOWNERDEAD (:documentation "Owner died")) ; 130
- (def-c-const ENOTRECOVERABLE (:documentation "State not recoverable")) ; 131
-+(def-c-const ERFKILL (:documentation "Operation not possible due to RF-kill"))
; 132
-+(def-c-const EHWPOISON (:documentation "Memory page has hardware error")) ;
133
-
- ; -------------------------- <bits/errno.h> -----------------------------------
-
diff --git a/clisp-negshift.patch b/clisp-negshift.patch
deleted file mode 100644
index 8a1123f..0000000
--- a/clisp-negshift.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-diff -up clisp-2.49.93/src/aridecl.d.negshift clisp-2.49.93/src/aridecl.d
---- clisp-2.49.93/src/aridecl.d.negshift 2018-02-26 11:22:55.000000000 -0500
-+++ clisp-2.49.93/src/aridecl.d 2018-02-26 11:37:34.006610477 -0500
-@@ -163,9 +163,9 @@
- /* Creates a single float from sign (0 or -1), exponent and mantissa: */
- #define make_FF(sign,exp,mant) \
- type_data_object(FF_type | (bit(vorz_bit_t) & (sign)), \
-- (ffloat)((sign) << (FF_exp_len+FF_mant_len) \
-- | (((exp) & (bit(FF_exp_len)-1)) << FF_mant_len) \
-- | ((mant) & (bit(FF_mant_len)-1))))
-+ (ffloat)(((unsigned int)(sign)) << (FF_exp_len+FF_mant_len) \
-+ | ((((unsigned int)exp) & (bit(FF_exp_len)-1)) << FF_mant_len)
\
-+ | (((unsigned int)mant) & (bit(FF_mant_len)-1))))
- /* Single Float 0.0 : */
- #define FF_0 make_FF(0,0,0)
- /* Single Float 1.0 : */
-diff -up clisp-2.49.93/src/lispbibl.d.negshift clisp-2.49.93/src/lispbibl.d
---- clisp-2.49.93/src/lispbibl.d.negshift 2018-02-26 11:37:33.998610668 -0500
-+++ clisp-2.49.93/src/lispbibl.d 2018-02-26 11:37:34.008610429 -0500
-@@ -1360,9 +1360,9 @@ typedef signed int signean;
- #endif
- #endif
- /* Minus bit number n (0<=n<32) */
--#define minus_bit(n) (-1L<<(n))
-+#define minus_bit(n) ((long)(((unsigned long)-1L)<<(n)))
- /* Minus bit number n (0<n<=32) mod 2^32 */
--#define minus_bitm(n) (-2L<<((n)-1))
-+#define minus_bitm(n) ((long)(((unsigned long)-2L)<<((n)-1)))
- %% export_def(bit(n));
- %% #if notused
- %% export_def(bitm(n));
-@@ -5488,7 +5488,7 @@ typedef signed_int_with_n_bits(intVsize)
- #define vbit(n) (LL(1)<<(n))
- #define vbitm(n) (LL(2)<<((n)-1))
- #define vbit_test(x,n) ((x) & vbit(n))
-- #define minus_vbit(n) (-LL(1)<<(n))
-+ #define minus_vbit(n) ((long long)(((unsigned long long)-LL(1))<<(n)))
- #else
- #define vbit bit
- #define vbitm bitm
-@@ -8060,7 +8060,7 @@ typedef unsigned_int_with_n_bits(char_in
- > delta: a constant
- < result: incremented fixnum */
- #define fixnum_inc(obj,delta) \
-- objectplus(obj, (soint)(delta) << oint_data_shift)
-+ objectplus(obj, (oint)(delta) << oint_data_shift)
- %% export_def(fixnum_inc(obj,delta));
-
- /* posfixnum(x) is a fixnum with value x>=0. */
-diff -up clisp-2.49.93/src/spvw_gcmark.d.negshift clisp-2.49.93/src/spvw_gcmark.d
---- clisp-2.49.93/src/spvw_gcmark.d.negshift 2018-02-26 11:22:55.000000000 -0500
-+++ clisp-2.49.93/src/spvw_gcmark.d 2018-02-26 11:38:05.018870433 -0500
-@@ -43,7 +43,7 @@ local void gc_mark (object obj)
- goto down; /* and descent */ \
- }
- #define up_varobject(first_offset) \
-- { curr = objectplus(pred,-(soint)(first_offset)<<(oint_addr_shift-addr_shift));
/* becomes current object */ \
-+ { curr =
objectplus(pred,((oint)-(soint)(first_offset))<<(oint_addr_shift-addr_shift)); /*
becomes current object */ \
- pred = prepred; goto up; /* go further up */ \
- }
- #define down_nopointers(The) \
-@@ -68,7 +68,7 @@ local void gc_mark (object obj)
- goto down; /* and descent */ \
- }
- #define up_iarray() \
-- { curr =
objectplus(pred,-(soint)iarray_data_offset<<(oint_addr_shift-addr_shift)); /* array
becomes current object */ \
-+ { curr =
objectplus(pred,((oint)-(soint)iarray_data_offset)<<(oint_addr_shift-addr_shift));
/* array becomes current object */ \
- pred = prepred; goto up; /* go further up */ \
- }
- #define down_sistring() \
-@@ -88,7 +88,7 @@ local void gc_mark (object obj)
- goto down; /* and descent */ \
- }
- #define up_sistring() \
-- { curr =
objectplus(pred,-(soint)sistring_data_offset<<(oint_addr_shift-addr_shift)); /*
array becomes current object */ \
-+ { curr =
objectplus(pred,((oint)-(soint)sistring_data_offset)<<(oint_addr_shift-addr_shift));
/* array becomes current object */ \
- pred = prepred; goto up; /* go further up */ \
- }
- #define down_svector() \
-@@ -114,7 +114,7 @@ local void gc_mark (object obj)
- goto down; /* and descent */ \
- }}
- #define up_svector() \
-- { curr =
objectplus(pred,-(soint)offsetofa(svector_,data)<<(oint_addr_shift-addr_shift)); /*
Svector becomes current object */ \
-+ { curr =
objectplus(pred,((oint)-(soint)offsetofa(svector_,data))<<(oint_addr_shift-addr_shift));
/* Svector becomes current object */ \
- pred = prepred; goto up; /* go further up */ \
- }
- #define down_lrecord() \
-@@ -140,7 +140,7 @@ local void gc_mark (object obj)
- goto down; /* and descent */ \
- }}
- #define up_lrecord() \
-- { curr =
objectplus(pred,-(soint)offsetofa(record_,recdata)<<(oint_addr_shift-addr_shift));
/* Lrecord becomes current object */ \
-+ { curr =
objectplus(pred,((oint)-(soint)offsetofa(record_,recdata))<<(oint_addr_shift-addr_shift));
/* Lrecord becomes current object */ \
- pred = prepred; goto up; /* go further up */ \
- }
- #define down_sxrecord() \
-@@ -177,7 +177,7 @@ local void gc_mark (object obj)
- #define down_cclosure()
- #endif
- #define up_sxrecord() \
-- { curr =
objectplus(pred,-(soint)offsetofa(record_,recdata)<<(oint_addr_shift-addr_shift));
/* record becomes current object */ \
-+ { curr =
objectplus(pred,((oint)-(soint)offsetofa(record_,recdata))<<(oint_addr_shift-addr_shift));
/* record becomes current object */ \
- pred = prepred; goto up; /* go further up */ \
- }
- #ifdef ONE_FREE_BIT_HEAPCODES
-@@ -348,7 +348,7 @@ local void gc_mark (object obj)
- curr = currently marked object, store in *pred */
- var object prepred = *(gcv_object_t*)ThePointer(pred); /* old predecessor */
- *(gcv_object_t*)ThePointer(pred) = curr; /* write back component */
-- pred =
objectplus(pred,-(soint)(sizeof(gcv_object_t))<<(oint_addr_shift-addr_shift)); /* go
to next component */
-+ pred =
objectplus(pred,((oint)-(soint)sizeof(gcv_object_t))<<(oint_addr_shift-addr_shift));
/* go to next component */
- if (marked(ThePointer(pred))) { /* already marked? */
- curr = /* next component, without mark */
- without_mark_bit(*(gcv_object_t*)ThePointer(pred));
-@@ -383,7 +383,7 @@ local void gc_mark (object obj)
- case_subr: /* SUBR */
- up_sxrecord();
- case_sstring: /* simple-string */
-- { var object pred_ =
objectplus(pred,-(soint)sistring_data_offset<<(oint_addr_shift-addr_shift));
-+ { var object pred_ =
objectplus(pred,((oint)-(soint)sistring_data_offset)<<(oint_addr_shift-addr_shift));
- if (sstring_reallocatedp(TheSstring(pred_)))
- up_sistring();
- }
diff --git a/clisp-volatile.patch b/clisp-volatile.patch
deleted file mode 100644
index dc9f005..0000000
--- a/clisp-volatile.patch
+++ /dev/null
@@ -1,199 +0,0 @@
-diff -up clisp-2.49.93/src/control.d.volatile clisp-2.49.93/src/control.d
---- clisp-2.49.93/src/control.d.volatile 2018-02-26 11:22:55.000000000 -0500
-+++ clisp-2.49.93/src/control.d 2018-02-26 11:31:38.737088256 -0500
-@@ -1602,7 +1602,7 @@ LISPFUN(maplap,seclass_default,2,0,rest,
-
- LISPSPECFORM(tagbody, 0,0,body)
- { /* (TAGBODY {tag | statement}), CLTL p. 130 */
-- var object body = popSTACK();
-+ var volatile object body = popSTACK();
- { /* build GENV-frame: */
- var gcv_object_t* top_of_frame = STACK; /* pointer to frame */
- pushSTACK(aktenv.go_env);
-diff -up clisp-2.49.93/src/eval.d.volatile clisp-2.49.93/src/eval.d
---- clisp-2.49.93/src/eval.d.volatile 2018-02-26 11:22:55.000000000 -0500
-+++ clisp-2.49.93/src/eval.d 2018-02-26 11:32:25.995960520 -0500
-@@ -708,10 +708,10 @@ global void throw_to (object tag) {
- global maygc void invoke_handlers (object cond) {
- /* Also deactivates the handler being called, and all newer handlers.
- the handler-ranges, which are screened off: */
-- var stack_range_t* other_ranges = inactive_handlers;
-+ var stack_range_t* volatile other_ranges = inactive_handlers;
- var stack_range_t new_range;
- /* Search for Handler-Frame, that handles a Type with (TYPEP cond type): */
-- var gcv_object_t* FRAME = STACK;
-+ var gcv_object_t* volatile FRAME = STACK;
- while (1) {
- /* search in Stack starting at FRAME for a suitable HANDLER-Frame: */
- if (!(other_ranges == NULL) && (FRAME == other_ranges->low_limit)) {
-@@ -725,7 +725,7 @@ global maygc void invoke_handlers (objec
- if (frame_info == HANDLER_frame_info || frame_info == C_HANDLER_frame_info) { /*
Handler-Frame? */
- /* loop over types of the vectors #(type1 label1 ... typem labelm): */
- var uintL m2 = Svector_length(Car(FRAME_(frame_handlers))); /* 2*m */
-- var uintL i = 0;
-+ var volatile uintL i = 0;
- do {
- pushSTACK(cond); /* save cond */
- pushSTACK(cond);
-@@ -2432,7 +2432,7 @@ local maygc void trace_call (object fun,
- /* But ':ALLOW-OTHER-KEYS NIL' hides a subsequent ':ALLOW-OTHER-KEYS
T' \
- (see CLHS 3.4.1.4.1.1). */ \
- var bool allow_hidden = false; /* true if seen ':ALLOW-OTHER-KEYS NIL' */ \
-- var uintC check_count=argcount; \
-+ var volatile uintC check_count=argcount; \
- while (check_count--) { \
- var object kw = NEXT(argptr); /* next Argument */ \
- var object val = NEXT(argptr); /* and value for it */ \
-@@ -2475,7 +2475,7 @@ local maygc void trace_call (object fun,
- > found_statement: what is to be done, if value found */
- #define find_keyword_value(notfound_statement,found_statement) \
- { var gcv_object_t* argptr = rest_args_pointer; \
-- var uintC find_count; \
-+ var volatile uintC find_count; \
- dotimesC(find_count,argcount, { \
- if (eq(NEXT(argptr),keyword)) goto kw_found; /* right keyword? */ \
- argptr skipSTACKop -1; /* NEXT */ \
-@@ -2494,8 +2494,9 @@ local maygc void trace_call (object fun,
- < mv_count/mv_space: values
- < STACK: cleaned up, = args_pointer
- can trigger GC */
--local maygc Values funcall_iclosure (object closure, gcv_object_t* args_pointer,
-- uintC argcount)
-+local maygc Values funcall_iclosure (volatile object closure,
-+ gcv_object_t* args_pointer,
-+ volatile uintC argcount)
- {
- /* 1st step: finish building of APPLY-frame: */
- var sp_jmp_buf my_jmp_buf;
-@@ -2683,7 +2684,7 @@ local maygc Values funcall_iclosure (obj
- pushSTACK(NIL); /* start of list */
- if (argcount>0) {
- var gcv_object_t* ptr = args_pointer STACKop -(uintP)argcount;
-- var uintC count;
-+ var volatile uintC count;
- dotimespC(count,argcount, {
- var object new_cons = allocate_cons();
- Car(new_cons) = BEFORE(ptr);
-@@ -2698,7 +2699,7 @@ local maygc Values funcall_iclosure (obj
- /* process &KEY-parameters: */
- if (!numberp(TheIclosure(closure)->clos_keywords)) {
- /* Keyword-parameters present */
-- var gcv_object_t* rest_args_pointer = args_pointer;
-+ var gcv_object_t* volatile rest_args_pointer = args_pointer;
- /* argcount = number of remaining arguments */
- /* halve argcount --> number of pairs Key.Value: */
- if (argcount%2) { /* number was odd -> not paired: */
-@@ -2970,7 +2971,7 @@ local Values eval_ffunction (object fun)
- > form: form
- < mv_count/mv_space: values
- can trigger GC */
--modexp maygc Values eval (object form)
-+modexp maygc Values eval (volatile object form)
- {
- start:
- /* Test for Keyboard-Interrupt: */
-@@ -3025,7 +3026,7 @@ modexp maygc Values eval (object form)
- > form: Form
- < mv_count/mv_space: values
- can trigger GC */
--global maygc Values eval_no_hooks (object form) {
-+global maygc Values eval_no_hooks (volatile object form) {
- var sp_jmp_buf my_jmp_buf;
- /* build EVAL-Frame: */
- {
-@@ -5769,7 +5770,8 @@ local maygc Values funcall_closure (obje
- #define GOTO_ERROR(label) goto label
- #define DEBUG_CHECK_BYTEPTR(b) do{}while(0)
- #endif
--local /*maygc*/ Values interpret_bytecode_ (object closure_in, Sbvector codeptr,
-+local /*maygc*/ Values interpret_bytecode_ (volatile object closure_in,
-+ volatile Sbvector codeptr,
- const uintB* byteptr_in)
- {
- GCTRIGGER_IF(true, {
-@@ -5798,7 +5800,7 @@ local /*maygc*/ Values interpret_bytecod
- #endif
- TRACE_CALL(closure,'B','C');
- /* situate closure in STACK, below the arguments: */
-- var gcv_object_t* closureptr = (pushSTACK(closure), &STACK_0);
-+ var gcv_object_t* volatile closureptr = (pushSTACK(closure), &STACK_0);
- #ifndef FAST_SP
- /* If there is no fast SP-Access, one has to introduce
- an extra pointer: */
-diff -up clisp-2.49.93/src/lispbibl.d.volatile clisp-2.49.93/src/lispbibl.d
---- clisp-2.49.93/src/lispbibl.d.volatile 2018-02-26 11:22:55.000000000 -0500
-+++ clisp-2.49.93/src/lispbibl.d 2018-02-26 11:31:38.742088137 -0500
-@@ -11836,7 +11836,7 @@ All other long words on the LISP-Stack a
- #define FAST_SP
- #endif
- #elif defined(GNU) && defined(SP_register)
-- register __volatile__ aint __SP __asm__(SP_register);
-+ register aint __SP __asm__(SP_register);
- #ifdef SPARC64
- #define SP() (__SP+2048)
- #else
-diff -up clisp-2.49.93/src/record.d.volatile clisp-2.49.93/src/record.d
---- clisp-2.49.93/src/record.d.volatile 2018-02-26 11:22:56.000000000 -0500
-+++ clisp-2.49.93/src/record.d 2018-02-26 11:31:38.743088113 -0500
-@@ -1406,7 +1406,7 @@ LISPFUNNR(punbound,0) { /* not Foldable
- > obj: the same CLOS instance, not a forward pointer
- < result: the same CLOS instance, not a forward pointer
- can trigger GC */
--global maygc object update_instance (object user_obj, object obj) {
-+global maygc object update_instance (object user_obj, volatile object obj) {
- /* Note about the handling of multiple consecutive class redefinitions:
- When there are multiple class redefinitions before an instance gets to
- be updated, we call UPDATE-INSTANCE-FOR-REDEFINED-CLASS once for each
-diff -up clisp-2.49.93/src/spvw.d.volatile clisp-2.49.93/src/spvw.d
---- clisp-2.49.93/src/spvw.d.volatile 2018-02-26 11:22:55.000000000 -0500
-+++ clisp-2.49.93/src/spvw.d 2018-02-26 11:31:38.743088113 -0500
-@@ -3888,7 +3888,7 @@ local inline void main_actions (struct a
- var gcv_object_t* top_of_frame = STACK; /* pointer over frame */
- var sp_jmp_buf returner; /* return point */
- var const char* const* fileptr = &p->argv_init_files[0];
-- var uintL count = p->argv_init_filecount;
-+ var volatile uintL count = p->argv_init_filecount;
- finish_entry_frame(DRIVER,returner,,goto done_driver_init_files;);
- do {
- pushSTACK(asciz_to_string(*fileptr++,O(misc_encoding)));
-@@ -3906,8 +3906,8 @@ local inline void main_actions (struct a
- if (p->argv_compile_filecount > 0) {
- var gcv_object_t* top_of_frame = STACK; /* pointer over frame */
- var sp_jmp_buf returner; /* return point */
-- var const argv_compile_file_t* fileptr = &p->argv_compile_files[0];
-- var uintL count = p->argv_compile_filecount;
-+ var const argv_compile_file_t* volatile fileptr =
&p->argv_compile_files[0];
-+ var volatile uintL count = p->argv_compile_filecount;
- finish_entry_frame(DRIVER,returner,,goto done_driver_compile_files;);
- do {
- var uintC argcount = 1;
-diff -up clisp-2.49.93/src/stream.d.volatile clisp-2.49.93/src/stream.d
---- clisp-2.49.93/src/stream.d.volatile 2018-02-26 11:22:56.000000000 -0500
-+++ clisp-2.49.93/src/stream.d 2018-02-26 11:31:38.746088041 -0500
-@@ -5875,7 +5875,7 @@ local maygc void clear_output_unbuffered
- close_ochannel(stream, abort);
- > stream : Channel-Stream
- > abort: flag: non-0 => ignore errors */
--local maygc void close_ochannel (object stream, uintB abort) {
-+local maygc void close_ochannel (volatile object stream, uintB abort) {
- pushSTACK(stream);
- MAYBE_IGNORE_ERRORS(abort,oconv_unshift_output_unbuffered(stream));
- stream = STACK_0;
-@@ -8358,7 +8358,7 @@ local void closed_buffered (object strea
- > stream : File-Stream.
- > abort: flag: non-0 => ignore errors
- changed in stream: all Components except name and truename */
--local maygc void close_buffered (object stream, uintB abort) {
-+local maygc void close_buffered (volatile object stream, uintB abort) {
- /* Handle=NIL (Stream already closed) -> finished: */
- if (nullp(BufferedStream_channel(stream)))
- return;
-@@ -9326,7 +9326,7 @@ local maygc char** lisp_completion (char
- }
- sstring_un_realloc(m);
- var uintL charcount = Sstring_length(m);
-- var const chart* ptr1;
-+ var const chart* volatile ptr1;
- unpack_sstring_alloca(m,charcount,0, ptr1=);
- { /* (CATCH 'SYS::CONVERSION-FAILURE ...) */
- var gcv_object_t* top_of_frame = STACK;
diff --git a/clisp.spec b/clisp.spec
index 24be39d..3c54b8a 100644
--- a/clisp.spec
+++ b/clisp.spec
@@ -1,37 +1,23 @@
-# Mercurial snapshot
-%global hgver 20180224hg
+%global commit d1310adc5aa7bb3610cd4c44c96b134bba75d405
+%global shortcommit %(c=%{commit}; echo ${c:0:7})
+
+# There is a plus on the end for unreleased versions, not for released versions
+%global instdir %{name}-%{version}+
Name: clisp
Summary: ANSI Common Lisp implementation
Version: 2.49.93
-Release: 0.1.%{hgver}%{?dist}
-License: GPLv2
+Release: 1.%{shortcommit}git%{?dist}
+License: GPLv2+
URL:
http://www.clisp.org/
-# The source for this package was pulled from upstream's mercurial repository.
-# Use the following commands to generate the tarball:
-# hg clone -u b55b8196c9f2
http://hg.code.sf.net/p/clisp/clisp clisp-2.49.93
-# rm -fr clisp-2.49.93/.hg*
-# tar cvJf clisp-2.49.93-20180224hg.tar.xz clisp-2.49.93
-Source0: %{name}-%{version}-%{hgver}.tar.xz
-#Source0:
http://downloads.sourceforge.net/clisp/%%{name}-%%{version}.tar.bz2
-#
http://sourceforge.net/tracker/?func=detail&aid=3529607&group_id=...
-# Patch0: %%{name}-format.patch
-#
http://sourceforge.net/tracker/?func=detail&aid=3529615&group_id=...
-# Patch1: %%{name}-arm.patch
-#
http://sourceforge.net/tracker/?func=detail&aid=3572511&group_id=...
-# Patch2: %%{name}-libsvm.patch
-#
http://sourceforge.net/tracker/?func=detail&aid=3572516&group_id=...
-Patch3: %{name}-db.patch
-# Linux-specific fixes. Sent upstream 25 Jul 2012.
-Patch4: %{name}-linux.patch
-# Add missing volatile keywords.
-Patch5: %{name}-volatile.patch
-# Left shift of a signed value invokes undefined behabvior.
-Patch6: %{name}-negshift.patch
-# Fix an aliasing issue, causes a build failure on ARM.
-Patch7: %{name}-alias.patch
-
-BuildRequires: compat-readline5-devel
+# The source for this package was pulled from upstream's git repository.
+Source0:
https://gitlab.com/gnu-clisp/%{name}/repository/archive.tar.gz?ref=%{comm...
+#
https://sourceforge.net/p/clisp/patches/35/
+Patch0: %{name}-db.patch
+#
https://sourceforge.net/p/clisp/patches/32/
+Patch1: %{name}-format.patch
+
+
BuildRequires: dbus-devel
BuildRequires: emacs
BuildRequires: fcgi-devel
@@ -48,9 +34,12 @@ BuildRequires: libdb-devel
BuildRequires: libglade2-devel
BuildRequires: libsigsegv-devel
BuildRequires: libsvm-devel
-#BuildRequires: pari-devel
+BuildRequires: libxcrypt-devel
+BuildRequires: pari-devel
+BuildRequires: pari-gp
BuildRequires: pcre-devel
BuildRequires: postgresql-devel
+BuildRequires: readline-devel
BuildRequires: zlib-devel
# 2018-02-26
@@ -99,25 +88,9 @@ Files necessary for linking CLISP programs.
%prep
-%setup -q
-# %%patch0
-# %%patch1
-# %%patch2
-%patch3
-%patch4
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-
-# Convince CLisp to build against compat-readline5 instead of readline.
-# This is to avoid pulling the GPLv3 readline 6 into a GPLv2 CLisp binary.
-# See Red Hat bug #511303.
-mkdir -p readline/include
-ln -s %{_includedir}/readline5/readline readline/include/readline
-ln -s %{_libdir}/readline5 readline/%{_lib}
-
-# Update config.guess and config.sub
-cp -p /usr/lib/rpm/redhat/config.{guess,sub} src/build-aux
+%setup -q -n %{name}-%{commit}-%{commit}
+%patch0
+%patch1
# Change URLs not affected by the --hyperspec argument to configure
sed -i.orig
's|lisp.org/HyperSpec/Body/chap-7.html|lispworks.com/documentation/HyperSpec/Body/07_.htm|'
\
@@ -148,12 +121,12 @@ chmod a-x modules/clx/clx-manual/html/doc-index.cgi
%build
ulimit -s unlimited
+export LC_ALL=C.UTF-8
# Do not need to specify base modules: i18n, readline, regexp, syscalls.
# The dirkey module currently can only be built on Windows/Cygwin/MinGW.
# The editor module is not in good enough shape to use.
# The matlab, netica, and oracle modules require proprietary code to build.
-# The pari module only works with pari 2.3. Fedora currently has pari 2.7.
# The queens module is intended as an example only, not for actual use.
./configure --prefix=%{_prefix} \
--libdir=%{_libdir} \
@@ -171,6 +144,7 @@ ulimit -s unlimited
--with-module=gdbm \
--with-module=gtk2 \
--with-module=libsvm \
+ --with-module=pari \
--with-module=pcre \
--with-module=postgresql \
--with-module=rawsock \
@@ -179,18 +153,14 @@ ulimit -s unlimited
--with-ffcall \
--cbcx \
build \
-%ifarch ppc %{power64}
- CPPFLAGS="-DNO_GENERATIONAL_GC -DNO_MULTIMAP_FILE -DNO_SINGLEMAP
-I/usr/include/readline5 -I/usr/include/libsvm" \
-%else
- CPPFLAGS="-I/usr/include/readline5 -I/usr/include/libsvm" \
-%endif
- CFLAGS="%{optflags} -Wa,--noexecstack -L%{_libdir}/readline5" \
- LDFLAGS="-Wl,-z,relro -L%{_libdir}/readline5 -Wl,-z,noexecstack"
+ CPPFLAGS="-I/usr/include/libsvm" \
+ CFLAGS="%{optflags} -Wa,--noexecstack" \
+ LDFLAGS="-Wl,--as-needed -Wl,-z,relro -Wl,-z,noexecstack"
%install
ulimit -s unlimited
make -C build DESTDIR=%{buildroot} install
-cp -a build/full %{buildroot}%{_libdir}/%{name}-%{version}+
+cp -a build/full %{buildroot}%{_libdir}/%{instdir}
rm -f %{buildroot}%{_pkgdocdir}/doc/clisp.{dvi,1,ps}
rm -f %{buildroot}%{_pkgdocdir}/{COPYRIGHT,GNU-GPL}
cp -p doc/mop-spec.pdf %{buildroot}%{_pkgdocdir}/doc
@@ -208,41 +178,39 @@ pushd %{buildroot}%{_datadir}/emacs/site-lisp
popd
# Put back the original config.rpath, and fix executable bits
-cp -p config.rpath.orig
%{buildroot}/%{_libdir}/%{name}-%{version}+/build-aux/config.rpath
+cp -p config.rpath.orig %{buildroot}%{_libdir}/%{instdir}/build-aux/config.rpath
chmod a+x \
- %{buildroot}/%{_libdir}/%{name}-%{version}+/build-aux/config.guess \
- %{buildroot}/%{_libdir}/%{name}-%{version}+/build-aux/config.sub \
- %{buildroot}/%{_libdir}/%{name}-%{version}+/build-aux/depcomp \
- %{buildroot}/%{_libdir}/%{name}-%{version}+/build-aux/install-sh \
-
+ %{buildroot}%{_libdir}/%{instdir}/build-aux/config.guess \
+ %{buildroot}%{_libdir}/%{instdir}/build-aux/config.sub \
+ %{buildroot}%{_libdir}/%{instdir}/build-aux/depcomp \
+ %{buildroot}%{_libdir}/%{instdir}/build-aux/install-sh \
# Fix paths in the Makefiles
for mk in $(find %{buildroot}%{_libdir} -name Makefile); do
- sed -e "s,$PWD/modules,%{_libdir}/%{name}-%{version}+," \
+ sed -e "s,$PWD/modules,%{_libdir}/%{instdir}," \
-e "s,$PWD/build/clisp,%{_bindir}/clisp," \
- -e "s,$PWD/build/linkkit,%{_libdir}/%{name}-%{version}+/linkkit," \
+ -e "s,$PWD/build/linkkit,%{_libdir}/%{instdir}/linkkit," \
-i $mk
done
-for mk in %{buildroot}%{_libdir}/%{name}-%{version}+/{base,full}/makevars; do
+for mk in %{buildroot}%{_libdir}/%{instdir}/{base,full}/makevars; do
sed -e "s, -I$PWD[^']*,," \
- -e "s,$PWD/readline.*readline/lib[[:digit:]]*,-L%{_libdir}/readline5
-lreadline," \
-e "s,%{_libdir}/lib\([[:alnum:]]*\)\.so,-l\1,g" \
-i $mk
done
# Install config.h, which is needed in some cases
-for dir in %{buildroot}%{_libdir}/%{name}-%{version}+/*; do
+for dir in %{buildroot}%{_libdir}/%{instdir}/*; do
cp -p build/$(basename $dir)/config.h $dir || :
done
-cp -p build/config.h %{buildroot}%{_libdir}/%{name}-%{version}+
+cp -p build/config.h %{buildroot}%{_libdir}/%{instdir}
cp -p build/clx/new-clx/config.h \
- %{buildroot}%{_libdir}/%{name}-%{version}+/clx/new-clx
+ %{buildroot}%{_libdir}/%{instdir}/clx/new-clx
# Fix permissions
chmod 0755 %{buildroot}%{_bindir}/%{name}
-chmod 0755 %{buildroot}%{_libdir}/%{name}-%{version}+/full/lisp.run
+chmod 0755 %{buildroot}%{_libdir}/%{instdir}/full/lisp.run
# Fix broken symlinks in the full set
-pushd %{buildroot}%{_libdir}/%{name}-%{version}+/full
+pushd %{buildroot}%{_libdir}/%{instdir}/full
for obj in bogomips calls gettext readline regexi; do
rm -f ${obj}.o
ln -s ../base/${obj}.o ${obj}.o
@@ -288,45 +256,45 @@ ln -s ../../src/modules.c build/full/modules.c
%{_bindir}/clisp
%{_mandir}/man1/clisp.1*
%{_pkgdocdir}/
-%dir %{_libdir}/%{name}-%{version}+/
-%dir %{_libdir}/%{name}-%{version}+/asdf/
-%{_libdir}/%{name}-%{version}+/asdf/asdf.fas
-%dir %{_libdir}/%{name}-%{version}+/base/
-%{_libdir}/%{name}-%{version}+/base/lispinit.mem
-%{_libdir}/%{name}-%{version}+/base/lisp.run
-%dir %{_libdir}/%{name}-%{version}+/berkeley-db/
-%{_libdir}/%{name}-%{version}+/berkeley-db/*.fas
-%dir %{_libdir}/%{name}-%{version}+/bindings/
-%dir %{_libdir}/%{name}-%{version}+/bindings/glibc/
-%{_libdir}/%{name}-%{version}+/bindings/glibc/*.fas
-%dir %{_libdir}/%{name}-%{version}+/clx/
-%dir %{_libdir}/%{name}-%{version}+/clx/new-clx/
-%{_libdir}/%{name}-%{version}+/clx/new-clx/*.fas
-%{_libdir}/%{name}-%{version}+/data/
-%dir %{_libdir}/%{name}-%{version}+/dbus/
-%{_libdir}/%{name}-%{version}+/dbus/*.fas
-%{_libdir}/%{name}-%{version}+/dynmod/
-%dir %{_libdir}/%{name}-%{version}+/fastcgi/
-%{_libdir}/%{name}-%{version}+/fastcgi/*.fas
-%dir %{_libdir}/%{name}-%{version}+/full/
-%{_libdir}/%{name}-%{version}+/full/lispinit.mem
-%{_libdir}/%{name}-%{version}+/full/lisp.run
-%dir %{_libdir}/%{name}-%{version}+/gdbm/
-%{_libdir}/%{name}-%{version}+/gdbm/*.fas
-%dir %{_libdir}/%{name}-%{version}+/gtk2/
-%{_libdir}/%{name}-%{version}+/gtk2/*.fas
-%dir %{_libdir}/%{name}-%{version}+/libsvm/
-%{_libdir}/%{name}-%{version}+/libsvm/*.fas
-#%%dir %%{_libdir}/%%{name}-%%{version}/pari/
-#%%{_libdir}/%%{name}-%%{version}/pari/*.fas
-%dir %{_libdir}/%{name}-%{version}+/pcre/
-%{_libdir}/%{name}-%{version}+/pcre/*.fas
-%dir %{_libdir}/%{name}-%{version}+/postgresql/
-%{_libdir}/%{name}-%{version}+/postgresql/*.fas
-%dir %{_libdir}/%{name}-%{version}+/rawsock/
-%{_libdir}/%{name}-%{version}+/rawsock/*.fas
-%dir %{_libdir}/%{name}-%{version}+/zlib/
-%{_libdir}/%{name}-%{version}+/zlib/*.fas
+%dir %{_libdir}/%{instdir}/
+%dir %{_libdir}/%{instdir}/asdf/
+%{_libdir}/%{instdir}/asdf/asdf.fas
+%dir %{_libdir}/%{instdir}/base/
+%{_libdir}/%{instdir}/base/lispinit.mem
+%{_libdir}/%{instdir}/base/lisp.run
+%dir %{_libdir}/%{instdir}/berkeley-db/
+%{_libdir}/%{instdir}/berkeley-db/*.fas
+%dir %{_libdir}/%{instdir}/bindings/
+%dir %{_libdir}/%{instdir}/bindings/glibc/
+%{_libdir}/%{instdir}/bindings/glibc/*.fas
+%dir %{_libdir}/%{instdir}/clx/
+%dir %{_libdir}/%{instdir}/clx/new-clx/
+%{_libdir}/%{instdir}/clx/new-clx/*.fas
+%{_libdir}/%{instdir}/data/
+%dir %{_libdir}/%{instdir}/dbus/
+%{_libdir}/%{instdir}/dbus/*.fas
+%{_libdir}/%{instdir}/dynmod/
+%dir %{_libdir}/%{instdir}/fastcgi/
+%{_libdir}/%{instdir}/fastcgi/*.fas
+%dir %{_libdir}/%{instdir}/full/
+%{_libdir}/%{instdir}/full/lispinit.mem
+%{_libdir}/%{instdir}/full/lisp.run
+%dir %{_libdir}/%{instdir}/gdbm/
+%{_libdir}/%{instdir}/gdbm/*.fas
+%dir %{_libdir}/%{instdir}/gtk2/
+%{_libdir}/%{instdir}/gtk2/*.fas
+%dir %{_libdir}/%{instdir}/libsvm/
+%{_libdir}/%{instdir}/libsvm/*.fas
+%dir %{_libdir}/%{instdir}/pari/
+%{_libdir}/%{instdir}/pari/*.fas
+%dir %{_libdir}/%{instdir}/pcre/
+%{_libdir}/%{instdir}/pcre/*.fas
+%dir %{_libdir}/%{instdir}/postgresql/
+%{_libdir}/%{instdir}/postgresql/*.fas
+%dir %{_libdir}/%{instdir}/rawsock/
+%{_libdir}/%{instdir}/rawsock/*.fas
+%dir %{_libdir}/%{instdir}/zlib/
+%{_libdir}/%{instdir}/zlib/*.fas
%{_datadir}/emacs/site-lisp/*
%{_datadir}/vim/vimfiles/after/syntax/*
@@ -334,97 +302,104 @@ ln -s ../../src/modules.c build/full/modules.c
%doc modules/clx/clx-manual
%{_bindir}/clisp-link
%{_mandir}/man1/clisp-link.1*
-%{_libdir}/%{name}-%{version}+/asdf/Makefile
-%{_libdir}/%{name}-%{version}+/asdf/*.lisp
-%{_libdir}/%{name}-%{version}+/asdf/*.sh
-%{_libdir}/%{name}-%{version}+/base/*.a
-%{_libdir}/%{name}-%{version}+/base/*.h
-%{_libdir}/%{name}-%{version}+/base/*.o
-%{_libdir}/%{name}-%{version}+/base/makevars
-%{_libdir}/%{name}-%{version}+/berkeley-db/Makefile
-%{_libdir}/%{name}-%{version}+/berkeley-db/*.h
-%{_libdir}/%{name}-%{version}+/berkeley-db/*.lisp
-%{_libdir}/%{name}-%{version}+/berkeley-db/*.o
-%{_libdir}/%{name}-%{version}+/berkeley-db/*.sh
-%{_libdir}/%{name}-%{version}+/bindings/glibc/Makefile
-%{_libdir}/%{name}-%{version}+/bindings/glibc/*.lisp
-%{_libdir}/%{name}-%{version}+/bindings/glibc/*.o
-%{_libdir}/%{name}-%{version}+/bindings/glibc/*.sh
-%{_libdir}/%{name}-%{version}+/build-aux/
-%{_libdir}/%{name}-%{version}+/clx/new-clx/demos/
-%{_libdir}/%{name}-%{version}+/clx/new-clx/README
-%{_libdir}/%{name}-%{version}+/clx/new-clx/Makefile
-%{_libdir}/%{name}-%{version}+/clx/new-clx/*.h
-%{_libdir}/%{name}-%{version}+/clx/new-clx/*.lisp
-%{_libdir}/%{name}-%{version}+/clx/new-clx/*.o
-%{_libdir}/%{name}-%{version}+/clx/new-clx/*.sh
-%{_libdir}/%{name}-%{version}+/config.h
-%{_libdir}/%{name}-%{version}+/dbus/Makefile
-%{_libdir}/%{name}-%{version}+/dbus/*.h
-%{_libdir}/%{name}-%{version}+/dbus/*.lisp
-%{_libdir}/%{name}-%{version}+/dbus/*.o
-%{_libdir}/%{name}-%{version}+/dbus/*.sh
-%{_libdir}/%{name}-%{version}+/fastcgi/README
-%{_libdir}/%{name}-%{version}+/fastcgi/Makefile
-%{_libdir}/%{name}-%{version}+/fastcgi/*.h
-%{_libdir}/%{name}-%{version}+/fastcgi/*.lisp
-%{_libdir}/%{name}-%{version}+/fastcgi/*.o
-%{_libdir}/%{name}-%{version}+/fastcgi/*.sh
-%{_libdir}/%{name}-%{version}+/full/*.a
-%{_libdir}/%{name}-%{version}+/full/*.h
-%{_libdir}/%{name}-%{version}+/full/*.o
-%{_libdir}/%{name}-%{version}+/full/makevars
-%{_libdir}/%{name}-%{version}+/gdbm/Makefile
-%{_libdir}/%{name}-%{version}+/gdbm/*.h
-%{_libdir}/%{name}-%{version}+/gdbm/*.lisp
-%{_libdir}/%{name}-%{version}+/gdbm/*.o
-%{_libdir}/%{name}-%{version}+/gdbm/*.sh
-%{_libdir}/%{name}-%{version}+/gtk2/Makefile
-%{_libdir}/%{name}-%{version}+/gtk2/*.cfg
-%{_libdir}/%{name}-%{version}+/gtk2/*.glade
-%{_libdir}/%{name}-%{version}+/gtk2/*.h
-%{_libdir}/%{name}-%{version}+/gtk2/*.lisp
-%{_libdir}/%{name}-%{version}+/gtk2/*.o
-%{_libdir}/%{name}-%{version}+/gtk2/*.sh
-%{_libdir}/%{name}-%{version}+/libsvm/README
-%{_libdir}/%{name}-%{version}+/libsvm/Makefile
-%{_libdir}/%{name}-%{version}+/libsvm/*.h
-%{_libdir}/%{name}-%{version}+/libsvm/*.lisp
-%{_libdir}/%{name}-%{version}+/libsvm/*.o
-%{_libdir}/%{name}-%{version}+/libsvm/*.sh
-%{_libdir}/%{name}-%{version}+/linkkit/
-#%%{_libdir}/%%{name}-%%{version}/pari/README
-#%%{_libdir}/%%{name}-%%{version}/pari/Makefile
-#%%{_libdir}/%%{name}-%%{version}/pari/*.h
-#%%{_libdir}/%%{name}-%%{version}/pari/*.lisp
-#%%{_libdir}/%%{name}-%%{version}/pari/*.o
-#%%{_libdir}/%%{name}-%%{version}/pari/*.sh
-%{_libdir}/%{name}-%{version}+/pcre/Makefile
-%{_libdir}/%{name}-%{version}+/pcre/*.h
-%{_libdir}/%{name}-%{version}+/pcre/*.lisp
-%{_libdir}/%{name}-%{version}+/pcre/*.o
-%{_libdir}/%{name}-%{version}+/pcre/*.sh
-%{_libdir}/%{name}-%{version}+/postgresql/README
-%{_libdir}/%{name}-%{version}+/postgresql/Makefile
-%{_libdir}/%{name}-%{version}+/postgresql/*.h
-%{_libdir}/%{name}-%{version}+/postgresql/*.lisp
-%{_libdir}/%{name}-%{version}+/postgresql/*.o
-%{_libdir}/%{name}-%{version}+/postgresql/*.sh
-%{_libdir}/%{name}-%{version}+/rawsock/demos/
-%{_libdir}/%{name}-%{version}+/rawsock/Makefile
-%{_libdir}/%{name}-%{version}+/rawsock/*.h
-%{_libdir}/%{name}-%{version}+/rawsock/*.lisp
-%{_libdir}/%{name}-%{version}+/rawsock/*.o
-%{_libdir}/%{name}-%{version}+/rawsock/*.sh
-%{_libdir}/%{name}-%{version}+/zlib/Makefile
-%{_libdir}/%{name}-%{version}+/zlib/*.h
-%{_libdir}/%{name}-%{version}+/zlib/*.lisp
-%{_libdir}/%{name}-%{version}+/zlib/*.o
-%{_libdir}/%{name}-%{version}+/zlib/*.sh
+%{_libdir}/%{instdir}/asdf/Makefile
+%{_libdir}/%{instdir}/asdf/*.lisp
+%{_libdir}/%{instdir}/asdf/*.sh
+%{_libdir}/%{instdir}/base/*.a
+%{_libdir}/%{instdir}/base/*.h
+%{_libdir}/%{instdir}/base/*.o
+%{_libdir}/%{instdir}/base/makevars
+%{_libdir}/%{instdir}/berkeley-db/Makefile
+%{_libdir}/%{instdir}/berkeley-db/*.h
+%{_libdir}/%{instdir}/berkeley-db/*.lisp
+%{_libdir}/%{instdir}/berkeley-db/*.o
+%{_libdir}/%{instdir}/berkeley-db/*.sh
+%{_libdir}/%{instdir}/bindings/glibc/Makefile
+%{_libdir}/%{instdir}/bindings/glibc/*.lisp
+%{_libdir}/%{instdir}/bindings/glibc/*.o
+%{_libdir}/%{instdir}/bindings/glibc/*.sh
+%{_libdir}/%{instdir}/build-aux/
+%{_libdir}/%{instdir}/clx/new-clx/demos/
+%{_libdir}/%{instdir}/clx/new-clx/README
+%{_libdir}/%{instdir}/clx/new-clx/Makefile
+%{_libdir}/%{instdir}/clx/new-clx/*.h
+%{_libdir}/%{instdir}/clx/new-clx/*.lisp
+%{_libdir}/%{instdir}/clx/new-clx/*.o
+%{_libdir}/%{instdir}/clx/new-clx/*.sh
+%{_libdir}/%{instdir}/config.h
+%{_libdir}/%{instdir}/dbus/Makefile
+%{_libdir}/%{instdir}/dbus/*.h
+%{_libdir}/%{instdir}/dbus/*.lisp
+%{_libdir}/%{instdir}/dbus/*.o
+%{_libdir}/%{instdir}/dbus/*.sh
+%{_libdir}/%{instdir}/fastcgi/README
+%{_libdir}/%{instdir}/fastcgi/Makefile
+%{_libdir}/%{instdir}/fastcgi/*.h
+%{_libdir}/%{instdir}/fastcgi/*.lisp
+%{_libdir}/%{instdir}/fastcgi/*.o
+%{_libdir}/%{instdir}/fastcgi/*.sh
+%{_libdir}/%{instdir}/full/*.a
+%{_libdir}/%{instdir}/full/*.h
+%{_libdir}/%{instdir}/full/*.o
+%{_libdir}/%{instdir}/full/makevars
+%{_libdir}/%{instdir}/gdbm/Makefile
+%{_libdir}/%{instdir}/gdbm/*.h
+%{_libdir}/%{instdir}/gdbm/*.lisp
+%{_libdir}/%{instdir}/gdbm/*.o
+%{_libdir}/%{instdir}/gdbm/*.sh
+%{_libdir}/%{instdir}/gtk2/Makefile
+%{_libdir}/%{instdir}/gtk2/*.cfg
+%{_libdir}/%{instdir}/gtk2/*.glade
+%{_libdir}/%{instdir}/gtk2/*.h
+%{_libdir}/%{instdir}/gtk2/*.lisp
+%{_libdir}/%{instdir}/gtk2/*.o
+%{_libdir}/%{instdir}/gtk2/*.sh
+%{_libdir}/%{instdir}/libsvm/README
+%{_libdir}/%{instdir}/libsvm/Makefile
+%{_libdir}/%{instdir}/libsvm/*.h
+%{_libdir}/%{instdir}/libsvm/*.lisp
+%{_libdir}/%{instdir}/libsvm/*.o
+%{_libdir}/%{instdir}/libsvm/*.sh
+%{_libdir}/%{instdir}/linkkit/
+%{_libdir}/%{instdir}/pari/README
+%{_libdir}/%{instdir}/pari/Makefile
+%{_libdir}/%{instdir}/pari/*.h
+%{_libdir}/%{instdir}/pari/*.lisp
+%{_libdir}/%{instdir}/pari/*.o
+%{_libdir}/%{instdir}/pari/*.sh
+%{_libdir}/%{instdir}/pcre/Makefile
+%{_libdir}/%{instdir}/pcre/*.h
+%{_libdir}/%{instdir}/pcre/*.lisp
+%{_libdir}/%{instdir}/pcre/*.o
+%{_libdir}/%{instdir}/pcre/*.sh
+%{_libdir}/%{instdir}/postgresql/README
+%{_libdir}/%{instdir}/postgresql/Makefile
+%{_libdir}/%{instdir}/postgresql/*.h
+%{_libdir}/%{instdir}/postgresql/*.lisp
+%{_libdir}/%{instdir}/postgresql/*.o
+%{_libdir}/%{instdir}/postgresql/*.sh
+%{_libdir}/%{instdir}/rawsock/demos/
+%{_libdir}/%{instdir}/rawsock/Makefile
+%{_libdir}/%{instdir}/rawsock/*.h
+%{_libdir}/%{instdir}/rawsock/*.lisp
+%{_libdir}/%{instdir}/rawsock/*.o
+%{_libdir}/%{instdir}/rawsock/*.sh
+%{_libdir}/%{instdir}/zlib/Makefile
+%{_libdir}/%{instdir}/zlib/*.h
+%{_libdir}/%{instdir}/zlib/*.lisp
+%{_libdir}/%{instdir}/zlib/*.o
+%{_libdir}/%{instdir}/zlib/*.sh
%{_datadir}/aclocal/clisp.m4
%changelog
+* Thu Jun 21 2018 Jerry James <loganjerry(a)gmail.com> - 2.49.93-1.d1310adgit
+- License change: GPLv2 to GPLv2+
+- Build with readline 6 due to the new license
+- Drop upstreamed -arm, -libsvm, -alias, and -linux patches
+- Build for all architectures
+- Bring back the pari module
+
* Mon Feb 26 2018 Tom Callaway <spot(a)fedoraproject.org> - 2.49.93-0.1.20180224hg
- update to latest in mercurial (lots of fixes)
- re-enable ppc64, aarch64
diff --git a/sources b/sources
index 6363fb5..1ed8cfa 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (clisp-2.49.93-20180224hg.tar.xz) =
61465a5b148b2bbea431407d41c00bbaaa473e01e5d29e2218421222b829ee8f1d9b91b3609af1d4a8b90f953dee5891379072a677251dc1fbead87065a02770
+SHA512 (clisp-d1310ad.tar.gz) =
be315220e63c4996fc761caca36f0f3db2a3538e842449257628c988da90bce4d1b7a5561f065e33e17eb8b434f90da508c664d9e3d31b158d58ca54e8a6de38