代码之家  ›  专栏  ›  技术社区  ›  Paul Reiners

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

  •  4
  • Paul Reiners  · 技术社区  · 15 年前

    我需要从源代码编译sbcl,并在我的MacOSXMacBook上启用线程。

    我做了以下工作:

    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
    

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

    2 回复  |  直到 15 年前
        1
  •  4
  •   krzysz00    15 年前

    有一个补丁 at this bug report . 尝试应用它并干净地重新构建(使其干净),然后查看问题是否消失。

        2
  •  2
  •   Xach    15 年前

    那个版本很旧。SBCL高达1.0.44。1.0.44在Mac OS X上构建良好。