[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 3129] from OSASK BOARD



このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい。


http://www.imasy.or.jp/~mone/osask/index.cgi?REFER=3c607d31_958a

From: 川合秀実
Message-ID: 3c607d31_958a
Date: 2002/02/06 09:47
Subject: Re: nlink.c

[OSASK 3126]へのレスです。自己レスです。

> うーん、どうもmingw.oには.dataセクションがないようです。だから文字定数
>も.text内にあるんでしょう。ってことはフラット想定である可能性が高いです
>ねえ・・・どうします?mingwにオプションとかはないんですか?

 今朝になってもう一つの可能性を思い付きました。もしかしたら、constな定
数だから気を利かせて.text内においたのかもしれません。ということで、以下
のソースではどんなオブジェクトファイルになるでしょう?

#include <guigui00.h>
#define	AUTO_MALLOC	0

void main2()
{
  struct LIB_WINDOW *window;
  struct LIB_TEXTBOX *wintitle, *textbox;
  static char str0[] = "helloc4", str1[] = "hello, world";
  lib_init(AUTO_MALLOC);
  window = lib_openwindow(AUTO_MALLOC, 0x0200, 136, 48);
  wintitle = lib_opentextbox(0x1000, AUTO_MALLOC, 0,  7, 1,  0,  0, window, 0x00c0, 0);
  textbox  = lib_opentextbox(0x0000, AUTO_MALLOC, 0, 12, 1, 16, 16, window, 0x00c0, 0);
  lib_putstring_ASCII(0x0000, 0, 0, wintitle, 0, 0, str0);
  lib_putstring_ASCII(0x0000, 0, 0, textbox,  0, 0, str1);
  lib_waitsignal(0x0001, 0, 0);
}

> vc.oの方は、どうもエントリーアドレスが0x1000などというぶっ飛びの値にな
>っているせいではないでしょうか?なんでそんな事になってしまっているのかは
>ちょっと調べないと分かりません。

 nlink.cを読んだわけではないので違うかもしれませんが、

>  section .drectve : Found a unknown section 00100a00 skipped

の表示の後、セクション番号の対応関係がずれたりしていませんか?すくなくと
も、vc.oそのものにはおかしいところはないようです。nlink側でカバーできる
のではないでしょうか?

 ちょっとソースを見たところでは、そもそもセクション番号とセクションタイ
プとの対応関係をどこかに保持しているというわけではなさそうですね・・・。
その辺をいじれば対応可能ではないかと・・・。