So-net無料ブログ作成

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!!

次回は、テストプログラムを作りながら動きを確かめてみよかなと。



nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。