Ah, that makes sense.

Does configuring with `--enable-mach=arm32le` work? 

Using "arm32le" instead of the inferred "tarm32le" avoids memory-fence
instructions, so it should solve this problem, but I'm not certain the
rest of the build will adapt correctly.

At Tue, 11 Aug 2020 14:35:49 -0700 (PDT), Joey Eremondi wrote:
> I'm on an old RPi B (maybe a B+). It's pretty ancient, so I might be 
> pushing my luck. Here's my CPU info:
> 
> pi@raspberrypi:~ $ cat /proc/cpuinfo
> processor    : 0
> model name    : ARMv6-compatible processor rev 7 (v6l)
> BogoMIPS    : 697.95
> Features    : half thumb fastmult vfp edsp java tls 
> CPU implementer    : 0x41
> CPU architecture: 7
> CPU variant    : 0x0
> CPU part    : 0xb76
> CPU revision    : 7
> 
> Hardware    : BCM2835
> Revision    : 000e
> Serial        : 00000000e9b1ce2d
> Model        : Raspberry Pi Model B Rev 2
> 
> Running GDB gives the illegal instruction as 
> <UNDEFINED> instruction: 0xf57ff05a
> which looks to be a "Data Memory Barrier" instruction? Sounds like a 
> plausible culprit.
> 
> Thanks!
> 
> 
> 
> On Tuesday, August 11, 2020 at 2:14:28 PM UTC-7, Matthew Flatt wrote:
> >
> > Which model Pi are you using? I'm able to build on a Pi 3, so I wonder 
> > if it's a difference in processors, where the Arm32 backend is using 
> > something that it shouldn't. 
> >
> > Whether or not that guess is right, can you try running `gdb` in the 
> > "ChezScheme" directory like this? 
> >
> >    env SCHEMEHEAPDIRS=tarm32le/boot/tarm32le/ \ 
> >         gdb tarm32le/bin/tarm32le/scheme 
> >
> > Disassembling around the failed instruction address (with `disassemble` 
> > in gdb) should clarify what instruction is misused. 
> >
> > Thanks, 
> > Matthew 
> >
> > At Tue, 11 Aug 2020 10:58:03 -0700 (PDT), Joey Eremondi wrote: 
> > > I'm wondering, does anybody have any prebuilt  32-but ARM binaries for 
> > > Racket on Chez? I'm trying to run a little web-server on a raspberry pi, 
> > > and I'd prefer to use the Chez version, but I can't seem to get it to 
> > build. 
> > > 
> > > Alternately, if anybody knows why it won't build and can help, that 
> > would 
> > > help. With eiether --enable-csracket or --enable-csonly, it gets stuck 
> > > compiling the forked version of ChezScheme. Surprisingly, it doesn't 
> > seem 
> > > to be an out of memory error. Is the illegal instruction error because 
> > it's 
> > > ARMv6 and not AArch32? 
> > > 
> > > ... 
> > > gcc  -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O2 -g 
> > -O2 - 
> > > Wall -DELF_FIND_BOOT_SECTION -pthread -rdynamic -o 
> > ../bin/tarm32le/scheme 
> > > ../boot/tarm32le/main.o ../boot/tarm32le/libkernel.a -lm -ldl  -lpthread 
> > -lrt 
> > > -luuid ../zlib/libz.a ../lz4/lib/liblz4.a -pthread 
> > > (cd s && make bootstrap) 
> > > make allx 
> > > rm -f *.tarm32le xpatch patch *.patch *.so *.covin *.asm script.all 
> > header.tmp 
> > > *.html 
> > > rm -rf nanopass 
> > > cp -p -f ../boot/tarm32le/petite.boot ../boot/tarm32le/sbb 
> > > cp -p -f ../boot/tarm32le/scheme.boot ../boot/tarm32le/scb 
> > > make all 
> > > echo '(reset-handler abort)'\ 
> > >              '(base-exception-handler (lambda (c) (fresh-line) 
> > > (display-condition c) (newline) (reset)))'\ 
> > >              '(keyboard-interrupt-handler (lambda () (display 
> > > "interrupted---aborting\n") (reset)))'\ 
> > >              '(optimize-level 3)'\ 
> > >              '(debug-level 0)'\ 
> > >              '(commonization-level (commonization-level))'\ 
> > >              '(compile-compressed #t)'\ 
> > >              '(compress-format (compress-format))'\ 
> > >              '(compress-level (compress-level))'\ 
> > >              '(generate-inspector-information #f)'\ 
> > >              '(subset-mode (quote system))'\ 
> > >              '(compile-file "cmacros.ss" "cmacros.so")'\ 
> > >              | ../bin/tarm32le/scheme -q 
> > > Error: illegal instruction 
> > > () 
> > > make[10]: *** [Mf-base:375: cmacros.so] Error 1 
> > > make[9]: *** [Mf-base:179: allx] Error 2 
> > > make[8]: *** [Mf-base:196: bootstrap] Error 2 
> > > make[7]: *** [Makefile:22: build] Error 2 
> > > make[6]: *** [Makefile:20: build] Error 2 
> > > make[6]: Leaving directory '/home/pi/gh/racket-7.8/src/ChezScheme' 
> > > make[5]: *** [Makefile:158: scheme-make-finish] Error 2 
> > > make[5]: Leaving directory '/home/pi/gh/racket-7.8/src/cs/c' 
> > > make[4]: *** [Makefile:148: scheme-make-copy] Error 2 
> > > make[4]: Leaving directory '/home/pi/gh/racket-7.8/src/cs/c' 
> > > make[3]: *** [Makefile:137: scheme] Error 2 
> > > make[3]: Leaving directory '/home/pi/gh/racket-7.8/src/cs/c' 
> > > make[2]: *** [Makefile:60: cs] Error 2 
> > > make[2]: Leaving directory '/home/pi/gh/racket-7.8/src/cs/c' 
> > > make[1]: *** [Makefile:90: racketcs] Error 2 
> > > make[1]: Leaving directory '/home/pi/gh/racket-7.8/src' 
> > > make: *** [Makefile:53: all] Error 2 
> > > 
> > > 
> > > -- 
> > > You received this message because you are subscribed to the Google 
> > Groups 
> > > "Racket Users" group. 
> > > To unsubscribe from this group and stop receiving emails from it, send 
> > an 
> > > email to [email protected] <javascript:>. 
> > > To view this discussion on the web visit 
> > > 
> > 
> https://groups.google.com/d/msgid/racket-users/9b0c4921-2155-4f63-bb79-a6b9ea05
>  
> > > 8ef6o%40googlegroups.com. 
> >
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/racket-users/eca60f12-db4b-4f79-ae2a-681a0089
> 8ba4o%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/20200811160247.294%40sirmail.smtps.cs.utah.edu.

Reply via email to