[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
objdump -r _absvdi2.* (-> R_PPC_PLTREL24)
> 千葉市中央区長洲
> 藤原 誠
椿> 00001678 R_PPC_REL24 abort
椿> ・コンパイル時のログが残っていたら手動でやってみて REL24 になる
実は、libgcc_s.so.1.0 に入っているいくつかの関数から abort
が呼ばれていると思うのですが、どの場合も REL24 になっている
ようです。で、一つ前の、*.so で見たら、次のようになっています。
つまり
REL24 でなくて RLTREL24 になっているのですが、これならいい
のでしょうか ?
ttyp2:makoto@st4200 21:29:55/041016(...checkout/src)> \
? objdump -r gnu/lib/libgcc3/libgcc_s/obj/_absvdi2.so
gnu/lib/libgcc3/libgcc_s/obj/_absvdi2.so: file format elf32-powerpc
RELOCATION RECORDS FOR [.text]:
OFFSET TYPE VALUE
00000034 R_PPC_PLTREL24 abort
(1) PLTREL24 になるのはいい。libgcc_s.so を作る時に REL24 に
なるのがおかしい。
(2) そもそも PLTREL24 になるのがおかしい。( -fPIC 有)
このどちらなのか分らなくて済みません。
もう少し良く見ると、次のようになっていて、-fPIC は so を作る
時だけ付いています。つまり gcc の -fPIC には罪はなさそうです。
ttyp2:makoto@st4200 21:52:45/041016(...checkout/src)> objdump -r gnu/lib/libgcc3/libgcc/obj/_absvdi2.*o
gnu/lib/libgcc3/libgcc/obj/_absvdi2.o: file format elf32-powerpc
RELOCATION RECORDS FOR [.text]:
OFFSET TYPE VALUE
00000034 R_PPC_REL24 abort
gnu/lib/libgcc3/libgcc/obj/_absvdi2.po: file format elf32-powerpc
RELOCATION RECORDS FOR [.text]:
OFFSET TYPE VALUE
00000006 R_PPC_ADDR16_HA .data
0000000e R_PPC_ADDR16_LO .data
00000010 R_PPC_REL24 _mcount
00000048 R_PPC_REL24 abort
gnu/lib/libgcc3/libgcc/obj/_absvdi2.so: file format elf32-powerpc
RELOCATION RECORDS FOR [.text]:
OFFSET TYPE VALUE
00000034 R_PPC_PLTREL24 abort
---
(藤原)