(toppers-users 1047) Re: jsp-1.3 カーネル作成への道

Hiroshi Doi pikachu @ jebba.jp
2003年 8月 12日 (火) 12:13:10 JST


こんにちは、土居@アスタです。

> 手順としては、こちらと同じかと思います。
> 環境の問題でしょうか? C++の漢字コードのエラーですよね。

 なるほど、エラーは <build-in> という行で発生しているのではなくて
次の行だったのですね。Cygwin と Linux (私の環境) で違うところがあると
すれば環境変数 LANG です。

 Cygwin はシフトJIS ですよね。私は通常 ja_JP.eucJP で使用して
いますので

    # setenv LANG C

でコンパイルしたらそこでのエラーは出なくなりました。感謝です>高橋さん

 しかし、その先で make depend してから make を実行したら

/usr/local/bin/h8300-hms-gcc -c -mh -mint32 -mrelax -O2  -DLABEL_ASM -DCPU_CLOCK
=20000000 -DGDB_STUB -DSUPPORT_INET4 -DSUPPORT_TCP -DSUPPORT_UDP -DSUPPORT_ETHER
 -DIF_ETHER_CFG_ED -DUSE_TCP_NON_BLOCKING -DUSE_COPYSAVE_API -DUSE_UDP_NON_BLOCK
ING -I. -I../include -I../config/h8net -I../config/h8net/akih8_3068f_lan -I../ti
net/include -g -Werror -Wall   ../tinet/netinet/in_subr.c
cc1: warnings being treated as errors
../tinet/netinet/in_subr.c: In function `_tinet_in_get_datagram':
../tinet/netinet/in_subr.c:143: warning: implicit declaration of function `memse
t'
make: *** [in_subr.o] Error 1

どうやら memset() のプロトタイプ宣言が無いことによる警告の
ようなので、とりあえず先に進むために 

#include <jsp_services.h>

の前に string.h をインクルードするようにしました。他にも
memset() や memcpy() が使われているソースファイルをコンパイル
すると同様の警告が出力されたので、その都度 string.h をインクルード
しました。

 memset() と memcpy() 以外に tinet/netapp/dbg_cons.c の 319行目で

    ch = va_arg(ap, char);

とある行が、警告の対象となりました。この場合 char は int に拡張される
はずなので

    ch = va_arg(ap, int);

としてコンパイルしたところ、無事 jsp を構築することができました。
-- 
Hiroshi Doi <pikachu @ jebba.jp>