ChezScheme icon indicating copy to clipboard operation
ChezScheme copied to clipboard

树莓派上编译scheme

Open luzhiguang opened this issue 7 years ago • 11 comments

uname -a Linux pi 4.14.50-v7+ #1122 SMP Tue Jun 19 12:26:26 BST 2018 armv7l GNU/Linux

请问什么时候能支持在树莓派3B+上编译安装chezscheme? When can I support compiling and installing chezscheme on Raspberry Pi 3B+? 我执行./configure时提示不支持树莓派,无法编译安装。 When I executed ./configure, I was prompted not to support the Raspberry Pi, and I could not compile the installation. 报以下错误代码 Report the following error code

./configure: 264: [: =: unexpected operator ./configure: 264: [: =: unexpected operator no suitable machine type found try rerunning as ./configure -m= available machine types: a6le, a6nt, a6osx, i3le, i3nt, i3osx, ta6le, ta6nt, ta6osx, ti3le, ti3nt, and ti3osx

希望能尽早支持。 I hope to support as soon as possible.

luzhiguang avatar Nov 03 '18 15:11 luzhiguang

@luzhiguang You can post the full output of echo $SHELL and sh -x configure to help us debug this issue.

qzivli avatar Nov 04 '18 00:11 qzivli

这是我执行bash -x configure > output 2>&1命令得到的结果,如果还需要更多信息,请您告诉我具体需要执行的命令和步骤,谢谢。 This is the result of my bash -x configure > output 2>&1 command. If you need more information, please tell me the specific commands and steps that need to be executed. Thank you.

output.txt

luzhiguang avatar Nov 04 '18 04:11 luzhiguang

@luzhiguang

  1. There's no prebuilt boot file for arm32, you need cross compilation; #163 may make some help.
  2. A minor bug in the configure script, it produces a disturbing error message.

qzivli avatar Nov 04 '18 09:11 qzivli

我按照您提交的信息修改了下,执行./configure后没有报错信息了,提示我输入选项 I modified it according to the information you submitted, and did not report the error after executing ./configure, prompting me to enter the option. no suitable machine type found try rerunning as ./configure -m= available machine types: a6le, a6nt, a6osx, i3le, i3nt, i3osx, ta6le, ta6nt, ta6osx, ti3le, ti3nt, and ti3osx 然后我输入./configure -m=a6le选项,可以配置,但编译安装时报错了 Then I type the ./configure -m=a6le option, which can be configured, but the error is reported when compiling and installing. $ make install (cd a6le && make install) (cd c ; make) ln -s ../../c/statics.c statics.c ln -s ../../c/system.h system.h ln -s ../../c/types.h types.h ln -s ../../c/version.h version.h ln -s ../../c/externs.h externs.h ln -s ../../c/globals.h globals.h ln -s ../../c/segment.h segment.h ln -s ../../c/thread.h thread.h ln -s ../../c/sort.h sort.h (cd ../zlib; CFLAGS=-m64 ./configure --64) Checking for gcc... Compiler error reporting is too harsh for ./configure (perhaps remove -Werror). ** ./configure aborting. Makefile:40: recipe for target '../zlib/configure.log' failed make[2]: *** [../zlib/configure.log] Error 1 Makefile:20: recipe for target 'build' failed make[1]: *** [build] Error 2 Makefile:22: recipe for target 'install' failed make: *** [install] Error 2 我的树莓派硬件信息如下 My Raspberry Pi hardware information is as follows PI3B + Broadcom BCM2837B0, Cortex-A53 64-bit SoC @ 1 4GHz

luzhiguang avatar Nov 04 '18 15:11 luzhiguang

For cross compilation, first steps should be done on a “host” machine, e.g., Linux runs on x86. Issue #163 may contain some useful information for you. I haven’t a Raspberry Pi (yet), so I can’t give more help now, sorry.

qzivli avatar Nov 04 '18 16:11 qzivli

Try ./configure -m=arm32le

NalaGinrut avatar Nov 05 '18 03:11 NalaGinrut

这是我在苹果系统下执行这个交叉编译命令输出的结果,通过大家的帮助,虽然没有编译成功,但也学会很多,明白在树莓派上还不能直接编译安装。我是才入门学习这门语言,并没有其它语言的基础,其它学习这门语言的人好像都有别的语言的编程经验。网上也并没有找到适合零基础学习这门语言很好的资料,看来我要费不少时间来摸索学习了。还是很感谢大家的帮助的! This is the result of my cross-compilation command output under the Apple system. With the help of everyone, although it has not been compiled successfully, it has learned a lot, and I can't directly compile and install it on the Raspberry Pi. I only started to learn the language, and there is no basis for other languages. Other people who study the language seem to have programming experience in other languages. I have not found any information suitable for the language of zero-based learning on the Internet. It seems that I have to spend a lot of time to learn. Still very grateful to everyone for your help! $ ./configure -m=armle no suitable machine type found try rerunning as ./configure -m= available machine types: a6le, a6nt, a6osx, i3le, i3nt, i3osx, ta6le, ta6nt, ta6osx, ti3le, ti3nt, and ti3osx

luzhiguang avatar Nov 06 '18 16:11 luzhiguang

Please read https://bbs.pku.edu.cn/v2/post-read.php?bid=13&threadid=16238467 请参考 https://bbs.pku.edu.cn/v2/post-read.php?bid=13&threadid=16238467 Please mention the difference of cp between linux and macos 请注意cp在linux与macos间的区别。 Cross compile can be solved by https://github.com/cisco/ChezScheme/issues/13, so please close this issue @dybvig

xaengceilbiths avatar Mar 13 '19 07:03 xaengceilbiths

@luzhiguang 也許可以用QEMU User Mode或者其他Scheme實現來編譯。

zaoqi avatar Apr 14 '19 10:04 zaoqi

@luzhiguang 沒有預編譯的文件,導致Racket的Chez版本也不可以在arm上正常編譯,導致我在arm設備上只能用傳統的Racket編譯https://gitlab.com/the-language/the-language

zaoqi avatar Apr 14 '19 10:04 zaoqi

@luzhiguang 我突然看到了https://github.com/racket/racket/commit/e337c65204402ef4faf09f6a848d2d873d0e63a7 現在不需要交叉編譯了。

zaoqi avatar Apr 20 '19 11:04 zaoqi

Closing per discussion and the switch to pb boot files (which removes the need to build arm32 boot files elsewhere).

mflatt avatar Nov 21 '23 22:11 mflatt