ZaurusでV8(途中経過)
黒目のV8、とりあえずクロスコンパイルできんもんかと挑戦してみた。ツールチェーンはいつものCodeSourcery。scons初体験。Makefileは?ねぇ?Makefileは?
export CXX=/opt/codesorcery/bin/arm-none-linux-gnueabi-g++
とか
export PATH=/opt/codesorcery/arm-none-linux-gnueabi/bin:$PATH
とかやっても、頑固に/usr/bin/g++を使おうとする。しょうがないので、こちらも強引にsrc/SConscriptを変更。
def ConfigureObjectFiles(): env = Environment() env.Replace(**context.flags['v8']) env['ENV'].update(**context.env_overrides) env['BUILDERS']['JS2C'] = Builder(action=js2c.JS2C) env['BUILDERS']['Snapshot'] = Builder(action='$SOURCE $TARGET --logfile $LOGFILE') cross_complie = '/opt/codesourcery/bin/arm-none-linux-gnueabi-' env['CXX'] = cross_complie + 'g++' env['AR'] = cross_complie + 'ar' env['RANLIB'] = cross_complie + 'ranlib'
はい。力技にもほどがあります。ごめんなさい。んで、ビルドしてみると
/opt/codesourcery/bin/arm-none-linux-gnueabi-g++ -o obj/release/platform-linux.o -c -ansi -pedantic -Wall -Werror -W -Wno-unused-parameter -fno-strict-aliasing -O2 -fno-rtti -fno-exceptions -DENABLE_LOGGING_AND_PROFILING -DARM src/platform-linux.cc src/platform-linux.cc: In function 'void v8::internal::ProfilerSignalHandler(int, siginfo_t*, void*)': src/platform-linux.cc:570: error: 'struct sigcontext' has no member named 'gregs' src/platform-linux.cc:571: error: 'struct sigcontext' has no member named 'gregs' scons: *** [obj/release/platform-linux.o] Error 1
ぐはっ。今日はここまで。まだソースも見てません。ごめんなさい。