[mythtv] [PATCH] Disable screen aspect ratio detectionwithXinerama active

Matt Zimmerman mdz at debian.org
Fri Dec 19 22:06:57 EST 2003


On Fri, Dec 19, 2003 at 07:22:13PM -0600, Geoffrey Hausheer wrote:

> On Fri, 19 Dec 2003 17:59:35 -0500, "Isaac Richards" said:
> > On Friday 19 December 2003 05:33 pm, Doug Larrick wrote:
> > > On 12/19/03 16:52:25, Bruce Markey wrote:
> > > > What silly thing am I missing? This is after a distclean.
> > > >
> > > > ...
> > > > qmake -o Makefile mythepg.pro
> > > > g++  -o mythepg main.o   -L/usr/share/qt3/lib -L/usr/X11R6/lib -
> > > > L../../libs/libmyth -L../../libs/libmythtv -L../../libs/libavcodec -
> > > > L../../libs/libvbitext -L../../libs/libavformat -lmythtv -lavformat
> > > > -
> > > > lavcodec -lvbitext -lmyth-0.13 -L/usr/X11R6/lib -lXinerama -lXv -
> > > > lXxf86vm -lfreetype -lmp3lame -lqt-mt -lXext -lX11 -lm -lpthread
> > > > ../../libs/libmythtv/libmythtv.a(videoout_xv.o)(.text+0x8f8): In
> > > > function `VideoOutputXv::Init(int, int, float, unsigned, int, int,
> > > >
> > > > int, int, unsigned)':
> > > > : undefined reference to `XineramaQueryExtension(_XDisplay*, int*,
> > > >
> > > > int*)'
> > > > ../../libs/libmythtv/libmythtv.a(videoout_xv.o)(.text+0x10bd): In
> > > > function `VideoOutputXv::Init(int, int, float, unsigned, int, int,
> > > >
> > > > int, int, unsigned)':
> > > > : undefined reference to `XineramaIsActive(_XDisplay*)'
> > > >
> > > > collect2: ld returned 1 exit status
> > > > make: *** [mythepg] Error 1
> > >
> > > The user who originally requested this change had this problem too.
> > > You're missing a '-lXinerama' in your Makefile, whereas I have it (and
> > > didn't put it there)... no idea why.
> > 
> > But it's there..  Order looks right, too, as it's after the -lmythtv.
> > 

> I am seeing this too with Debian unstable.
> 
> Even weirder:
> $ nm /usr/X11R6/lib/libXinerama.a | grep XineramaQueryExtension
> 00000630 T XineramaQueryExtension
> 
> So the function is in the library, the '-lXinerama' is after '-lmythtv',
> yet I still can't compile.
> 
> I'm confused.

It sounds like there's a missing 'extern "C"' around the declarations in the
Xinerama headers.  So the linker is looking for a C++ function, not a C
function.

mizar:[/tmp] cat test.cc
#include <X11/extensions/Xinerama.h>

int main() {
        XineramaQueryExtension(NULL,NULL,NULL);
        return 0;
}
mizar:[/tmp] gcc -x c++ -o test test.cc -L/usr/X11R6/lib -lXinerama -lX11 -lXext
/tmp/cci2yPT9.o(.text+0x28): In function `main':
: undefined reference to `XineramaQueryExtension(_XDisplay*, int*, int*)'
/tmp/cci2yPT9.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
zsh: exit 1     gcc -x c++ -o test test.cc -L/usr/X11R6/lib -lXinerama -lX11 -lXext
mizar:[/tmp] gcc -x c -o test test.cc -L/usr/X11R6/lib -lXinerama -lX11 -lXext
mizar:[/tmp] 

Someone should probably check if this has been fixed in XFree86 4.3.x, which I
think is in experimental, and if not, there might be a bug report in it.

-- 
 - mdz


More information about the mythtv-dev mailing list