Subject: Re: Fun with Xinerama, QT, kde3libs
To: Brian A. Seklecki <lavalamp@spiritual-machines.org>
From: Mark Davies <mark@mcs.vuw.ac.nz>
List: tech-pkg
Date: 04/15/2003 14:57:50
From: "Brian A. Seklecki" <lavalamp@spiritual-machines.org>
Date: Mon, 14 Apr 2003 19:49:19 -0400 (EDT)
> in pkgsrc/x11/qt3-libs/Makefile.common I see:
> .if !exists(${X11BASE}/lib/libXinerama.so)
> CONFIGURE_ARGS+= -no-xinerama
> .endif
> ...however, I can't seem to find /any/ reference to shared object version
> of libXinerama /anywhere/, except for some random google hits mentioning
> some old version of linux and solaris. It certainly doesn't get built on
> a -rHEAD version of Xfree86, and it's not included with a full install of
> RedHat, so I'm curious about this.
> ...regardless, i'm assuming it's there because QT screws up when compiling
> against it. KDE3 won't configure properly against libtq-mt.so when it's
> enabled, complaining (from config.log):
Correct that there is nothing in the default NetBSD X setup that builds a
libXinerama.so but if you add the following line:
#define SharedLibXinerama YES
to your xsrc/xfree/xc/config/cf/xf86site.def then one is built and if you do
have it built the Makefile.common fragment you quote above and the similar one
in the KDE Makefiles cause Xinerama support to be built into KDE correctly.
(I'm typing this from a KDE3.1.1 with Xinerama running on a twin head Matrox
450 on NetBSD 1.6L)
I believe that you can't get this to work with the libXinerama.a that NetBSD
builds as it doesn't contain position independent code, certainly back when I
originally did it adding the above define was the simplest solution.
I think RedHat doesn't have this issue as the .a's have PIC anyway (I haven't
actually confirmed this just seen a couple of things that implied it).
A similar problem happens with libxkbfile.a. In kdebase 3.1.x the build of
kcm_keyboard.so wants to link in a PIC libxkbfile but none exists. This is
further complicated by the fact that if you actually make the contents of
libxkbfile.a PIC, then the NetBSD pkgsrc libtool won't use it - it wants a
libxkbfile_pic.a or libxkbfile.so and in the playing that I did I couldn't
convince the kdebase build to use a libxkbfile_pic.a.
Again this isn't a problem on Solaris as it has a libxkbfile.so and I don't
think is a problem on Linux as I think the libxkbfile.a is PIC and libtool is
happy to use it. I haven't got a good solution for this.
cheers
mark