#sh_link not set for section `.ARM.exidx' が出たのでそれについて調べたことをメモメモ
##!初投稿なのでご容赦!
(自分toppersにも低レイヤにも全く精通しておりません)
今回EV3のTOPPERSカーネル環境で使うCファイルのビルド時に発生(未解決?)
(恐らくプログラム実行に支障が出るわけでは
ないので対策する実益はあまりないようです)
環境はmacoOS Sierra/High Sierra, ev3rt-beta7-release
##追記:
printfを使用し、改行文字(\n)を用いない時には発生しない模様
(\nを用いるとエラー発生)
ちなみに\rでは発生しませんでした
調べたらsh_linkが".text"セクションを指定していないために起こるエラーのようです
リンカスクリプトの修正でいいということだそうで
->リンカスクリプトって何?
となったのでメモ(しかし現実はそんなに甘くはなかった)
#やってみたこと
EV3RTにおけるリンカスクリプトの拡張子は.ldらしい
ということなので
_exidx_start = . ;
.ARM.exidx ALIGN(4) :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.* )
}
_exidx_end = . ;
とam1808.ldとcfg1_out.ld に追加しましたが挙動に変化はありませんでした
https://www.toppers.jp/docs/tech/macproc-spec-20100723.pdf
.tfファイルを追記しようか思案中
ニッチな分野ながら徐々に追記していく予定です
#参考中:
http://blog.kmckk.com/archives/4950141.html
http://nemuisan.blog.bai.ne.jp/?eid=155799
http://www.kumikomi.net/archives/2010/08/post_28.
http://kozos.jp/documents/linker_kernelvm5.pdf
http://hijiri3.s65.xrea.com/sorekore/develop/h8/00_aki-h8-usb.htm
http://d.hatena.ne.jp/sodex/20070407
https://ameblo.jp/osstudy/entry-10747755001.html