(toppers-users 1244) offsetについて教えて下さい

senjyu6 senjyu @ dream.com
2003年 9月 26日 (金) 16:33:10 JST


千寿です。
御世話になります。

未だカーネル(サンプル)のビルドをしたことが
無かった為、とりあえず一旦行なってみようと
考え、ビルドしている最中です。
 Win2000+Cygwin(今年4月頃の物)
 binutils-2.14、gcc-core-3.3
 gdb-5.3、newlib-1.11.0
 JSP-1.3
上記環境でターゲットはkz_sh4です。
(ターゲットは何でも良かったのですが、
 (有)スペースソフト様に手順が書かれて
 あったという単純な理由です。)

環境作成などは何とか出来上がったのですが、
JSPのコンパイル時におかしな現象がおきます。
 カーネルアーカイブ展開
 mpstrstream.h修正。
 ../cnfigure....
 MakeFile修正
 make depend
  make
という手順でおこなっているのですが、
最後のmake時にエラーが出てしまいます。

../config/sh3/cpu_support.S: Assembler messages:
../config/sh3/cpu_support.S:291: Error: value of e000000000000000 too large
for
field of 2 bytes at 000000000000020f
../config/sh3/cpu_support.S:436: Error: value of e000000000000000 too large
for
field of 2 bytes at 00000000000002d3
make: *** [cpu_support.o] Error 1

cpu_support.S:291、cpu_support.S:436はTCB_enatex
なのですが、offset.hを見ると、
#define TCB_enatex -2305843009213693952
と宣言されています。こので値は確かに”too large”
になると思うのですが、make depend時に出力される
このファイルが何故このような値を作成するのでしょうか?
ターゲットをms7709ase01にしても同じでした。

下記に”make depend”時のメッセージを付けておきますが
特にエラーにはなっていないと思います。
環境設定の手順を違えているのか、JSPのビルド手順を
間違えているのか或いは環境(ツール)そのものの
組合せが悪いのか何方か御指導御願い致します。
 作成手順を覚えるだけのテストですので、
 結果をターゲットで動作させるわけではありませんが
 少し後味が悪いので...
 出来ればビルドした後のoffset.h内容が分かれば、
 それに置き換え、そのまま作業してみたいとも思っています。
宜しく御願い致します。


$ make depend
rm -f Makefile.depend
../utils/makedep -P cpp \
-T "kernel_cfg.c kernel_id.h kernel_chk.c" \
        -O "-I. -I../include -I../config/sh3 -I../config/sh3/kz_sh4"
sample1.cfg
 \
        >> Makefile.depend
../utils/makedep -C /usr/local/bin/sh-hitachi-elf-gcc -S
../config/sh3:../config
/sh3/kz_sh4:../kernel \
-O "-m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB -I. -I../include -I../config/sh3
-I../c
onfig/sh3/kz_sh4 -g -Wall -I../kernel" \
        cpu_support.S sys_support.S banner.c kernel_cfg.c \
        startup.c cpu_config.c sys_config.c task.c wait.c time_event.c
syslog.c
task_manage.c task_sync.c task_except.c semaphore.c eventflag.c dataqueue.c
mail
box.c mempfix.c time_manage.c cyclic.c sys_manage.c interrupt.c exception.c
>> M
akefile.depend
../utils/makedep -C /usr/local/bin/sh-hitachi-elf-gcc -S
../config/sh3:../config
/sh3/kz_sh4:../kernel \
-O "-m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB -I. -I../include -I../config/sh3
-I../c
onfig/sh3/kz_sh4 -g -Wall -I../kernel" \
        -s makeoffset.c >> Makefile.depend
../utils/makedep -C /usr/local/bin/sh-hitachi-elf-gcc -S
../config/sh3:../config
/sh3/kz_sh4:../kernel \
-O "-m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB -I. -I../include -I../config/sh3
-I../c
onfig/sh3/kz_sh4 -g -Wall -I../kernel" \
        -s kernel_chk.c >> Makefile.depend
../utils/makedep -C /usr/local/bin/sh-hitachi-elf-gcc -S
../systask:../libjsp \
-O "-m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB -I. -I../include -I../config/sh3
-I../c
onfig/sh3/kz_sh4 -g -Wall -I../systask" \
         timer.c serial.c logtask.c vasyslog.c jsp_perror.c strerror.c \
        >> Makefile.depend
../utils/makedep -C /usr/local/bin/sh-hitachi-elf-gcc -S ../libjsp \
-O "-m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB -I. -I../include -I../config/sh3
-I../c
onfig/sh3/kz_sh4 -g -Wall " \
         sample1.c  \
        >> Makefile.depend


$ make
/usr/local/bin/sh-hitachi-elf-gcc -c -m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB
-I. -I
../include -I../config/sh3 -I../config/sh3/kz_sh4 -g -Wall -I../kernel
../config
/sh3/start.S
/usr/local/bin/sh-hitachi-elf-gcc -c -m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB
-I. -I
../include -I../config/sh3 -I../config/sh3/kz_sh4 -g -Wall -I../kernel
kernel_cf
g.c
/usr/local/bin/sh-hitachi-elf-gcc -c -m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB
-I. -I
../include -I../config/sh3 -I../config/sh3/kz_sh4 -g -Wall -I../systask
../systa
sk/timer.c
/usr/local/bin/sh-hitachi-elf-gcc -c -m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB
-I. -I
../include -I../config/sh3 -I../config/sh3/kz_sh4 -g -Wall -I../systask
../systa
sk/serial.c
/usr/local/bin/sh-hitachi-elf-gcc -c -m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB
-I. -I
../include -I../config/sh3 -I../config/sh3/kz_sh4 -g -Wall -I../systask
../systa
sk/logtask.c
/usr/local/bin/sh-hitachi-elf-gcc -c -m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB
-I. -I
../include -I../config/sh3 -I../config/sh3/kz_sh4 -g -Wall -I../systask
../libjs
p/vasyslog.c
/usr/local/bin/sh-hitachi-elf-gcc -c -m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB
-I. -I
../include -I../config/sh3 -I../config/sh3/kz_sh4 -g -Wall -I../systask
../libjs
p/jsp_perror.c
/usr/local/bin/sh-hitachi-elf-gcc -c -m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB
-I. -I
../include -I../config/sh3 -I../config/sh3/kz_sh4 -g -Wall -I../systask
../libjs
p/strerror.c
/usr/local/bin/sh-hitachi-elf-gcc -c -m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB
-I. -I
../include -I../config/sh3 -I../config/sh3/kz_sh4 -g -Wall  sample1.c
/usr/local/bin/sh-hitachi-elf-gcc -c -m3 -O2 -mb -DLABEL_ASM   -DGDB_STUB
-I. -I
../include -I../config/sh3 -I../config/sh3/kz_sh4 -g -Wall -I../kernel
../config
/sh3/cpu_support.S
../config/sh3/cpu_support.S: Assembler messages:
../config/sh3/cpu_support.S:291: Error: value of e000000000000000 too large
for
field of 2 bytes at 000000000000020f
../config/sh3/cpu_support.S:436: Error: value of e000000000000000 too large
for
field of 2 bytes at 00000000000002d3
make: *** [cpu_support.o] Error 1

この時のoffset.h
#define TCB_texptn	16
#define TCB_sp	24
#define TCB_pc	28
#define TCB_enatex	-2305843009213693952
#define TCB_enatex_bit	31
#define TCB_enatex_mask	0x80000000


//-------------------------------
// Mail:senjyu @ dream.com
//-------------------------------