level 3
zzk981
楼主
整来了一台sparc t2的机器,单路8核32线程,线程多且省电,打算用来多开lisp爬虫爬网页
,自己装好了gentoo linux,内核版本5.5.11,由于sbcl官网提供的安装版本只到1.0.28,跑hunchentoot,lla啥的基本是没戏了,所以研究了一***cl的交叉编译

1.下载sbcl源码并解压
2.内网另找一台安装有sbcl的x86机器,两台机器开启nfs,吧sparc机器上的源码目录挂到x86机器上(反过来也行)
3.x86机(host)上设定相关编译主机架构和交叉编译器:
host # export SBCL_ARCH=x86
host # export SBCL_XC_HOST=sbcl
4.sparc机(target)上设定目标架构:
target # export SBCL_ARCH=sparc
5.重要!修改源码目录里的src/runtime/Config.sparc-linux

把原来的-m32全改成机器对应的架构,可参照gcc对sparc架构的options:
https://gcc.gnu.org/onlinedocs/gcc/SPARC-Options.html
6.sparc机运行make-config.sh
target # sh make-config.sh --arch=sparc --prefix=/usr
7.host机和target机交替运行两阶段host和target的生成脚本:
host # sh make-host-1.sh
target # sh make-target-1.sh
host # sh make-host-2.sh
target # sh make-target-2.sh
target # sh make-target-contrib.sh
这里两次target的生成如果出错,跟第5步Config的设定有一定关系
8.安装
target # sh install.sh
9.运行安装好的sbcl

貌似OK
,接下来看看往后会出现什么坑
2020年03月31日 14点03分
1

1.下载sbcl源码并解压2.内网另找一台安装有sbcl的x86机器,两台机器开启nfs,吧sparc机器上的源码目录挂到x86机器上(反过来也行)
3.x86机(host)上设定相关编译主机架构和交叉编译器:
host # export SBCL_ARCH=x86
host # export SBCL_XC_HOST=sbcl
4.sparc机(target)上设定目标架构:
target # export SBCL_ARCH=sparc
5.重要!修改源码目录里的src/runtime/Config.sparc-linux

把原来的-m32全改成机器对应的架构,可参照gcc对sparc架构的options:https://gcc.gnu.org/onlinedocs/gcc/SPARC-Options.html
6.sparc机运行make-config.sh
target # sh make-config.sh --arch=sparc --prefix=/usr
7.host机和target机交替运行两阶段host和target的生成脚本:
host # sh make-host-1.sh
target # sh make-target-1.sh
host # sh make-host-2.sh
target # sh make-target-2.sh
target # sh make-target-contrib.sh
这里两次target的生成如果出错,跟第5步Config的设定有一定关系
8.安装
target # sh install.sh
9.运行安装好的sbcl

貌似OK