elf

シンボル間の引き算

再配置情報について調べてたらアセンブリでのシンボル間の引き算についてelf/i386とmach-o/x86-64で挙動が違ったのでめも. elf/i386 の場合 (実行環境: Ubuntu 10.04LTS (linux 2.6.32), GNU assembler version 2.20.1 (i486-linux-gnu)) まず.シンボル間…

R_386_8

ELF/i386な再配置情報のR_386_8とかいったいいつ使うんだろうかと思ってたけど次のようにすれば現れることに気づいた例) a.s .data a: .byte 1 d: .byte a 普通にコンパイルするとベースアドレスが0x8048000なので.byte領域に収まらなくてエラーになるので次…

ELF/i386 の再配置情報

ELFでi386なときに使われる再配置情報は以下のとおりです(elf.hより). /* i386 relocs. */ #define R_386_NONE 0 /* No reloc */ #define R_386_32 1 /* Direct 32 bit */ S+A #define R_386_PC32 2 /* PC relative 32 bit */ S+A-P #define R_386_GOT32 3 /…