(toppers-users 4179) Re: kernel_cfg.timestampでのSegmentation Fault

Shinya Honda honda @ ertl.jp
2013年 12月 3日 (火) 13:26:14 JST


みつさん

本田です.

スタティックリンクですが,最後にcfgを作成するときに-static と -lpthread 
を付ければリンクできました.

-----------------------------------------------------------------------
  g++ -static -O2  -o cfg cfg.o cfg0.o cfg1.o cfg2.o cfg3.o cfg4.o 
cfg_version.o -L/usr/lib -L/usr/lib ../toppers/itronx/libitronx.a 
../toppers/oil/liboil.a ../toppers/libtoppers.a   -lboost_system 
-lboost_filesystem -lboost_program_options -lboost_regex -lpthread
-----------------------------------------------------------------------

スタティックリンクしたものでも同じエラーとなりました.

UbuntuでスタティックリンクしたcfgをATDEに持ってきたら動作しました.

以上,よろしくお願いします.

(2013/12/03 12:45), mitsu.takada @ nifty.ne.jp wrote:
> 本田さん
>
> みつです。
> 全部エラーになるのはおかしいですね。
> ATDEのコンパイル環境とホスト環境のライブラリがずれているような気もします。
>
> いまのmsysと同様にスタティックリンクで作成されるとどうでしょうか。
> #アットマークテクノさんがどう検証されたのかわかりませんが。
>
> 2013/12/03 11:35、Shinya Honda <honda @ ertl.jp> のメール:
>
>> みつさん
>>
>> 本田です.
>>
>> cfg1_out::~cfg1_out() のコメントアウトを試してみましたが駄目でし た.1.7,1.8,1.9共にエラーになります.
>>
>> どうやらATDE上でビルドしたcfgは軒並みエラーとなるようです.
>>
>> 以上,よろしくお願いします.
>>
>> (2013/12/03 10:53), mitsu.takada @ nifty.ne.jp wrote:
>>> 鈴木さん
>>>
>>> こんにちは,みつといいます。
>>> メッセージをみるとcfgがpass2の実行時に落ちているのだと思います。
>>> ATDEは使ったことがないのですが,ホスト環境はDebianなのですね。
>>>
>>> cfgはDebianの中で作成されていると思うのですが,
>>> toppers/itronx/cfg1_out.c にある cfg1_out::~cfg1_out() の「delete pimpl_」をコメントアウトしてcfgを再ビルドされるとどうでしょうか。
>>>
>>> 2013/12/03 2:39、Juggler Shu <shu @ jugglershu.net> のメール:
>>>
>>>> 返信ありがとうございます。
>>>>
>>>> 利用しているsafegのバージョンは以下のものです。
>>>> - safeg-0.5-armadillo-800-eva-6mar2013
>>>>
>>>> ログを見る限り、以下のバージョンのソースコードをfetch_sources.shは取って きているようです。
>>>> - linux-2.6.35-a800eva-at3.tar.gz
>>>> - asp_armadillo-800-eva_gcc-20130221.tar.gz
>>>> - cfg-1.8.0.tar.gz
>>>>
>>>> なお、コンパイラはATDE4に追加で
>>>> gcc-arm-none-eabi-4_7-2013q3
>>>> をダウンロードし、コンパイルしてインストールしました。
>>>>
>>>> 以下に、build_all.shスクリプトでエラーが起きた箇所のビルドログを貼り付け ます。
>>>> 何か環境等、確認すべきものがあればお教え下さい。
>>>> よろしくお願い致します。
>>>>
>>>> ----BEGIN----
>>>> LIBBOOST_SUFFIX=
>>>> BOOST_VERSION=1_55
>>>> BOOST_DIR=/usr/local/include
>>>> LIBBOOST_DIR=/usr/local/lib
>>>> OPTIONS=
>>>> make BOOST_DIR="/usr/local/include" LIBBOOST_SUFFIX="" CXXFLAGS="-O2 " -C toppers
>>>> make[1]: ディレクトリ `/home/atmark/Downloads/safeg/safeg-0.5-armadillo-800-eva-6mar2013/asp/cfg/toppers' に入ります
>>>> make[1]: `all' に対して行うべき事はありません.
>>>> make[1]: ディレクトリ `/home/atmark/Downloads/safeg/safeg-0.5-armadillo-800-eva-6mar2013/asp/cfg/toppers' から出ます
>>>> make BOOST_DIR="/usr/local/include" LIBBOOST_SUFFIX="" CXXFLAGS="-O2 " -C toppers/itronx
>>>> make[1]: ディレクトリ `/home/atmark/Downloads/safeg/safeg-0.5-armadillo-800-eva-6mar2013/asp/cfg/toppers/itronx' に入ります
>>>> make[1]: `all' に対して行うべき事はありません.
>>>> make[1]: ディレクトリ `/home/atmark/Downloads/safeg/safeg-0.5-armadillo-800-eva-6mar2013/asp/cfg/toppers/itronx' から出ます
>>>> make BOOST_DIR="/usr/local/include" LIBBOOST_SUFFIX="" CXXFLAGS="-O2 " -C cfg
>>>> make[1]: ディレクトリ `/home/atmark/Downloads/safeg/safeg-0.5-armadillo-800-eva-6mar2013/asp/cfg/cfg' に入ります
>>>> make[1]: `all' に対して行うべき事はありません.
>>>> make[1]: ディレクトリ `/home/atmark/Downloads/safeg/safeg-0.5-armadillo-800-eva-6mar2013/asp/cfg/cfg' から出ます
>>>> 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.elf cfg1_out.syms cfg1_out.srec; \
>>>>         rm -f makeoffset.s offset.h; \
>>>>     fi
>>>> rm -f Makefile.depend
>>>> ../../asp/cfg/cfg/cfg --pass 1 --kernel asp -I. -I../../asp/include -I../../asp/arch -I../../asp -I../../asp/target/armadillo-800-eva_gcc -I../../asp/arch/arm_gcc/safeg -I../../asp/arch/arm_gcc/rma1 -I../../asp/arch/arm_gcc/common -I../../asp/arch/gcc --api-table ../../asp/kernel/kernel_api.csv --cfg1-def-table ../../asp/kernel/kernel_def.csv  --cfg1-def-table ../../asp/arch/arm_gcc/common/core_def.csv  sample1.cfg
>>>> arm-none-eabi-gcc -c  -mlittle-endian -mcpu=cortex-a9 -g -Wall -O2  -DTOPPERS_SAFEG_SECURE -DTOPPERS_SAFEG_COM -DTOPPERS_SAFEG_LOAD -D__TARGET_ARCH_ARM=7 -I. -I../../asp/include -I../../asp/arch -I../../asp -I../../asp/target/armadillo-800-eva_gcc -I../../asp/arch/arm_gcc/safeg -I../../asp/arch/arm_gcc/rma1 -I../../asp/arch/arm_gcc/common -I../../asp/arch/gcc   -DALLFUNC -I../../asp/kernel cfg1_out.c
>>>> arm-none-eabi-gcc  -mlittle-endian -mcpu=cortex-a9 -g -Wall -O2 -DTOPPERS_SAFEG_SECURE -DTOPPERS_SAFEG_COM -DTOPPERS_SAFEG_LOAD -D__TARGET_ARCH_ARM=7 -I. -I../../asp/include -I../../asp/arch -I../../asp  -I../../asp/target/armadillo-800-eva_gcc -I../../asp/arch/arm_gcc/safeg -I../../asp/arch/arm_gcc/rma1 -I../../asp/arch/arm_gcc/common -I../../asp/arch/gcc  -nostdlib -mlittle-endian -N -mcpu=cortex-a9 -Wl,-Ttext,0x5f000000 -T ../../asp/target/armadillo-800-eva_gcc/armadillo-800-eva.ld  -o cfg1_out.elf \
>>>>                          cfg1_out.o
>>>> arm-none-eabi-nm -C cfg1_out.elf > cfg1_out.syms
>>>> arm-none-eabi-objcopy -O srec -S cfg1_out.elf cfg1_out.srec
>>>> ../../asp/cfg/cfg/cfg --pass 2 --kernel asp -I. -I../../asp/include -I../../asp/arch -I../../asp -I../../asp/target/armadillo-800-eva_gcc -I../../asp/arch/arm_gcc/safeg -I../../asp/arch/arm_gcc/rma1 -I../../asp/arch/arm_gcc/common -I../../asp/arch/gcc \
>>>>                 -T ../../asp/target/armadillo-800-eva_gcc/target.tf --api-table ../../asp/kernel/kernel_api.csv --cfg1-def-table ../../asp/kernel/kernel_def.csv  --cfg1-def-table ../../asp/arch/arm_gcc/common/core_def.csv  sample1.cfg
>>>> make: *** [kernel_cfg.timestamp] セグメンテーション違反です
>>>> arm-none-eabi-gcc  -mlittle-endian -mcpu=cortex-a9 -g -Wall -O2 -DTOPPERS_SAFEG_SECURE -DTOPPERS_SAFEG_COM -DTOPPERS_SAFEG_LOAD -D__TARGET_ARCH_ARM=7 -I. -I../../asp/include -I../../asp/arch -I../../asp  -I../../asp/target/armadillo-800-eva_gcc -I../../asp/arch/arm_gcc/safeg -I../../asp/arch/arm_gcc/rma1 -I../../asp/arch/arm_gcc/common -I../../asp/arch/gcc  -nostdlib -mlittle-endian -N -mcpu=cortex-a9 -Wl,-Ttext,0x5f000000 -T ../../asp/target/armadillo-800-eva_gcc/armadillo-800-eva.ld  -o cfg1_out.elf \
>>>>                          cfg1_out.o
>>>> arm-none-eabi-nm -C cfg1_out.elf > cfg1_out.syms
>>>> arm-none-eabi-objcopy -O srec -S cfg1_out.elf cfg1_out.srec
>>>> ../../asp/cfg/cfg/cfg --pass 2 --kernel asp -I. -I../../asp/include -I../../asp/arch -I../../asp -I../../asp/target/armadillo-800-eva_gcc -I../../asp/arch/arm_gcc/safeg -I../../asp/arch/arm_gcc/rma1 -I../../asp/arch/arm_gcc/common -I../../asp/arch/gcc \
>>>>                 -T ../../asp/target/armadillo-800-eva_gcc/target.tf --api-table ../../asp/kernel/kernel_api.csv --cfg1-def-table ../../asp/kernel/kernel_def.csv  --cfg1-def-table ../../asp/arch/arm_gcc/common/core_def.csv  sample1.cfg
>>>> make: *** [kernel_cfg.timestamp] セグメンテーション違反です
>>>>>> building SafeG
>>>> arm-none-eabi-gcc -c -DSAFEG_RMA1 -DPROF_SUPPORT -DDUALOS_DEVICE_SHARING -mcpu=cortex-a9 -msoft-float -g -Wall -Wextra -Werror -I . -DSECURE_START_ADDRESS=0x5f000000 -DNORMAL_START_ADDRESS=0xe80c0000 -D__TARGET_ARCH_ARM=7 -O2 safeg.S
>>>> arm-none-eabi-gcc -c -DSAFEG_RMA1 -DPROF_SUPPORT -DDUALOS_DEVICE_SHARING -mcpu=cortex-a9 -msoft-float -g -Wall -Wextra -Werror -I . -DSECURE_START_ADDRESS=0x5f000000 -DNORMAL_START_ADDRESS=0xe80c0000 -D__TARGET_ARCH_ARM=7 -O2 crt0-safeg.S
>>>> arm-none-eabi-gcc -mcpu=cortex-a9 -msoft-float -static -nostdlib -lgcc -Wl,-Ttext,0x5f800000 -T safeg.lds safeg_start.o safeg.o crt0-safeg.o -o safeg.elf
>>>> arm-none-eabi-objcopy -O binary -S safeg.elf safeg.bin
>>>>>> copying binary files
>>>> mkdir: ディレクトリ `./tools/auto_build/output' を作成できません: ファイ ルが存在します
>>>> cp: `./app/sample1_s/asp.elf' を stat できません: そのようなファイルや ディレクト
>>>> ----END----
>>>>
>>>>
>>>>
>>>> On 12/2/13 2:32 PM, Shinya Honda wrote:
>>>>> 鈴木さん
>>>>>
>>>>> 本田です.
>>>>>
>>>>> こちらでは,ATDE4でビルド出来ています.
>>>>>
>>>>> 下記の情報だけでは判断できないので,ビルドログや使われたソースのバー ジョ ンを提示頂けないでしょうか.
>>>>>
>>>>> 以上,よろしくお願いします.
>>>>>
>>>>> (2013/12/01 18:22), Juggler Shu wrote:
>>>>>> はじめまして。現在TrustZone関連の技術について調べておりまして、
>>>>>> safegをArmadillo-800evaで動作させたいと考えているものです。
>>>>>> プリビルド版に関しては問題なく動作しているようなのですが、コードの変更な
>>>>>> どを入れたいと考え
>>>>>> ソースコードからビルドしようとしました。
>>>>>>
>>>>>> そうしたところ、ASPのsample1をビルドしようとしたところで以下のエラーと
>>>>>> なってしまいました。
>>>>>>
>>>>>> make: *** [kernel_cfg.timestamp] セグメンテーション違反です
>>>>>>
>>>>>> 1つずつ手動でビルドした場合でも、build_all.shスクリプトを用いた場合でも
>>>>>> 同様のようでした。
>>>>>> バイナリは出来上がっているようなのですが。
>>>>>>
>>>>>> ビルド環境はArmadilloで提供されているATDE4を用いています。
>>>>>>
>>>>>> このエラーを修正する方法がありましたら、お教えいただきたいです。
>>>>>> よろしくお願い致します。
>>>>>>
>>>>>> 鈴木秀一郎
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>>
>
>