インターフェースの差異
なるへそ〜、2日(3hぐらい)無駄にしてしまった。
gccのオプションによってオブジェクト内のシンボル名が変わっちゃうのね。
gcc -O2
gcc -O3 -march=athlon-xp -mmmx -m3dnow -msse -mfpmath=sse -maccumulate-outgoing-args -mpush-args -minline-all-stringops -fprefetch-loop-arrays -fms-extensions -g -pg -ftree-dominator-opts -ftree-lrs -ftree-ccp -ftree-ch -ftree-combine-temps -ftree-loop-im -ftree-loop-ivcanon -ftree-loop-linear -ftree-loop-optimize -ftree-vectorize -fmodulo-sched -fweb -fipa-cp -fipa-pure-const -fipa-reference -fipa-type-escape -faccess-control -fjump-tables -ftree-salias -ftree-sink -ftree-store-ccp -ftree-store-copy-prop -ftree-vect-loop-version -ftree-vrp -funsafe-loop-optimizations
この二つの間で変わってきちゃうのね。luaの標準ソースを上で、luafilesystemを下でコンパイルしたら見事にundefiend referenceになっちゃったよ。