#LionでGauche HEADビルド中。gccだとgoshができず、(boehm-gcのビルドでコケる)、clangだとprecompの引数が違うと言われる
#さてどうしたもんか
#boehm-gcでこけるならgcのmlに何か流れるんじゃないかなあ近いうちに。
#libtool: compile: gcc -DPACKAGE_NAME=\"gc\" -DPACKAGE_TARNAME=\"gc\" -DPACKAGE_VERSION=\"7.1\" "-DPACKAGE_STRING=\"gc 7.1\"" -DPACKAGE_BUGREPORT=\"Hans.Boehm@hp.com\" -DPACKAGE_URL=\"\" -DGC_VERSION_MAJOR=7 -DGC_VERSION_MINOR=1 -DPACKAGE=\"gc\" -DVERSION=\"7.1\" -DGC_DARWIN_THREADS=1 -DTHREAD_LOCAL_ALLOC=1 -DHAS_X86_THREAD_STATE64___RAX=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DNO_EXECUTE_PERMISSION=1 -DALL_INTERIOR_POINTERS=1 -DGC_GCJ_SUPPORT=1 -DJAVA_FINALIZATION=1 -DATOMIC_UNCOLLECTABLE=1 -DDONT_ADD_BYTE_AT_END=1 -DLARGE_CONFIG=1 -I./include -fexceptions -I libatomic_ops/src -g -O2 -MT os_dep.lo -MD -MP -MF .deps/os_dep.Tpo -c os_dep.c -fno-common -DPIC -o .libs/os_dep.o
libatomic_ops/src/atomic_ops/sysdeps/gcc/x86_64.h: In function ‘AO_test_and_set_full’:
libatomic_ops/src/atomic_ops/sysdeps/gcc/x86_64.h:127: error: unsupported inline asm: input constraint with a matching output constraint of incompatible type!
make[2]: *** [os_dep.lo] Error 1
make[1]: *** [all-recursive] Error 1
#こんな感じ
#4月頃のgcのmlでその話題が出てる。解決策が出てるかどうかいま探してるとこ
##そのエラーの原因はたぶんこれでしょう
##ただ、こっちの環境だと precomp でこけてしまいます。
#for d in gauche util srfi auxsys threads uvector charconv binary net termios fcn
tl file sxml syslog dbm mt-random bcrypt digest vport text zlib sparse peg windo
ws; do (cd $d; make default); done
../../src/gosh -ftest ../../src/precomp -e -P -o gauche--collection ../../libsrc
/gauche/collection.scm
Usage: gosh precomp [options] <file.scm> ...
Options:
--keep-private-macro=NAME,NAME,...
-i,--interface=FILE.SCI
-e,--ext-main
-o,--output=FILE.C
-p,--strip-prefix=PREFIX
-P,--strip-prefix-all
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../../src -I../../gc/include -no-cpp-prec
omp -g -O2 -no-cpp-precomp -fPIC -fno-common -fomit-frame-pointer -c gauche--
collection.c
i686-apple-darwin11-llvm-gcc-4.2: gauche--collection.c: No such file or directory
i686-apple-darwin11-llvm-gcc-4.2: no input files
make[2]: *** [gauche--collection.o] Error 1
../../src/gosh -ftest ../../src/precomp -e -P -o util--match ../../libsrc/util/match.scm
*** ERROR: string required, but got 230
Stack Trace:
_______________________________________
0 (string=? (car args) "--")
At line 91 of "../../lib/gauche/parseopt.scm"
1 (next-option args)
At line 160 of "../../lib/gauche/parseopt.scm"
2 (build-option-parser (list (list "M|keep-private-macro=s" (lambda ...
[unknown location]
#こんな感じでエラーがずっと出ます。
#ふーむ。precompでUsageが出てるってことはコマンドラインかオプションの認識がおかしい?
#precomp の中で args の中身を表示させると、なんか変な値が入っているみたいです。
#9019:% ../../src/gosh -ftest ../../src/precomp -e -P -o gauche--collection ../../libsrc/gauche/collection.scm
#?=args
#?- ("../../lib/gauche/common-macros.scm" 230)
#んー、gcがどっかおかしくて値が書き換わってる?
#それっぽいですね。引数をちょっと変えたり、何回か実行させたりすると、表示される値が変化します。
#SnowLeopard 時代に作った gosh だと Lion でもmake check は通りますね。
#ちなみにBohem GC のx86_64.hをもとに戻した状態で、 llvm じゃない gcc を使っても precomp でエラーになりました。(CC=gcc-4.2)
#moshは↑の問題はCC=gcc-4.2 CXX=g++-4.2 (llvm-gccでなく普通のgccを使う)で回避...
#llvm-gccはコード生成もおかしいことが多いので、clangかgccをオススメします。
#macportsのGCCだと正常に見える>Gauche
#(twitterだと時系列が逆に見えるから幾何学的なレスはよくないのかな)
#私の環境だと、gcc-4.2もmacportsのgcc-mp-4.4もだめっぽいですね。
#同じように precomp の args が変になってるみたいです。
#リンクしてるライブラリとかが関係してるのかなぁ
#一旦cleanにして試してみよう..
#よく原因を理解していないのですが、GCが変なのは -no_pie がないからのようです。
##手元で make check まで通ったので、パッチを送ります。(llvm-gccを利用)
#LionのldからPIEを標準にしたんだろうか。。
##manに有った。。When targeting Mac OS X 10.7 or later PIE is the default for x86_64 main executables.