R_386_8
ELF/i386な再配置情報のR_386_8とかいったいいつ使うんだろうかと思ってたけど次のようにすれば現れることに気づいた
例) a.s
.data a: .byte 1 d: .byte a
普通にコンパイルするとベースアドレスが0x8048000なので.byte領域に収まらなくてエラーになるので次のようにしてみるとできる
$ as -o a.o a.s $ objdump -r a.o u.o: file format elf32-i386 RELOCATION RECORDS FOR [.data]: OFFSET TYPE VALUE 00000001 R_386_8 .data $ objdump -D a.o Disassembly of section .data: 00000000 <a>: 0: 01 00 add %eax,(%eax) 00000001 <b>: ...
$ ld -Tdata=0x10 -o a a.o $ objdump -D a Disassembly of section .data: 00000010 <a>: 10: 01 10 add %edx,(%eax) 00000011 <b>: 11: 10 .byte 0x10
まぁだから何,という話..
普通だと使うことなさそう..