(toppers-users 3292) Re: カーネルを関数単位でライブラリ化する方法が上手く行きません。

Hiroaki TAKADA hiro @ ertl.jp
2010年 11月 18日 (木) 16:08:35 JST


Makefile.depend を消してうまく行ったということは、原因は次のいずれか
だったと思われます。

(1) make に問題があり、Makefile.depend の内容を読み込むと、make が
  アボートしてしまっていた。

(2) Makefile.depend に問題がある内容が生成されていた。この場合でも、
  make がアボートするのは、make の問題と思います。

なお、Makefile.depend を消してしまうと、ファイルの依存関係が消えて
しまいますので、一部のファイルを編集して make した場合に、正しくコ
ンパイルがされないことがあります。ファイルを編集した時は、必ず
"make clean" するのが安全です。

Makefile.depend は "make depend" でしか作成されません。"make
libkernel.a" で Makefile.depend が作成されないのは意図された通りで
す。

高田広章
名古屋大学

(10/11/18 12:36), koizumi yoshiyuki wrote:
>  高田先生
>  解決しました。 Makefile.dependを削除したところライブラリが作成できま 
> した。
>  ちょっと変な感じ
>  make dependを実行したとき、Makefile.dependが作成されています。 
> Makefile.dependを削除してmake libkernel.aでライブラリが作られても、 
> Makefile.dependは新たに作成されるわけでは有りません。
>  今は良いことにし、時間が有るとき調べてみます。
>  有り難うございました。
> 以上
> 
> 2010年11月17日16:49 Hiroaki TAKADA <hiro @ ertl.jp <mailto:hiro @ ertl.jp>>:
> 
>     こいさん wrote:
> 
>      > Cortex-M3のTOPPERS/ASPでカーネルを関数単位でライブラリ化する方法を試
>      > みていますがBuildでAborted (core dumped)になります。
> 
>     make でいきなり落ちるというのは、make の問題のような気がします。以下の
>     2つをチェックされることをお勧めします。
> 
>     (1) Makefile.depend の内容は正しく生成されているでしょうか?
> 
>     (2) make depend の後に、Makefile.depend を消去し、その後に make すると
>     どうなりますか?
> 
>     高田広章
>     名古屋大学
> 
>     (10/11/17 14:55), koizumi yoshiyuki wrote:
>      > こいさんです
>      > Cortex-M3のTOPPERS/ASPでカーネルを関数単位でライブラリ化する方法
>     を試みて
>      > いますがBuildでAborted (core dumped)になります。
>      > CygwinとSourcery G++ Liteを使用しています。doc\user.txtの「3.3 サ
>     ンプル
>      > プログラムの構築と実行」は出来ています。オブジェクトサイズの縮小
>     を図りた
>      > いのでライブラリ化に進みました。
>      > 「3.4 カーネルを関数単位でライブラリ化する方法」を実行していますが、
>      > 「make depend」は出来ているようですが、「make」でエラーになります。
>      > makeはソースフィルの追加程度しか触ったことが有りません。
>      > 以下はcygwinのコンソールログです。
>      >
>     ------------------------------------------------------------------------------
>      > zzz /cygdrive/c/TOPPERS/asp
>      > $ mkdir app3 <−−−−−−−−−−−−−−−作業ディレクトリの作成
>      > zzz /cygdrive/c/TOPPERS/asp
>      > $ cd app3 <−−−−−−−−−−−−−−−−作業ディレクトリ移動
>      > zzz /cygdrive/c/TOPPERS/asp/app3
>      > $ ../configure -T cq_starm_gcc -f <−−−−−−−コンフィグ実行
>      > configure: Generating Makefile from ../sample/Makefile.
>      > configure: Generating sample1.c from ../sample/sample1.c.
>      > configure: Generating sample1.h from ../sample/sample1.h.
>      > configure: Generating sample1.cfg from ../sample/sample1.cfg.
>      > zzz /cygdrive/c/TOPPERS/asp/app3
>      > $ make depend <−−−−−−−−−−−−−make depend実行
>      > if ! [ -f Makefile.depend ]; then \
>      > rm -f kernel_cfg.timestamp kernel_cfg.c kernel_cfg.h ; \
>      > rm -f cfg1_out.c cfg1_out.o cfg1_out.exe cfg1_out.syms
>     cfg1_out.srec; \
>      > rm -f makeoffset.s offset.h; \
>      > fi
>      > rm -f Makefile.depend
>      > arm-none-eabi-gcc -S -mcpu=cortex-m3 -mthumb -g -Wall -O2
>      > -DTOPPERS_LABEL_ASM -I. -I../include -I../arch -I.. -I../ta
>      > rget/cq_starm_gcc -I../arch/arm_m_gcc/ -fno-strict-aliasing
>      > -mcpu=cortex-m3 -I../kernel ../arch/arm_m_gcc/makeoffset.c
>      > /usr/local/bin/perl ../utils/genoffset makeoffset.s > offset.h
>      > ../cfg/cfg/cfg --pass 1 --kernel asp -I. -I../include -I../arch -I..
>      > -I../target/cq_starm_gcc -I../arch/arm_m_gcc/ --api
>      > -table ../kernel/kernel_api.csv --cfg1-def-table
>      > ../kernel/kernel_def.csv --cfg1-def-table
>     ../target/cq_starm_gcc/target
>      > _def.csv --cfg1-def-table ../arch/arm_m_gcc/prc_def.csv sample1.cfg
>      > arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -g -Wall -O2
>      > -DTOPPERS_LABEL_ASM -I. -I../include -I../arch -I.. -I../ta
>      > rget/cq_starm_gcc -I../arch/arm_m_gcc/ -fno-strict-aliasing
>      > -mcpu=cortex-m3 -I../kernel cfg1_out.c
>      > arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -g -Wall -O2
>      > -DTOPPERS_LABEL_ASM -I. -I../include -I../arch -I.. -I../ta
>      > rget/cq_starm_gcc -I../arch/arm_m_gcc/ -fno-strict-aliasing
>      > -mcpu=cortex-m3 -I../kernel ../arch/arm_m_gcc/start.S
>      > arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -g -Wall -O2
>      > -DTOPPERS_LABEL_ASM -I. -I../include -I../arch -I.. -I../targe
>      > t/cq_starm_gcc -I../arch/arm_m_gcc/ -nostdlib -nostdlib
>      > -Wl,-Ttext,0x08000000 -Wl,-Tdata,0x20000000 -T ../target/cq_sta
>      > rm_gcc/cq_starm.ld -o cfg1_out.exe \
>      > cfg1_out.o
>      > arm-none-eabi-nm -C cfg1_out.exe > cfg1_out.syms
>      > arm-none-eabi-objcopy -O srec -S cfg1_out.exe cfg1_out.srec
>      > ../cfg/cfg/cfg --pass 2 --kernel asp -I. -I../include -I../arch -I..
>      > -I../target/cq_starm_gcc -I../arch/arm_m_gcc/ \
>      > -T ../target/cq_starm_gcc/target.tf <http://target.tf/>
>     <http://target.tf <http://target.tf/>> --api-table
>      > ../kernel/kernel_api.csv --cfg1-def-table
>      > ../kernel/kernel_def.csv --cfg1-def-table
>      > ../target/cq_starm_gcc/target_def.csv --cfg1-def-table
>      > ../arch/arm_m_gcc/prc_
>      > def.csv sample1.cfg
>      > touch kernel_cfg.timestamp
>      > Generating Makefile.depend.
>      > zzz /cygdrive/c/TOPPERS/asp/app3
>      > $ make <−−−−−−−−−−−−−−−−make実行
>      > Aborted (core dumped) <−−−−−−−−−−−−−−−−−エラー発生ーーーーーー
>      > zzz /cygdrive/c/TOPPERS/asp/app3
>      > $
>      >
>      > zzz /cygdrive/c/TOPPERS/asp/app3
>      > $ make -v <−−−−−−−−−−−−−−−何が起きているの見たが良く分からず
>      > GNU Make 3.81
>      > Copyright (C) 2006 Free Software Foundation, Inc.
>      > This is free software; see the source for copying conditions.
>      > There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
>      > PARTICULAR PURPOSE.
>      > This program built for i686-pc-cygwin
>      > zzz /cygdrive/c/TOPPERS/asp/app3
>      > $
>      >
>     ------------------------------------------------------------------------------
>      > 以上
> 
>