Bug 138739 - mpeg4ip-1.5.0.1 fails to compile with "video_sdl.cpp:(.text+0xa82): undefined reference to `XMoveWindow'"
Bug#: 138739 Product:  Gentoo Linux Version: 2006.0 Platform: x86
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: tester@gentoo.org Reported By: wrcarr@gmail.com
Component: Applications
URL: 
Summary: mpeg4ip-1.5.0.1 fails to compile with "video_sdl.cpp:(.text+0xa82): undefined reference to `XMoveWindow'"
Keywords:  
Status Whiteboard: 
Opened: 2006-07-01 10:04 0000
Description:   Opened: 2006-07-01 10:04 0000
Portage 2.1.1_pre1-r5 (default-linux/x86/2006.0, gcc-4.1.1/vanilla,
glibc-2.4-r3, 2.6.17-gentoo i686)
=================================================================
System uname: 2.6.17-gentoo i686 AMD Athlon(tm) XP 3200+
Gentoo Base System version 1.12.1
dev-lang/python:     2.4.3-r1
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     [Not Present]
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.60
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.17
sys-devel/gcc-config: 2.0.0_rc1
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r5
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -mtune=athlon-xp -march=athlon-xp -m3dnow -mmmx -msse -mno-sse2
-mno-sse3 -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib/mozilla/defaults/pref /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/env.d /etc/eselect/compiler /etc/gconf
/etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-O2 -mtune=athlon-xp -march=athlon-xp -m3dnow -mmmx -msse -mno-sse2
-mno-sse3 -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks metadata-transfer sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.mirrors.easynews.com/linux/gentoo/
http://gentoo.chem.wisc.edu/gentoo/ http://open-systems.ufl.edu/mirrors/gentoo
http://gentoo.osuosl.org/"
LANG="en_US"
LC_ALL="en_US"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress
--force --whole-file --delete --delete-after --stats --timeout=180
--exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 3dnow 3dnowext 7zip X Xaw3d a52 aac acpi alsa amd amr aotuv apache2
applet artworkextra asf avi bash-completion bcmath bdf beagle berkdb
bitmap-fonts bluetooth bonobo bzip2 cairo caps cdda cddb cdio cdparanoia cdr
clamav clamd cli corba crypt cups curl curlwrappers dbus dcc dga dio directfb
dmi dpms dri dts dvd dvdr dvdread eds encode esd evo evolution exif expat
extramodules fam fame fbcon ffmpeg fftw flac font-server foomaticdb fortran fpx
ftp fuse gb gcj gd gdbm geometry gif gimp glibc-compat20 glibc-omitfp glut glx
gnome gnutls gpm graphviz gsl gsm gstreamer gtk gtk2 gtkhtml hal howl hpn httpd
iconv id3 imagemagick imlib input_devices_evdev input_devices_joystick
input_devices_keyboard input_devices_mouse insecure-savers java javascript jbig
jikes joystick jpeg jpeg2k justify lame lcms lesstif libgda libwww
linuxthreads-tls live lzo lzw mad matroska mdb mhash mikmod mime mmap mmx
mmxext mng mod modplug mono mozcalendar mozilla moznomail mozsvg mozxmlterm mp3
mpeg mpeg2 mpi mplayer multicall musepack mysql mysqli nautilus ncurses nls
nntp no-old-linux nocardbus nptl nptlonly nsplugin nvidia objc objc++ offensive
ofx ogg oggvorbis on-the-fly-crypt opengl oss pam pam_chroot pam_console
pam_timestamp pango pccts pcntl pcre pdf pdflib perl player png posix ppds pppd
pwdb python qt qt3 qt4 quicktime rar readline real rtc rtsp scanner sdl session
sharedmem shout skins slang slp smime sms sndfile sockets sox spell spl sse ssl
stream subtitles symlink sysfs sysvipc t1lib tcltk tcpd test tga theora threads
tiff toolbar tools truetype truetype-fonts type1-fonts udev unicode upnp usb
user-homedirs userlocales v4l v4l2 vcd vdr vlm vorbis widescreen wifi
win32codecs wma wmf wxwindows x264 xanim xine xml xml2 xorg xpm xprint
xscreensaver xv xvid xvmc yahoo yv12 zlib elibc_glibc input_devices_linuxinput
input_devices_ps2mouse kernel_linux userland_GNU video_cards_nv
video_cards_vesa video_cards_fb video_cards_nvidia"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, LINGUAS,
PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

_______________________________________________________________________________

Compile output where error occurred:

g++ -D_REENTRANT -DNOCONTROLS -fexceptions -Wall -Wno-char-subscripts
-Woverloaded-virtual -Wno-unknown-pragmas -Wno-deprecated -Wformat=2
-Wpointer-arith -Wsign-compare
-DPLAYER_PLUGIN_DIR=\"/usr/lib/mp4player_plugin\" -O2 -mtune=athlon-xp
-march=athlon-xp -m3dnow -mmmx -msse -mno-sse2 -mno-sse3 -fomit-frame-pointer
-pipe -DUSE_MMX -DMPEG4IP -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -o
.libs/mp4player main.o  ../../lib/SDLAudio/src/.libs/libmpeg4ipSDL.so
./.libs/libmp4player.a
/var/tmp/portage/mpeg4ip-1.5.0.1/work/mpeg4ip-1.5.0.1/lib/gnu/.libs/libmpeg4ip_gnu.so
/var/tmp/portage/mpeg4ip-1.5.0.1/work/mpeg4ip-1.5.0.1/lib/sdp/.libs/libsdp.so
/var/tmp/portage/mpeg4ip-1.5.0.1/work/mpeg4ip-1.5.0.1/player/lib/mp4util/.libs/libmp4util.so
/var/tmp/portage/mpeg4ip-1.5.0.1/work/mpeg4ip-1.5.0.1/player/lib/libhttp/.libs/libhttp.so
/var/tmp/portage/mpeg4ip-1.5.0.1/work/mpeg4ip-1.5.0.1/lib/msg_queue/.libs/libmsg_queue.so
/var/tmp/portage/mpeg4ip-1.5.0.1/work/mpeg4ip-1.5.0.1/lib/mp4av/.libs/libmp4av.so
/var/tmp/portage/mpeg4ip-1.5.0.1/work/mpeg4ip-1.5.0.1/lib/mp4/.libs/libmp4.so
/var/tmp/portage/mpeg4ip-1.5.0.1/work/mpeg4ip-1.5.0.1/lib/mp4v2/.libs/libmp4v2.so
/var/tmp/portage/mpeg4ip-1.5.0.1/work/mpeg4ip-1.5.0.1/lib/fposrec/.libs/libmpeg4ip_fposrec.so
/var/tmp/portage/mpeg4ip-1.5.0.1/work/mpeg4ip-1.5.0.1/lib/ismacryp/.libs/libismacryp.so
/var/tmp/portage/mpeg4ip-1.5.0.1/work/mpeg4ip-1.5.0.1/lib/srtp/.libs/libsrtpif.so
./.libs/libmp4syncsdl.a ./.libs/libmp4sdlvideo.a ./.libs/libmp4syncbase.a
./.libs/libmp4playerutils.a ../../lib/audio/.libs/libaudio.a
../../lib/ismacryp/.libs/libismacryp.so ../../lib/srtp/.libs/libsrtpif.so
/usr/lib/libSDL.so -lm -L/usr/lib /usr/lib/libdirectfb.so /usr/lib/libfusion.so
/usr/lib/libdirect.so -lz -lpthread -ldl
./.libs/libmp4sdlvideo.a(video_sdl.o): In function
`CSDLVideo::set_screen_size(int, int, int, int, int, int)':
video_sdl.cpp:(.text+0xa82): undefined reference to `XMoveWindow'
collect2: ld returned 1 exit status
make[4]: *** [mp4player] Error 1

------- Comment #1 From Olivier Crete 2006-07-01 12:43:54 0000 -------
hmm, strange, it should pull in libX11. Did you compile libSDL with as-needed?
Or anything else special for that matter ? or with directfb and not X support ?
What does sdl-config --libs give? 

------- Comment #2 From Raymond Carr 2006-07-04 21:48:32 0000 -------
(In reply to comment #1)
> hmm, strange, it should pull in libX11. Did you compile libSDL with as-needed?
> Or anything else special for that matter ? or with directfb and not X support ?
> What does sdl-config --libs give? 
> 

dragon ~ # sdl-config --libs
-lSDL -lpthread

I tried re-compiling mpeg4ip-1.5.0.1 with USE="-sdl", but it still dies with
the same error at the same location.

I also checked for the existence of libX11 and found /usr/lib/libX11.so.6.2.0
and soft links to it from libX11.so.6 and libX11.so.

When compiling libsdl, the "USE" varibles are:
USE="X alsa dga directfb esd fbcon opengl oss xv -aalib -arts -ggi -libcaca
-nas -noaudio -noflagstrip -nojoystick -novideo -svga -xinerama"

I re-compiled libsdl, and then tried mpeg4ip again, and still got the same
error. 

Suggestions?

Thanks,
Raymond Carr

------- Comment #3 From Olivier Crete 2006-07-05 06:33:10 0000 -------
in your /usr/lib/libSDL.la, what is in the line dependency_libs ? Can you paste
more of the error (I guess there is a libtool line right before the one you
pasted)?

------- Comment #4 From Raymond Carr 2006-07-08 20:56:14 0000 -------
Created an attachment (id=91251) [details]
Mpeg4ip compile log

------- Comment #5 From Raymond Carr 2006-07-08 20:58:27 0000 -------
(In reply to comment #3)
> in your /usr/lib/libSDL.la, what is in the line dependency_libs ? Can you paste
> more of the error (I guess there is a libtool line right before the one you
> pasted)?
> 

wrcarr@dragon ~ $ grep dependency_libs /usr/lib/libSDL.la
dependency_libs=' -lm -L/usr/lib /usr/lib/libdirectfb.la /usr/lib/libfusion.la
/ usr/lib/libdirect.la -lz -ldl -lpthread'

More of the output of the compile is stored in the attached plain-text file.

Thanks,
Raymond Carr

------- Comment #6 From Raymond Carr 2006-07-09 15:41:46 0000 -------
(In reply to comment #5)
> (In reply to comment #3)
> > in your /usr/lib/libSDL.la, what is in the line dependency_libs ? Can you paste
> > more of the error (I guess there is a libtool line right before the one you
> > pasted)?
> > 
> 
> wrcarr@dragon ~ $ grep dependency_libs /usr/lib/libSDL.la
> dependency_libs=' -lm -L/usr/lib /usr/lib/libdirectfb.la /usr/lib/libfusion.la
> / usr/lib/libdirect.la -lz -ldl -lpthread'
> 
> More of the output of the compile is stored in the attached plain-text file.
> 
> Thanks,
> Raymond Carr
> 

On a whim, I unmerged libSDL-1.2.11 and merged libSDL-1.2.8, then tried to
merge mpeg4ip.This time, the compile completed, and the player is working okay.
So there appears to be a change from libSDL-1.2.8 to -1.2.11 that breaks
mpeg4ip.

Thanks,
Raymond Carr

------- Comment #7 From Olivier Crete 2006-07-09 15:52:35 0000 -------
the problem is that the dependencies of libsdl doesnt include libX11 while
mpeg4ip relied on it to be pulled from there.. upstread has fixed it in their
CVS. I've added a requirement on <sdl-1.2.11 .. The fix is in their CVS, the
next version should work ok with the newer libSDL.

------- Comment #8 From Olivier Crete 2006-08-08 17:25:12 0000 -------
As a workaround, you have to build media-libs/libsdl with USE=X... I added a
check to the mpeg4ip ebuild that will warn you if you dont