On Fri, Jan 17, 2020 at 06:52:11AM -0700, Matthew Flatt wrote: > At Fri, 17 Jan 2020 09:43:15 -0400, David Bremner wrote: > > Matthew Flatt <[email protected]> writes: > > > At Fri, 17 Jan 2020 08:31:22 -0400, David Bremner wrote: > > >> => 0xb6ea3254 <+8>: stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, > > >> lr} > > >> 0xb6ea3258 <+12>: add r3, pc > > > > > > That certainly looks like a valid ARM instruction. Maybe the processor > > > is expecting Thumb instructions. What does `print $cpsr` report? > > > > (gdb) print $cpsr > > $3 = 196656 > > Since bit 5 is set, I think that means the processor was expecting > Thumb instructions, which at least explains the error. > > To confirm that it's some bad jump or mismanagement of the mode by the > Racket JIT, does changing "racket/src/lightning/arm/asm.h" to disable > Thumb support allow the build to work?
I debugged this a bit, and reverting [1] makes 7.5 build. The assembler code was taken from an ancient version of gmp, and after a rewrite in 2009 (sic) the code in current gmp is completely different. Is there a reason why you cannot change to using an external libgmp instead of local copies of gmp code? cu Adrian [1] https://github.com/racket/racket/commit/17bc6262938f3b29e7ec66d0e77eeb08807854cd

