[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

[MD:7400] pdump 削除



藤井です。

pdump 関連コードの削除を行ないました。

とりあえず以下の環境で動いています。

OS:       Windows 2000 sp4
Compiler: Cygwin gcc or MS VS.NET 2003(MSVC 7.1)

ビルドはフルビルドが必要になります。
   - configure.meadow.bat の実行
   - make bootstrap (nmake bootstrap)
   - make install   (nmake install)

他の OS (特に Win9X 系)やコンパイラでの動作を確認いただけると助かります。

なお、削除前のコードのスナップショットを tags/BEFORE-NO-PDUMP に、削除
後のスナップショットを tags/AFTER-NO-PDUMP に置いています。

以下、今回の変更内容のサマリです。

<<変更概要>>

(1) mw32mem.c の廃止、および w32heap.c と unexw32.c の復活。

(2) エントリポイントの変更(mw32_start:mw32mem.c -> _start:unexw32.c)

(3) pdump 関連コードの削除(alloc.c, emacs.c など多数)

(4) [MD:6474] の Lisp_Float, Lisp_Cons の下記未マージ分のマージおよび、
    仮対処コードの削除

From: MIYOSHI Masanori <miyoshi@xxxxxxxxxxx>
> 以下、問題があってマージしていない部分に関するメモです。
> 
> o Lisp_Float と Lisp_Cons に GC 用のマークビットを仮に追加
>   (lisp.h)。pdump の実装を容易にするため。これらの両オブジェクトの
>   マークビットは下記のようにオブジェクトの外部に移動された。この変
>   更に、pdumper を対応させるのは面倒(というかよく分からん)だったの
>   で、このように仮に対処。
> 
> alloc.c:
> > struct float_block
> > {
> >   /* Place `floats' at the beginning, to ease up FLOAT_INDEX's job.  */
> >   struct Lisp_Float floats[FLOAT_BLOCK_SIZE];
> >   int gcmarkbits[1 + FLOAT_BLOCK_SIZE / (sizeof(int) * CHAR_BIT)];
> >   struct float_block *next;
> > };

(5) [MD:6498] での pdump 8 バイトアライメント対応のコード削除

(6) PURESIZE の調整
    (PURESIZE を直接変更するのではなく、src/s/ms-w32.h の
     SYSTEM_PURESIZE_EXTRA を変更)

(7) reinit_* の処理を呼び出し元に移動
    # このあたりの変更は元々 #ifdef なしで変更が入っていたため、
    # どこまでが pdump 関連の変更か判別できていません。
    # 今回の修正で余計なことをしているかもしれません。

(8) dump.bat の変更

(9) makefile の変更
      - (2) のエントリポイント変更への対応
      - ビルドに addsection.exe が必要になるので、makefile に追加
      - meadow.dmp についてのルールを削除。
      - -nd オプション廃止にともなう修正

--
藤井 正行 / Masayuki FUJII