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.
This commit is contained in:
Jerry James 2018-06-21 21:37:01 -06:00
parent 6043f8d9a2
commit 38141c9c4c
11 changed files with 221 additions and 1571 deletions

2
.gitignore vendored
View File

@ -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

View File

@ -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));

View File

@ -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

View File

@ -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>

View File

@ -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();

View File

@ -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

View File

@ -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> -----------------------------------

View File

@ -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();
}

View File

@ -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;

View File

@ -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 <loganjerry@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@fedoraproject.org> - 2.49.93-0.1.20180224hg
- update to latest in mercurial (lots of fixes)
- re-enable ppc64, aarch64

View File

@ -1 +1 @@
SHA512 (clisp-2.49.93-20180224hg.tar.xz) = 61465a5b148b2bbea431407d41c00bbaaa473e01e5d29e2218421222b829ee8f1d9b91b3609af1d4a8b90f953dee5891379072a677251dc1fbead87065a02770
SHA512 (clisp-d1310ad.tar.gz) = be315220e63c4996fc761caca36f0f3db2a3538e842449257628c988da90bce4d1b7a5561f065e33e17eb8b434f90da508c664d9e3d31b158d58ca54e8a6de38