From 38141c9c4cc1260b0c047b298e2f12edcb42eaa9 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Thu, 21 Jun 2018 21:37:01 -0600 Subject: [PATCH] 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. --- .gitignore | 2 +- clisp-alias.patch | 12 - clisp-arm.patch | 856 ------------------------------------------- clisp-db.patch | 26 +- clisp-format.patch | 178 ++------- clisp-libsvm.patch | 11 - clisp-linux.patch | 11 - clisp-negshift.patch | 124 ------- clisp-volatile.patch | 199 ---------- clisp.spec | 371 +++++++++---------- sources | 2 +- 11 files changed, 221 insertions(+), 1571 deletions(-) delete mode 100644 clisp-alias.patch delete mode 100644 clisp-arm.patch delete mode 100644 clisp-libsvm.patch delete mode 100644 clisp-linux.patch delete mode 100644 clisp-negshift.patch delete mode 100644 clisp-volatile.patch 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 ---- 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 set_errcall() accepts DBE], ac_cv_dbe_set_errcall_accept_dbe,[ @@ -20,3 +9,14 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include 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 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,"#",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,"#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 - - ; -------------------------- ----------------------------------- - 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 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=1355&atid=301355 -# Patch0: %%{name}-format.patch -# http://sourceforge.net/tracker/?func=detail&aid=3529615&group_id=1355&atid=301355 -# Patch1: %%{name}-arm.patch -# http://sourceforge.net/tracker/?func=detail&aid=3572511&group_id=1355&atid=301355 -# Patch2: %%{name}-libsvm.patch -# http://sourceforge.net/tracker/?func=detail&aid=3572516&group_id=1355&atid=301355 -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 +# The source for this package was pulled from upstream's git repository. +Source0: https://gitlab.com/gnu-clisp/%{name}/repository/archive.tar.gz?ref=%{commit}#/%{name}-%{shortcommit}.tar.gz +# https://sourceforge.net/p/clisp/patches/35/ +Patch0: %{name}-db.patch +# https://sourceforge.net/p/clisp/patches/32/ +Patch1: %{name}-format.patch + -BuildRequires: compat-readline5-devel 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 - 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 - 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