Le Fri, 16 Sep 2011 22:34:12 +0200,
François ANDRIOT <francois.andriot(a)free.fr> a écrit :
Hello, I'm trying to build kdelibs 3.5.12 on RHEL
5 (which is getting
a bit old, but still supported by RH, and widely used in companies).
When compiling krandr, it fails with the following output:
make[2]: entrant dans le répertoire «
/home/albator/rpmbuild/BUILD/kdelibs/krandr »
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.
-I. -I.. -I../dcop -I../kdecore -I../kio/kssl -I../kjs -I./..
-I../dcop -I../libltdl -I../kdefx -I../kdecore -I../kdecore
-I../kdecore/network -I../kdeui -I../kio -I../kio/kio -I../kio/kfile
-I.. -I/usr/lib64/qt-3.3/include -include tqt.h -I.
-I/opt/trinity/include -I/opt/trinity/include/tqt
-DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -O2 -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic -c -o lowlevel_randr.lo
lowlevel_randr.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../dcop
-I../kdecore -I../kio/kssl -I../kjs -I./.. -I../dcop -I../libltdl
-I../kdefx -I../kdecore -I../kdecore -I../kdecore/network -I../kdeui
-I../kio -I../kio/kio -I../kio/kfile -I.. -I/usr/lib64/qt-3.3/include
-include tqt.h -I. -I/opt/trinity/include -I/opt/trinity/include/tqt
-DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -O2 -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic -c lowlevel_randr.c
-fPIC -DPIC -o .libs/lowlevel_randr.o In file included from
lowlevel_randr.c:23: lowlevel_randr.h:102:7: warning: no newline at
end of file In file included from lowlevel_randr.c:24:
lowlevel_randr.h:29: error: expected specifier-qualifier-list before
'RRCrtc'
lowlevel_randr.h:44: error: expected specifier-qualifier-list before
'RROutput'
lowlevel_randr.h:55: error: expected specifier-qualifier-list before
'XRRScreenResources'
lowlevel_randr.h:90: error: expected '=', ',', ';', 'asm'
or
'__attribute__' before '*' token
lowlevel_randr.h:91: error: expected ')' before '*' token
lowlevel_randr.h:92: error: expected ')' before '*' token
lowlevel_randr.h:93: error: expected declaration specifiers or '...'
before 'RROutput'
[...]
and so on ... (the full log is attached to this mail)
It seems that RHEL5 Xrandr version (1.1.1) is too old for krandr.
XRandR 1.1.1
doesn't support multiple monitors, which is the cause for
the failed compilation of lowlevel_randr.{h,c} which uses multi-monitor
support from XRandR 1.2+.
I have no idea of what is the most reasonable way to
go:
Should I try to compile a newer version of Xrandr ? Is that even
possible without compiling a lot of other stuff ?
XRandR is a protocol extension of
the X11 protocol, so using XRandR 1.2
would require to update the X server (and also, according to Phoronix
the NVIDIA drivers just don't support XrandR 1.2 as of July 2011).
Did anyone try to use the new Trinity XRandR functionality with the
proprietary NVIDIA drivers ?
Should I disable krandr in kdelibs makefile ? What
will be the
consequences on further compiled packages ?
You will probably have some problems to
compile KRandRTray :)
Should I revert all krandr-related patches to recover
older KDE3
functionalities ?
This is perhaps the simplest way to build a working Trinity on
RHEL5,
but the problem is the resulting kdelibs you will get will be
incompatible with standard Trinity kdelibs.
IMHO the right thing to do would be to enable conditional
compilation of XRandR 1.2+ multi-monitor capabilities and to support
it with kconfig.h.
Thanks in advance for your enlightenment :-)
Francois Andriot