Chibi-Schemeをx86_64でコンパイルしてみる。

synthcode - chibi-scheme

Chibi-ShemeをUbuntu9.04のx86_64版でコンパイルしてみました。

特に事前に入れるべきライブラリはなさそうなので、何も考えずにmakeをします。すると、

$ make
/usr/bin/ld: eval.o: relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC

コンパイルエラーとなってしまいました。eval.oがshared objectだから-fPIC付けて再コンパイルしろといわれてるようなので、Makefileにちょっと手を入れて再度makeしてみます。

=== modified file 'Makefile'
--- Makefile    2009-06-30 00:00:00 +0000
+++ Makefile    2009-06-30 00:00:00 +0000
@@ -52,10 +52,10 @@
        echo '#define sexp_module_dir "'$(MODDIR)'"' > $@
 
 sexp.o: sexp.c gc.c $(INCLUDES) Makefile
-       $(CC) -c $(XCPPFLAGS) $(XCFLAGS) -o $@ $<
+       $(CC) $(CLIBFLAGS) -c $(XCPPFLAGS) $(XCFLAGS) -o $@ $<
 
 eval.o: eval.c debug.c opcodes.c include/chibi/eval.h $(INCLUDES) Makefile
-       $(CC) -c $(XCPPFLAGS) $(XCFLAGS) -o $@ $<
+       $(CC) $(CLIBFLAGS) -c $(XCPPFLAGS) $(XCFLAGS) -o $@ $<
 
 main.o: main.c $(INCLUDES) Makefile
        $(CC) -c $(XCPPFLAGS) $(XCFLAGS) -o $@ $<

これでコンパイルは通るようになりました。