[Mona] as移植チャレンジ

↓を参考に、as, ld を移植しようかと。monacapiを使うと結構進む。
http://www.rbt.his.fukui-u.ac.jp/~naniwa/comp/OS/c_devel.html

↓惜しい!!(気がする

ld -o as.new -n --image-base=0xA0000000 -e _user_start ../monalib/crt_exe.o tc-i
386.o obj-coff.o atof-ieee.o app.o as.o atof-generic.o bignum-copy.o cond.o expr
.o flonum-konst.o flonum-copy.o flonum-mult.o frags.o hash.o input-file.o input-
scrub.o literal.o messages.o output-file.o read.o subsegs.o symbols.o write.o li
sting.o ecoff.o stabs.o sb.o macro.o -L../bfd -lbfd  ../libiberty/libiberty.a  .
./monalib/libmonac.a
../monalib/crt_exe.o(.text+0x76):crt_exe.c: undefined reference to `monamain'
tc-i386.o(.text+0x350):tc-i386.c: undefined reference to `_imp___ctype_'
tc-i386.o(.text+0x232a):tc-i386.c: undefined reference to `_imp___ctype_'
tc-i386.o(.text+0x23fa):tc-i386.c: undefined reference to `_imp___ctype_'
tc-i386.o(.text+0x2454):tc-i386.c: undefined reference to `sscanf'
tc-i386.o(.text+0x24e5):tc-i386.c: undefined reference to `_imp___ctype_'
tc-i386.o(.text+0x2c5b):tc-i386.c: undefined reference to `_imp___ctype_'
obj-coff.o(.text+0x1205):obj-coff.c: undefined reference to `__getreent'
obj-coff.o(.text+0x3462):obj-coff.c: undefined reference to `_alloca'
obj-coff.o(.text+0x34fb):obj-coff.c: undefined reference to `_alloca'
as.o(.text+0x1f):as.c: undefined reference to `__getreent'
as.o(.text+0x4a):as.c: undefined reference to `__getreent'
as.o(.text+0x44a):as.c: undefined reference to `__getreent'
as.o(.text+0x4bd):as.c: undefined reference to `__getreent'
as.o(.text+0x4df):as.c: undefined reference to `__getreent'
as.o(.text+0x501):as.c: more undefined references to `__getreent' follow
as.o(.text+0x5a0):as.c: undefined reference to `strtol'

気になる本

WindowsOS内部のアーキテクチャのすべて

WindowsOS内部のアーキテクチャのすべて


ちょっと興味あり。Linuxよりも Windows NTの方が優れたOSかも知れないと思い始めているので。
作者が日本人なのもこの手の本では非常に珍しいのではないだろうか。

[読書] 村上龍:希望の国のエクソダス

希望の国のエクソダス (文春文庫)

希望の国のエクソダス (文春文庫)


一気に読んでしまった。社会に対する漠然とした不安・不透明感をえぐられた感じ。
エクスタシーとは全然異なる作風に驚かされた。
IT、経済、政治等の異なる分野に対しての取材・事前調査を行い、更に自分できちんと考えることができる人というだけですごいのではなかろうか。

[Mona] binutils移植

最初からきちんとやってみる事に。今回は手順を残した。

  1. binutils以下で configure
  2. cygwin の /usr/include -> /usr/include.bakにリネーム(無用なヘッダをincludeさせたくない)
  3. make all-gas all-ldを試みる
  4. libbertyディレクトリで文句を言われるので
    1. gcc -O2 -c -O2 -I. -I./../include -DNEED_sys_siglist -DNEED_basename -DNEED_strsignal ./dummy.c 2>/dev/null
    2. の/dev/nullにエラーを捨てている部分をコメントアウトする
  5. どうも dummy.oのターゲットそのものが不要っぽいのでコメントアウト
  6. dummy.cの#include "functions.def"をコメントアウト
  7. libberty/Makefile
    1. COMPILE.c = $(CC) -c $(LIBCFLAGS) -I /cygdrive/c/Mona-binutils/monac--/monacapi/include/monac -I /cygdrive/c/Mona-binutils/monac--/monacapi/include -I. -I$(INCDIR) $(HDEFINES)
  8. monacapi/sysを追加。(Monaからぱくる)
  9. choose-temp.c:27:67: sys/file.h: No such file or directory
    1. choose-temp.c に #define NO_SYS_FILE_H /* by higepon */
  10. fdmatch.c:53:22: sys/stat.h: No such file or directory
    1. include コメントアウト
    2. fdmatchは使用しなそうな関数なので return (1);して終了
  11. fnmatch.c:45:19: errno.h: No such file or directory
    1. includeをコメントアウト
  12. floatformat.c:21:44: math.h: No such file or directory
    1. includeをコメントアウト


途中経過のブツ。
Mona-binutils-try.zip(11.5MB)