メモ書き

自分が後で見直すためにつけている作業のメモ書きです.それ以上の意味はありません

リンカスクリプトのよく知らないセクション達

リンカスクリプト眺めていたら知らないセクション名がわんさか出てきてうんざりした.
どうせ忘れてしまうと思うが調べなおすのも厄介なのでここで関連しそうなリンクと共に記録しておく.

  • CREATE_OBJECT_SYMBOLS

Using LD, the GNU linker - Section Data Expressions
リンクするオブジェクトファイル名と同じ名前のシンボルが生成されるみたいだけど,どういう用途で使うのか.

  • .gnu.linkonce.t.*

リンクと同名シンボル: weak シンボル編 - bkブログ
ld -z relro で GOT overwrite attack から身を守る - memologue

  • .plt

Linux 動的ライブラリーの徹底調査
PLTは Procedure Linkage Table の略らしい.
再配置処理に使うらしい.
GOT (Global Offset Table) と呼ばれる間接参照メカニズムと共に使うらしい.
動的なリンクを行うシステムで使う.

CFI directives | Rafael Espindola's Blog
例外処理に使う.
eh_frame というのがバックトレース(スタックトレース)をとるための情報が入ったフレームで,eh_frame_hdrC++のランタイムが eh_frame にアクセスするためのコードが入るセクション(ということらしい).
C++使わない人には無くてもよい?

Exception Handling - Dwarf Wiki
stackoverflow.com
https://refspecs.linuxfoundation.org/LSB_3.0.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html
http://d.hatena.ne.jp/w_o/20051109

How do you suppress GCC linker warnings? - Stack Overflow
C言語系/「デーモン君のソース探検」読書メモ/15, mktemp(3),mkstemp(3) - Glamenv-Septzen.net

  • .glue_7t

http://www.embedded.com/design/mcus-processors-and-socs/4026080/Building-Bare-Metal-ARM-Systems-with-GNU-Part-3

(19) The .glue_7t and .glue_7 sections are synthesized by the compiler when you specify the ARM-THUMB interworking option. The sections contain the "call veneers" between THUMB and ARM code and are accessed frequently by every call between ARM and THUMB. It's typically advantageous to place this small amount of hot-spot code in RAM.

  • .vfp11_veneer

Julian Brown - [ARM] VFP11 denorm erratum workaround in linker

  • .ARM.extab*

mikan++>STM32F>リンカスクリプト
newlib が例外処理のために使っているセクションらしい.
.gnu.linkonce.armextab.* も同様みたいだけど,何が違うのかよくわからない.
LLVM and the ARM ELF .ARM.exidx* Section - SushiHangover

  • .gcc_except_table

Airs – Ian Lance Taylor » .gcc_except_table

疲れたので,この辺でやめる.