PDP-11のクロス環境とhello world
UNIX V6のコードを読み始めたが、やはりPDP-11上でいろいろ動かして試してみたい。
とりあえず、ネットの情報を集めて PDP-11のクロスコンパイル環境を構築してみた。
動作環境はsimhのPDP-11のエミュレーション環境。
■gccのPDP-11クロス環境 (Mac OS X 10.9.x)
以下のバージョンでビルドに成功した。
環境は基本的に、以前ARM用に作ったものをベースにしている。
http://oodiarydiary.blog.so-net.ne.jp/2014-03-16
gcc-4.8.2 のビルドにはgmp, mpfr, mpcが必要。
すでにインストール済みだったので今回は省けた。
(1) binutils-2.24
展開したディレクトリの下で
$ mkdir build
$ cd build
$ CFLAGS=-Wno-error=deprecated-declarations ../configure --target=pdp11-aout --disable-nls --prefix=/usr/local/pdp11-aout
$ make
$ sudo make install
(2) gcc-4.8.2
展開したディレクトリの下で
$ mkdir build
$ cd build
$ ../configure --target=pdp11-aout --disable-nls --disable-threads --disable-shared --disable-libssp --enable-languages=c --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc --prefix=/usr/local/pdp11-aout
$ make
$ sudo make install
■PDP-11上で動かす
以下のサイトの記事をまんま参考にした。
http://ancientbits.blogspot.jp/2012/07/programming-barebones-pdp11.html
上記の記事では、PDP-11用のリンカスクリプトを作って、
最後にa.outファイルを生成するが、このままでは動かない。
ヘッダー部を削るために、この人は独自に作ったbin2loadというコマンドを作った。
今回は手順通りにこれを使ってPDP-11上でhello worldまで動かせた。
GOOD!!
次回は、テストプログラムを作りながら動きを確かめてみよかなと。
コメント 0