2006年2月27日

[users 6476] X-Serverの移植

いつも参照させて頂いております。crayfishです。

MIPSの組み込み機器にX-Windowを載せたく、XFree86のCVSからソース
を入手し、クロス環境でXを移植しています。X-Serverだけ動作すれば良い
ということで以下のhost.defを使っています。

----------------------------
#define HasFreetype2 YES

#define UseFreetype2 YES
#define Freetype2Dir $(TOP)/extras/freetype2
#define Freetype2LibDir $(TOP)/exports/lib

/* for kdrive */
#define KDriveXServer YES
#define XfbdevServer YES
#define XvesaServer YES
#define BuildBuiltinFonts NO
/* #define TinyXServer YES */
#define BuildServersOnly YES
/* #define DefaultGcc2i386Opt -O2 -fno-strength-reduce */
/* #define DefaultGcc2i386Opt -g -fno-strength-reduce */

/* for TinyXServer + BuildFonts */
#define BuildLBX NO
#define BuildFonts YES
#define BuildAppgroup NO
#define BuildDBE NO
#define BuildXCSecurity NO
#define FontServerAccess NO
#undef BuildXF86RushExt
#define BuildXF86RushExt NO
#undef BuildRender
#define BuildRender YES
#define UseRgbTxt YES
#define BuildFontServer NO

/* for Cross Compiling */
#define CrossCompiling YES
#undef i386Architecture
#define Mips32Architecture
#undef StandardDefines
#define StandardDefines -Dlinux -D__mips__ -D_POSIX_SOURCE \
-D_BSD_SOURCE -D_GNU_SOURCE
#undef CcCmd
#define StdIncDir /x_mips/local/mipsel-linux-gnu/include
#define PreIncDir /x_mips/local/mipsel-linux-gnu/include
#undef PostIncDir
#define PostIncDir
/x_mips/local/lib/gcc-lib/mipsel-linux-gnu/3.3.4/include
#define CcCmd mipsel-linux-gnu-gcc -mhard-float
#define DoRanlibCmd YES
#define RanlibCmd mipsel-linux-gnu-ranlib
#undef LdCmd
#define LdCmd mipsel-linux-gnu-ld
#undef LdPostLib
#define LdPostLib -L/x_mips/local/mipsel-linux-gnu/lib
----------------------------

しかし、
# make World CROSSCOMPILEDIR=/x_mips/local/bin
でコンパイルすると、以下のエラーで止まってしまいました。

-------------<コンパイルエラー : ここから>---------------
rm -f vga.o
/x_mips/local/bin/`echo mipsel-linux-gnu-gcc -mhard-float|sed "s%.*/%%"` -c
-O2 -fno-strict-aliasing -ansi -Wall -Wpointer-arith -Wstrict-prototypes
-Wmissing-prototypes -Wmissing-declarations
-Wredundant-decls -Wnested-externs -Wundef -I.
-I../../../../../programs/Xserver/hw/tinyx
-I../../../../../programs/Xserver/hw/tinyx/linux
-I../../../../../programs/Xserver/fb -I../../../../../programs/Xserver/mi
-I../../../../../programs/Xserver/Xext
-I../../../../../programs/Xserver/miext/shadow
-I../../../../../programs/Xserver/miext/layer
-I../../../../../programs/Xserver/include
-I../../../../../programs/Xserver/os
-I../../../../../programs/Xserver/render
-I../../../../../programs/Xserver/randr -I../../../../../exports/include
-Dlinux -D__mips__ -D_POSIX_SOURCE
-D_BSD_SOURCE -D_GNU_SOURCE -DSHAPE -DXINPUT -DXKB -DTOGCUP
-DXF86BIGFONT -DDPMSExtension -DPIXPRIV -DPANORAMIX -DRENDER -DRANDR
-DGCCUSESGAS -DAVOID_GLYPHBLT -DPIXPRIV -DSINGLEDEPTH
-DXFreeXDGA -DXvExtension
-DXFree86Server -DXF86VIDMODE
-DXvMCExtension -DSMART_SCHEDULE
-DBUILDDEBUG -DXResExtension
-DX_BYTE_ORDER=X_LITTLE_ENDIAN -DNDEBUG -DNEED_STRLCAT -DFUNCPROTO=15
-DNARROWPROTO vga.c
vga.c: In function `VgaSetWritePlaneMask':
vga.c:164: error: `asm' operand requires impossible reload
vga.c:165: error: `asm' operand requires impossible reload
make[5]: *** [vga.o] エラー 1
make[5]: 出ます ディレクトリ `/x_mips/src/xc/programs/Xserver/hw/tinyx/vesa'
make[4]: *** [hw/tinyx/vesa] エラー 2
make[4]: 出ます ディレクトリ `/x_mips/src/xc/programs/Xserver'
make[3]: *** [all] エラー 2
make[3]: 出ます ディレクトリ `/x_mips/src/xc/programs'
make[2]: *** [all] エラー 2
make[2]: 出ます ディレクトリ `/x_mips/src/xc'
make[1]: *** [World] エラー 2
make[1]: 出ます ディレクトリ `/x_mips/src/xc'
make: *** [World] エラー 2
-------------<コンパイルエラー : ここまで>---------------

----------------------------
161 void
162 VgaSetWritePlaneMask(Vm86InfoPtr vi, int mask)
163 {
164 __asm__ volatile ("outb %b0,%w1" : : "a" (2), "d" (0x3c4));
165 __asm__ volatile ("outb %b0,%w1" : : "a" (mask), "d" (0x3c5));
166 }
----------------------------

この手のエラーをどう対処すればよいのかわからず困っています。
WEB上の記事もいろいろと探しましたが、解決まで至りませんでした。
対処方法をご存知の方がいらっしゃいましたら知恵を拝借させてください。

以上よろしくお願いいたします。

_______________________________________________
users mailing list
users@xxxxx
http://fedora.jp/mailman/listinfo/users

投稿者 xml-rpc : 2006年2月27日 13:05
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/32378
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。