在 Mac OS X 上从源代码编译 SBCL

发布于 2024-10-02 08:52:01 字数 2125 浏览 2 评论 0原文

我需要从源代码编译 SBCL 并在我的 Mac OS X MacBook 上启用线程。

我已经完成了以下操作:

  1. 下载了 sbcl-1.0.29.54.rc1 并将其解压缩到硬盘驱动器的根目录(如果更好的话,我可以将其放在其他地方)。
  2. 调用

    sh make.sh
    

它做了很多事情(它不会立即失败),但随后发生以下故障:

make: *** [backtrace.o] Error 1

我无法从前面的输出中真正看出问题是什么:

; /sbcl-1.0.29.54.rc1/obj/from-host/src/compiler/generic/genesis.lisp-obj-tmp written
; compilation finished in 0:00:02.281
STYLE-WARNING: redefining FOP-MAYBE-COLD-LOAD in DEFUN
T
* 
beginning GENESIS, creating headers in "src/runtime/genesis"
NIL
* 
real    1m24.729s
user    1m17.343s
sys 0m5.793s
//entering make-target-1.sh
//building runtime system and symbol table file
rm -f *.[do] sbcl sbcl.nm sbcl.h core *.tmp 
echo '#include "genesis/config.h"' >sbcl.h
echo '#include "genesis/constants.h"' >>sbcl.h
In file included from darwin-os.c:21:
/usr/include/ucontext.h:42:2: error: #error ucontext routines are deprecated, 
      and require _XOPEN_SOURCE to be defined
gcc -g -Wall -O2 -fdollars-in-identifiers -mmacosx-version-min=10.4 -I. -no-cpp-precomp  -c -o alloc.o alloc.c
In file included from alloc.c:21:
runtime.h: In function 'CONS':
runtime.h:151: warning: cast to pointer from integer of different size
runtime.h: In function 'SYMBOL':
runtime.h:157: warning: cast to pointer from integer of different size
runtime.h: In function 'FDEFN':
runtime.h:163: warning: cast to pointer from integer of different size
gcc -g -Wall -O2 -fdollars-in-identifiers -mmacosx-version-min=10.4 -I. -no-cpp-precomp  -c -o backtrace.o backtrace.c
In file included from backtrace.c:19:
runtime.h: In function 'CONS':
runtime.h:151: warning: cast to pointer from integer of different size
runtime.h: In function 'SYMBOL':
runtime.h:157: warning: cast to pointer from integer of different size
runtime.h: In function 'FDEFN':
runtime.h:163: warning: cast to pointer from integer of different size
/var/folders/T2/T2z5uzvpHnmC3o+vJVluoU+++TI/-Tmp-//ccEobrpp.s:851:suffix or operands invalid for `mov'
make: *** [backtrace.o] Error 1

谁能告诉我我需要做什么来解决这个问题?

I need to compile SBCL from source and enable threading on my Mac OS X MacBook.

I've done the following:

  1. Downloaded sbcl-1.0.29.54.rc1 and unzipped it to the root of my hard drive (I could put it somewhere else if that would be better).
  2. Invoked

    sh make.sh
    

It does a lot of stuff (it doesn't fail immediately), but then the following failure occurs:

make: *** [backtrace.o] Error 1

I can't really tell what the problem is from the preceding output:

; /sbcl-1.0.29.54.rc1/obj/from-host/src/compiler/generic/genesis.lisp-obj-tmp written
; compilation finished in 0:00:02.281
STYLE-WARNING: redefining FOP-MAYBE-COLD-LOAD in DEFUN
T
* 
beginning GENESIS, creating headers in "src/runtime/genesis"
NIL
* 
real    1m24.729s
user    1m17.343s
sys 0m5.793s
//entering make-target-1.sh
//building runtime system and symbol table file
rm -f *.[do] sbcl sbcl.nm sbcl.h core *.tmp 
echo '#include "genesis/config.h"' >sbcl.h
echo '#include "genesis/constants.h"' >>sbcl.h
In file included from darwin-os.c:21:
/usr/include/ucontext.h:42:2: error: #error ucontext routines are deprecated, 
      and require _XOPEN_SOURCE to be defined
gcc -g -Wall -O2 -fdollars-in-identifiers -mmacosx-version-min=10.4 -I. -no-cpp-precomp  -c -o alloc.o alloc.c
In file included from alloc.c:21:
runtime.h: In function 'CONS':
runtime.h:151: warning: cast to pointer from integer of different size
runtime.h: In function 'SYMBOL':
runtime.h:157: warning: cast to pointer from integer of different size
runtime.h: In function 'FDEFN':
runtime.h:163: warning: cast to pointer from integer of different size
gcc -g -Wall -O2 -fdollars-in-identifiers -mmacosx-version-min=10.4 -I. -no-cpp-precomp  -c -o backtrace.o backtrace.c
In file included from backtrace.c:19:
runtime.h: In function 'CONS':
runtime.h:151: warning: cast to pointer from integer of different size
runtime.h: In function 'SYMBOL':
runtime.h:157: warning: cast to pointer from integer of different size
runtime.h: In function 'FDEFN':
runtime.h:163: warning: cast to pointer from integer of different size
/var/folders/T2/T2z5uzvpHnmC3o+vJVluoU+++TI/-Tmp-//ccEobrpp.s:851:suffix or operands invalid for `mov'
make: *** [backtrace.o] Error 1

Can anyone tell me what I need to do to fix this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柒夜笙歌凉 2024-10-09 08:52:01

此错误报告中有一个补丁。尝试应用它并干净地重建(make clean && ...),然后看看问题是否消失。

there is a patch located at this bug report . Try applying it and rebuilding cleanly (make clean && ...) then see if the problem goes away.

沫离伤花 2024-10-09 08:52:01

那个版本已经很老了。 SBCL 最高可达 1.0.44。 1.0.44 在 Mac OS X 上构建良好。

That version is pretty old. SBCL is up to 1.0.44. 1.0.44 builds fine on Mac OS X.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文