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

ぐはっ。今日はここまで。まだソースも見てません。ごめんなさい。