[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

__fixdfdi again (Re: samba)



>                                           千葉市中央区長洲
>                                                    藤原 誠
その後少し調べたのですが、どうも問題を起こしているのは、
samba の時と同じ __fixdfdi で、libfb.so はこれへの参照が解決
済の状態です。

(1)
ttyp6:makoto@mini 16:54:36/070408(...x11/xorg-server)> \
objdump -R work.mini/xc/programs/Xserver/fb/libfb.so | grep ADDR16
00031542 R_PPC_ADDR16_HA   .rodata+0x00031f88
0003154a R_PPC_ADDR16_LO   .rodata+0x00031f88
    (後略) 
(2) 
objdump -d  work.mini/xc/programs/Xserver/fb/libfb.so 
00031540 <__fixdfdi>:
   31540:       3d 20 00 00     lis     r9,0
   31544:       7c 08 02 a6     mflr    r0
   31548:       c8 09 00 00     lfd     f0,0(r9)

(3) (上から自明ですが)  組込済
00031542 R_PPC_ADDR16_HA   .rodata+0x00031f88
nm work.mini/xc/programs/Xserver/fb/libfb.so  |grep fixdf
00031540 T __fixdfdi

この __fixdfdi はどこにあるのかなと思うと、
src/lib/libc/quad/fixdfdi.c
のようです。で、これが組込まれるのはどこかなと見たら、どうも、
xc/programs/Xserver/fb/fbcompose.c 
から出来た
xc/programs/Xserver/fb/fbcompose.o を組込むところで、次の
ような操作のようです。

cc -o libfb.so -shared -Wl,-rpath,/usr/pkg/xorg/lib -nostdlib
fbmodule.o fbarc.o fballpriv.o fbbits.o fbblt.o fbbltone.o
fbbstore.o fbcmap.o fbcompose.o fbcopy.o fbedge.o fbfill.o
fbfillrect.o fbfillsp.o fbgc.o fbgetsp.o fbglyph.o fbimage.o
fbline.o fboverlay.o fbpixmap.o fbpoint.o fbpush.o fbscreen.o
fbseg.o fbsetsp.o fbsolid.o fbstipple.o fbtile.o fbtrap.o
fbutil.o fbwindow.o fb24_32.o fbpict.o fbmmx.o fbpseudocolor.o
-Wl,-Bstatic -lgcc -Wl,-Bdynamic

この段階で問題が起きると考えているのですが、合っているでしょうか ?

それとも、
00031542 R_PPC_ADDR16_HA   .rodata+0x00031f88
の参照は問題がなくて、これを解決出来ない ld.elf_so が悪い ?
---
(藤原)
NetBSD 解説
http://www.ki.nu/software/NetBSD2/index.html