ARM Thumb 命令セット gcc でのリンク †gcc での thumb 命令のサポートで thumb interwork のほうが有望そうなので,こちらを中心にもっと見ていきたいと思う. というわけで,調べることを整理してみる. no interwork オブジェクトとのリンク †なんてことを考えると,下表のような組み合わせについて見ていかなきゃならんのかなぁ.
スタティックリンクとシェアードライブラリ †まず,スタティックリンクの場合はコンパイルのリンク時にリンクするので,リンク自体は toolchain の仕事になる. 一方,シェアードライブラリを使った場合のダイナミックリンクは,スタートアップルーチン(main()の前に実行されるコード)のローダの仕事になる. 担当しているプログラムが別物なので,動きが変わってくることも考えられる. 関数へのポインタ †ARM モード/thumb モードの切り替えはプログラムカウンタの LSB で行っているので,関数へのポインタなんかはその影響を受けそうなところである. ここらも見る必要があるのかもしれない. |