2009-10-03
_ [Mozilla]
tb3/sm2のmacビルドも通ったので、linuxビルド開始。
いきなりconfigureでコケた。自前の分割mozconfigでbashの文法を使ってるからだ。
shがそのまんまbashのmacやcygwin/mingwとは違って、きちんと元祖のshの動きをするらしい。
必要なライブラリが個別パッケージになってて多いので、ビルド通して引っかかったものから順にインストールしていった。
全部debパッケージでできるあたり、さすがubuntu元debianだな。
ビルド環境はamd64なのだが、特に何も意識することなくビルドできて動いた。
ハマったところは、pyxpcomのビルド。
なぜかPyMarshal_WriteObjectToStringとPyMarshal_ReadObjectFromStringが解決できないとか怒られて、.oを見てみるとシンボルの可視性がHIDDEN。PySequence_GetItemとかは普通にDEFAULTなのに。なぜだ。
ソース追ってみると、nscore.hでいろいろ定義してるが読み切れなかったので、結局#includeの前後で個別に定義してしまった。
まだまだだな自分。
#include "nsPyDOM.h"
#include "nsPyContext.h"
#if defined(__GNUC__) && __GNUC__ >= 4
#pragma GCC visibility push(default)
#endif
#include "compile.h"
#include "eval.h"
#include "marshal.h"
#if defined(__GNUC__) && __GNUC__ >= 4
#pragma GCC visibility pop
#endif