こんにちは、芳賀です。
Vine Linux 2.6r4 + カーネル 2.4.26 を使用中です。
以下の件で何かアドバイスをいただければと思います。
xscreensaver 4.16 を 以下の設定で make したところ、
./configure --prefix=/usr/X11R6 --enable-locking --with-sgi-ext \
--with-mit-ext --with-xidle-ext --with-sgivc-ext \
--with-dpms-ext --with-xf86vmode-ext --with-xf86gamma-ext \
--with-shadow --with-gtk --with-xml --with-gl --with-xpm \
--with-pixbuf --with-jpeg --with-xshm-ext --with-xdbe-ext \
--with-readdisplay \
--with-configdir=/usr/X11R6/lib/xscreensaver/config
以下のエラーが発生しました。ちなみに、上記の設定は、4.15 までは
何も問題もなく使用できており、make も正常終了していました。
xset.c: In function `query_randr_extension':
xset.c:182: warning: implicit declaration of function `XRRSelectInput'
xset.c:183: `RRScreenChangeNotifyMask' undeclared (first use in this function)
xset.c:183: (Each undeclared identifier is reported only once
xset.c:183: for each function it appears in.)
make[1]: *** [xset.o] Error 1
make[1]: Leaving directory `/home/fumi/src/xscreensaver-4.16/driver'
make: *** [default] Error 5
make 自体は "--without-randr-ext" オプションを configure スクリプト
に追加して正常終了し、現在バージョン 4.16 の xscreensaver を使用中です。
疑問なのは、"RRScreenChangeNotifyMask" というシンボルがどこにも定義されて
いないことです。以下のようにしても、
# cd /usr/include
# grep -r -i RRScreenChangeNotifyMask *
grep: 警告: gnome-xml/libxml: ディレクトリーが再帰的ループをしています
# cd /usr/local/include
# grep -r -i RRScreenChangeNotifyMask *
# cd /usr/X11R6/include/
# grep -r -i RRScreenChangeNotifyMask *
#
このシンボルはどこにも見当たりません。
使用されているのは、driver/xset.cの、以下の関数です。
/* Resize and Rotate server extension hackery.
*/
#ifdef HAVE_RANDR
# include <X11/extensions/Xrandr.h>
Bool
query_randr_extension (saver_info *si)
{
saver_preferences *p = &si->prefs;
Bool ok = XRRQueryExtension (si->dpy,
&si->randr_event_number,
&si->randr_error_number);
if (ok)
{
int nscreens = ScreenCount (si->dpy); /* number of *real* screens */
int i;
if (p->verbose_p)
fprintf (stderr, "%s: selecting RANDR events\n", blurb());
for (i = 0; i < nscreens; i++)
XRRSelectInput (si->dpy, RootWindow (si->dpy, i),
RRScreenChangeNotifyMask);
}
return ok;
}
#endif /* HAVE_XIDLE_EXTENSION */
しかし、以下のようにヘッダーファイルとライブラリは存在します。
# locate libXrandr
/usr/X11R6/lib/libXrandr.so.1
/usr/X11R6/lib/libXrandr.so.1.0
/usr/X11R6/lib/libXrandr.a
/usr/X11R6/lib/libXrandr.so
# locate randr.h
/usr/X11R6/include/X11/extensions/Xrandr.h
/usr/X11R6/include/X11/extensions/randr.h
これは、本来あるべきものが、使用している環境には抜けているのでしょうか、
それとも、使用している環境では、そもそも「無い」のが正しい姿なのでしょうか。
冒頭の設定のまま、先のエラーを出さずに正常に make するにはどうすればいいの
でしょうか。
---
Yasufumi Haga yasufumi.haga@xxxxxxxxx
http://homepage3.nifty.com/peterpan/
fingerprint:0EFA 299A BC32 7D68 1FEF BA2B 804E 9B15 C4F0 F9F0