lldを読む

  • 構成がシンプル
  • RELROの実装はどうなっているか?
    • とりあえず $ rg RELRO
    • Writer.cpp: isRelroSection() – コメントが親切というかコードより多い – 関数シンボルをlazyで読み込まない(実行前に読み込む)なら.got.pltにもRELROつけますよー、みたいな – .fini_arrayなどにも付く
    • Writer.cpp: finalizeSections() セクションに中身を入れる – RISC-Vのgpのデフォルトは.sdata + 0x800だが、gpを+/- 2KiBの範囲で任意の値にできる(12bit即値で指定できるため) — そして__global_pointer$というシンボルで見つけられる ?
  • GOT, PLTはどこで作られるのか?

  • AArch64ErrataFix.h: class AArch64Err843419Patcher

Backlinks