[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Unsupported relocation type 6 -> RELOC_NUMBER (R_PPC_ADDR16_HA, 6)
- Subject: Unsupported relocation type 6 -> RELOC_NUMBER (R_PPC_ADDR16_HA, 6)
- From: 藤原 誠/Makoto Fujiwara<makoto@ki.nu>
- To: port-powerpc-ja@jp.netbsd.org
- Date: Sun, 08 Apr 2007 10:34:17 +0900
- Message-ID: <yfm1wiv644m.wl%makoto@ki.nu>
- Delivered-To: mailing list port-powerpc-ja@jp.netbsd.org
- Mailing-List: contact port-powerpc-ja-help@jp.netbsd.org; run by ezmlm-idx
- User-Agent: Wanderlust/2.15.5 (Almost Unreal) SEMI/1.14.6 (Maruoka)FLIM/1.14.8 (Shijō) APEL/10.7 Emacs/22.0.97(powerpc-unknown-netbsd4.99.9) MULE/5.0(賢木)
> 千葉市中央区長洲
> 藤原 誠
ごぶさたしています。
最近やっと作れた 20070203 を使っています (4.99.9)。
ftp://ftp.ki.nu/pub/NetBSD/snapshot/20070203ts
このうち
netbsd-GENERIC_MD.gz
は (深海さんに教えてもらって) 一部更に patch を当てて作ったものです。
http://mail-index.netbsd.org/source-changes/2007/04/02/0013.html
また gengtype-lex.c がないとか言われたりするので、ln -s で教える
といった手作業が必要だった気がします。
で、最近 meta-pkg/xorg を使って見ようかと思って make 中です。
作業は次のようなものです
────────────────────────────
1. カーネルを作り直す
・/dev/pci? を調達する (つばいさん、ごめんなさい)
・options INSECURE を追加
2. /etc/mk.conf に次の文を書いておく
X11_TYPE= xorg
X11BASE= /usr/pkg/xorg # important
X11ROOT_PREFIX= xorg # /usr/pkg/${X11ROOT_PREFIX}/bin/imake
3. package を作る ( sudo make package clean )
/usr/pkgsrc/meta-pkg/xorg
/usr/pkgsrc/fonts/xorg-font*
4. xorgcfg を使って /etc/X11/xorg.conf を作成する
(この内容は後で少し変更)
5. env PATH=/usr/pkg/xorg/bin:${PATH} startx
で起動する
────────────────────────────
ちなみに機械は Mac mini 初期型です。
これでまずは
xf86MapVidMem: could not mmap screen [s=80000,a=90000000] (Invalid argument)
と言われるのですが、
http://mail-index.netbsd.org/port-macppc/2004/03/09/0004.html
を見て、それなりに修正します。
そうすると、今度は機械ごと (OS が) 止ってしまいます。全く無反応です。
それで RADEONGetBIOSInfo は呼ばないようにします。
ここまでの変更点は次の通りです。
http://www.ki.nu/~makoto/diary/attach/2007/20070408-xorg-server.patch
これでかなり進みます。 /var/log/Xorg.0.log は次のようになります。
http://www.ki.nu/~makoto/diary/attach/2007/20070407-xorg.0.log
で、前置が長かったのですが、ここからが本題です。次の記録の中に、
次のような部分があります。
---------------------------------------
(II) LoadModule: "fb"
(II) Loading /usr/pkg/xorg/lib/modules/libfb.so
dlopen: /usr/pkg/xorg/lib/modules/libfb.so: Unsupported relocation type 6 in non-PLT relocations
(EE) Failed to load /usr/pkg/xorg/lib/modules/libfb.so
(II) UnloadModule: "fb"
(EE) RADEON: Failed to load module "fb" (loader failed, 7)
---------------------------------------
objdump -R で調べると次のような表示が出ます。
---------------------------------------
ttyp2:makoto@mini 1:31:09/070408(...x11/xorg-server)> \
objdump -R /usr/pkg/xorg/lib/modules/libfb.so | \
cut -d ' ' -f 2 |sort | uniq -c
6
1 RELOCATION
5 R_PPC_ADDR16_HA
6 R_PPC_ADDR16_LO
195 R_PPC_ADDR32
124 R_PPC_JMP_SLOT
1 R_PPC_NONE
2 R_PPC_REL24
388 R_PPC_RELATIVE
ttyp2:makoto@mini 1:31:18/070408(...x11/xorg-server)>
---------------------------------------
type 6 in non-PLT relocations とは、
RELOC_NUMBER (R_PPC_ADDR16_HA, 6)
のことで、つまり上の一番目の R_PPC_ADDR16_HA は、あってはならな
い、と理解しています。xorg の make の時には -fPIC は付いていて
-fPIE は付いていないと思います。それで、
http://www.jp.netbsd.org/ja/JP/ml/port-powerpc-ja/200410/msg00014.html
に関連する部分を gcc-4 で調べると、どうも、それは修正済の気がし
ます。
さて、何が悪いのでしょうか ? どうすれば直せるでしょうか ?
(これって関係あるのでしょうか ? binutils-2.17 を使えばいい ?)
http://sources.redhat.com/ml/binutils/2005-05/msg00391.html
いつもありがとうございます。
---
(藤原)
────────────────
NetBSD 解説
http://www.ki.nu/software/NetBSD2/index.html