タグ

ブックマーク / blog.kmckk.com (5)

  • KMC Staff Blog:RubyをAndroid用にビルドする

    2011年07月21日 RubyAndroid用にビルドする 昨年の夏に書いた記事、「AndroidのNDKツールを使ってrubyをビルドして動かす」のアップデートです。 rubyのソースコードはruby-1.9.2-p290, NDKはr6を使用しています。 開発マシンはx86_64のUbuntu 10.04です。 ネイティブのruby 1.9.2のインストール ruby 1.9.2をクロスビルドするためにはネイティブのruby 1.9.2が必要です。あらかじめインストールしておきます。 $ tar xvf ruby-1.9.2-p290.tar.bz2 $ mkdir obj $ cd obj $ ../ruby-1.9.2-p290/configure $ make $ sudo make install /usr/local/binにインストールされます。 Rubyのソースにパッ

  • KMC Staff Blog:Androidのinit

    2010年12月09日 Androidのinit Androidで一番最初に起動するユーザープロセスであるinitについて調べたのでそのメモ。 (注:この記事はAndroid 2.2のソースコードに関するもの。) /init initはルートディレクトリの直下に置かれている。すなわち、/init 通常のLinuxではinitは /sbin/init Linuxカーネルはデフォルトの設定では最初のプロセスを /sbin/init /etc/init /bin/init /bin/sh の順に探しにいく。(kernelのinit/main.c init_post参照) このため、Androidを起動するときにはカーネルのブートパラメータに "init=/init" を追加して明示的にinitのパスを指定しなければならない。それを忘れると "No init found. Try passing

  • KMC Staff Blog:AndroidのNDKツールを使ってrubyをビルドして動かす

    2010年08月26日 AndroidのNDKツールを使ってrubyをビルドして動かす 前回の知識を使ってNDKのツールで先日リリースされたruby-1.9.2をビルドしてAndroid上で動かしてみました。 (2011.7.21) アップデート記事を書きました。 RubyAndroid用にビルドする 開発環境にはUbuntu 9.04 (x86_64)を使っています。 準備 ruby 1.9.2をクロスビルドするためには、そのホストruby 1.9.2がインストールされている必要があります。(ビルド中に実行されるrubyスクリプトが1.9.2用になっているため。) $ tar xvf ruby-1.9.2-p0.tar.bz2 $ mkdir obj $ cd obj $ ../ruby-1.9.2-p0.android/configure $ make $ sudo make in

  • KMC Staff Blog:クロス開発でのQEMU まとめ(基礎編)

    2010年02月23日 クロス開発でのQEMU まとめ(基礎編) ここまでのQEMUの記事のリンク集です。 なお、CELFテクニカルジャンボリーにて、時間をいただきましたので、このあたりについて話をさせていただきます。 (3月5日 中野サンプラザ 入場無料) よろしければご参加ください。 まず使ってみる Debian/Ubuntu ならば apt-get install qemu で簡単にインストールすることができます。 それを使ってARMのDebianをネットインストールしてみるのがよいでしょう。 ARMのQEMUにDebianをnetinstallする QEMUをソースからビルドする アーカイブをダウンロードしてのビルド (LinuxでのビルドとWindowsのMSYS環境でのビルド) ARMのQEMUをソースからビルドして, その上でDebianを動かす gitで最新のソースを取得し

    yugui
    yugui 2010/02/23
  • KMC Staff Blog:DWARF と有限状態機械

    2009年09月14日 DWARF と有限状態機械 DWARF はソースレベルデバッギングのための情報をオブジェクトファイル中に保持する際のデータフォーマットです。 ソースレベルデバッガが最低限必要とする情報として、ソースコード中のプログラム行の位置と、対応するマシン命令アドレスの表があります。特にコンパイラによる高度な最適化が入ってくると、1つの行から不連続なアドレスにマシン命令が生成されるようになってくるので、デバッグ情報が無ければ、どこのアドレスにブレークポイントを張れば良いのか、ステップ実行の時にどこで止めれば良いのか、などが全くわからなくなってしまいます。 この対応表は非常に巨大なものに成り得るので、DWARFは対応表をそのまま持つのではなく、行番号プログラム(line number program)によって対応表を生成するという仕様になっています。これは、JVMの仮想機械語のよ

  • 1