ルギア君の戯言

雑多な記事。

Linux → FreeBSD (x86)のクロスコンパイル

うまくできたので、紹介。


これで C で CGI が書ける(ぁ


ちょっとバイナリサイズが大きいのが難点か(shared をオンにしなかったから)
あとで shared をオンにしてやってみるか。


Binutils → 2.17
GCC → 4.1.2
(システムと同じバージョンを採用)


まずは解凍。

$ tar zxvf binutils-2.17.tar.gz
$ tar zxvf gcc-4.1.2.tar.gz


そして、Binutils をビルド。

$ cd binutils-2.17
$ mkdir build
$ cd build
$ ../configure --prefix=/usr/local --target=i386-pc-freebsd7 --host=i686-momonga-linux
$ make
$ sudo make install


GCC をビルドする前に、FreeBSD の LiveFS CD (約200MB)をダウンロードしてきて、
以下のようにコピー。
GCC から BSD 用の crt とヘッダファイルを要求されるため。

コピー元 コピー先
/cdrom/usr/include/* /usr/local/i386-pc-freebsd7/include/*
/cdrom/usr/lib/* /usr/local/i386-pc-freebsd7/lib/*


では、GCC をビルド。

$ cd gcc-4.1.2
$ mkdir build
$ cd build
$ ../confiugre --prefix=/usr/local --enable-languages=c,c++,objc,obj-c++ --target=i386-pc-freebsd7 --host=i686-momonga-linux
$ make
$ sudo make install

うん、以外にすんなりいったな。


テスト: http://lugia.so.land.to/cgitest.cgi
って言ってもわからないかw


successful のつづり間違っているけどそんなに気にしないでw


あ、あと、テストプログラムはそのうちなくなっていると思う。


あのサーバー、SuEXEC が入っているのは良いんだが、権限を厳密に 700 を要求するのねw


755 では動かなかったしw