Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 362883

Summary: media-libs/mediastreamer-2.7.3-r1: undefined references in libmediastreamer
Product: Gentoo Linux Reporter: Luigi 'Comio' Mantellini <luigi.mantellini+gentoo>
Component: [OLD] LibraryAssignee: Mounir Lamouri (volkmar) (RETIRED) <volkmar>
Status: RESOLVED FIXED    
Severity: major CC: Adrian.Bassett, ansla80, fabio.coatti, fcoiffie, lewis+gentoo, m.debruijne, petr.pisar, rose, ua0zeh, voip+disabled
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: kopete compilation fail
Compilation log of mediastreamer library
Fix for mediastreamer / videoout.c refactoring

Description Luigi 'Comio' Mantellini 2011-04-10 16:09:40 UTC
libmediastreamer uses the following symbols (from ffmpeg?):

/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../lib64/libmediastreamer.so: undefined reference to `ms_sws_scale'                                         
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../lib64/libmediastreamer.so: undefined reference to `ms_sws_freeContext'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../lib64/libmediastreamer.so: undefined reference to `ms_sws_getContext'
collect2: ld returned 1 exit status

that are non exported by any other library.

I suppose a ffmpeg issue, but I cannot identificate the last working ffmeg/libmediastreamer versions.



Reproducible: Always

Steps to Reproduce:
1. use ffmpeg 0.6_90_rc0 (or 0.6_p25767)
2. use mediastreamer 2.7.3-r1 (or 2.7.3)
3. try to compile a package that requires mediastreamer (ie kopete)
Actual Results:  
Unable to resolve symbols and compile package (kopete in my case)

Expected Results:  
compilation error free

cassini comio # emerge --info
Portage 2.1.9.45 (default/linux/amd64/10.0/desktop/kde, gcc-4.5.2, glibc-2.13-r2, 2.6.38-gentoo-r1 x86_64)
=================================================================
System uname: Linux-2.6.38-gentoo-r1-x86_64-Intel-R-_Core-TM-2_CPU_T5600_@_1.83GHz-with-gentoo-2.0.2
Timestamp of tree: Sun, 10 Apr 2011 15:30:01 +0000
ccache version 3.1.4 [enabled]
app-shells/bash:     4.2_p8
dev-java/java-config: 2.1.11-r3
dev-lang/python:     2.7.1-r1, 3.1.3-r1
dev-util/ccache:     3.1.4
dev-util/cmake:      2.8.4
sys-apps/baselayout: 2.0.2
sys-apps/openrc:     0.8.0
sys-apps/sandbox:    2.5
sys-devel/autoconf:  2.13, 2.68
sys-devel/automake:  1.9.6-r3, 1.10.3, 1.11.1-r1
sys-devel/binutils:  2.21
sys-devel/gcc:       4.5.2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.4-r1
sys-devel/make:      3.82
virtual/os-headers:  2.6.38 (sys-kernel/linux-headers)
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA android skype-eula PUEL BSD GPL dlj-1.1 googleearth AdobeFlash-10.1"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -mtune=native -march=native"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/openvpn/easy-rsa"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe -mtune=native -march=native"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs ccache distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="it"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/nx /var/lib/layman/x11 /var/lib/layman/mozilla /var/lib/layman/rion /var/lib/layman/mysql /usr/local/portage/comio"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="7zip X X509 a52 aac acl acpi alsa amd64 aspell bash-completion berkdb bluetooth branding bzip2 cairo cdr cli consolekit cracklib crypt cups cxx dbus dri dts dvb dvd dvdr emboss encode exif fam firefox flac fortran gallium gammu gdbm gdu gif glib gmail gmp gnokii gpm gstreamer iconv ipv6 jack java6 jbig jpeg jpeg2k kde kde4 lcms ldap libnotify lirc lzma mad mikmod mmx mng modules mp3 mp4 mpeg mudflap multilib mysql ncurses nls nptl nptlonly nsplugin obex ogg opengl openmp pam pango pch pcre pdf perl plasma png policykit ppds pppd python qt3support qt4 readline sdl semantic-desktop session spell sql sse sse2 ssl startup-notification svg sysfs syslog tcpd tga threads tiff truetype udev unicode usb vorbis wicd x264 xattr xcb xcomposite xine xinerama xml xorg xrandr xscreensaver xulrunner xv xvid zeroconf zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="it" LIRC_DEVICES="devinput" PHP_TARGETS="php5-3" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="ati radeon radeonhd r300 r500" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Luigi 'Comio' Mantellini 2011-04-10 16:11:37 UTC
Created attachment 269313 [details]
kopete compilation fail
Comment 2 Rafał Mużyło 2011-04-10 16:16:37 UTC
Attach full build log of libmediastreamer and output of 'ldd -r' for libmediastreamer.so.
Comment 3 Rafał Mużyło 2011-04-10 16:18:46 UTC
*** Bug 362881 has been marked as a duplicate of this bug. ***
Comment 4 Luigi 'Comio' Mantellini 2011-04-10 16:27:31 UTC
These symbols are used into mediastreamer/src/videoout.c file.
I don't know the last working ffmpeg libray... can you help me?
Comment 5 Luigi 'Comio' Mantellini 2011-04-10 16:28:46 UTC
Created attachment 269317 [details]
Compilation log of mediastreamer library

This is the output of  ldd -r libmediastremer.so:

cassini files # ldd -r /usr/lib/libmediastreamer.so
        linux-vdso.so.1 =>  (0x00007fffa8fff000)
        libortp.so.8 => /usr/lib64/libortp.so.8 (0x00007fae32315000)
        libportaudio.so.2 => /usr/lib64/libportaudio.so.2 (0x00007fae320ec000)
        libasound.so.2 => /usr/lib64/libasound.so.2 (0x00007fae31e0c000)
        libpulse.so.0 => /usr/lib64/libpulse.so.0 (0x00007fae31bc8000)
        libspeex.so.1 => /usr/lib64/libspeex.so.1 (0x00007fae319ae000)
        libspeexdsp.so.1 => /usr/lib64/libspeexdsp.so.1 (0x00007fae3179a000)
        libgsm.so.1 => /usr/lib64/libgsm.so.1 (0x00007fae3158e000)
        libv4l2.so.0 => /usr/lib64/libv4l2.so.0 (0x00007fae31383000)
        libavcodec.so.52 => /usr/lib64/libavcodec.so.52 (0x00007fae3073d000)
        libavutil.so.50 => /usr/lib64/libavutil.so.50 (0x00007fae30524000)
        libswscale.so.0 => /usr/lib64/libswscale.so.0 (0x00007fae302ec000)
        libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007fae30088000)
        libtheora.so.0 => /usr/lib64/libtheora.so.0 (0x00007fae2fe54000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fae2fc37000)
        librt.so.1 => /lib64/librt.so.1 (0x00007fae2fa2d000)
        libXv.so.1 => /usr/lib64/libXv.so.1 (0x00007fae2f827000)
        libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007fae2f614000)
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007fae2f2d1000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fae2f0cd000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fae2ee4b000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fae2eabf000)
        libssl.so.1.0.0 => /usr/lib64/libssl.so.1.0.0 (0x00007fae2e862000)
        libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0 (0x00007fae2e4b1000)
        libjack.so.0 => /usr/lib64/libjack.so.0 (0x00007fae2e292000)
        libpulsecommon-0.9.22.so => /usr/lib64/libpulsecommon-0.9.22.so (0x00007fae2e040000)
        libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x00007fae2de3e000)
        libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007fae2dc34000)
        libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fae2da2f000)
        libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007fae2d813000)
        libXtst.so.6 => /usr/lib64/libXtst.so.6 (0x00007fae2d60b000)
        libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007fae2d3fb000)
        libxcb-atom.so.1 => /usr/lib64/libxcb-atom.so.1 (0x00007fae2d1f6000)
        libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007fae2cfd7000)
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007fae2cdd3000)
        libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007fae2cbcd000)
        libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fae2c9c3000)
        libsndfile.so.1 => /usr/lib64/libsndfile.so.1 (0x00007fae2c75b000)
        libFLAC.so.8 => /usr/lib64/libFLAC.so.8 (0x00007fae2c521000)
        libvorbisenc.so.2 => /usr/lib64/libvorbisenc.so.2 (0x00007fae2c051000)
        libvorbis.so.0 => /usr/lib64/libvorbis.so.0 (0x00007fae2be25000)
        libogg.so.0 => /usr/lib64/libogg.so.0 (0x00007fae2bc1e000)
        libasyncns.so.0 => /usr/lib64/libasyncns.so.0 (0x00007fae2ba18000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fae2b800000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fae2b5e9000)
        libdbus-1.so.3 => /usr/lib64/libdbus-1.so.3 (0x00007fae2b3a2000)
        libgdbm.so.3 => /usr/lib64/libgdbm.so.3 (0x00007fae2b19c000)
        libcap.so.2 => /lib64/libcap.so.2 (0x00007fae2af96000)
        libv4lconvert.so.0 => /usr/lib64/libv4lconvert.so.0 (0x00007fae2ad22000)
        libavcore.so.0 => /usr/lib64/libavcore.so.0 (0x00007fae2ab1c000)
        libxvidcore.so.4 => /usr/lib64/libxvidcore.so.4 (0x00007fae2a800000)
        libx264.so.114 => /usr/lib64/libx264.so.114 (0x00007fae2a554000)
        libtheoraenc.so.1 => /usr/lib64/libtheoraenc.so.1 (0x00007fae2a327000)
        libtheoradec.so.1 => /usr/lib64/libtheoradec.so.1 (0x00007fae2a116000)
        libschroedinger-1.0.so.0 => /usr/lib64/libschroedinger-1.0.so.0 (0x00007fae29e6a000)
        libopenjpeg.so.1.4 => /usr/lib64/libopenjpeg.so.1.4 (0x00007fae29c4a000)
        libopencore-amrwb.so.0 => /usr/lib64/libopencore-amrwb.so.0 (0x00007fae29a32000)
        libopencore-amrnb.so.0 => /usr/lib64/libopencore-amrnb.so.0 (0x00007fae29801000)
        libmp3lame.so.0 => /usr/lib64/libmp3lame.so.0 (0x00007fae29585000)
        libdirac_encoder.so.0 => /usr/lib64/libdirac_encoder.so.0 (0x00007fae292ec000)
        libva-0.32.0.2.so.1 => /usr/lib64/libva-0.32.0.2.so.1 (0x00007fae290bc000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fae28ea4000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fae327ba000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007fae28c9e000)
        liborc-0.4.so.0 => /usr/lib64/liborc-0.4.so.0 (0x00007fae28a23000)
        libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/libstdc++.so.6 (0x00007fae2871a000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fae28503000)
undefined symbol: ms_sws_freeContext    (/usr/lib/libmediastreamer.so)
undefined symbol: ms_sws_scale  (/usr/lib/libmediastreamer.so)
undefined symbol: ms_sws_getContext     (/usr/lib/libmediastreamer.so)
Comment 6 Rafał Mużyło 2011-04-10 17:30:28 UTC
Seems that this is actually an upstream bug as none of those functions seem defined in the sources.
Comment 7 Luigi 'Comio' Mantellini 2011-04-10 18:03:56 UTC
I will try to analyze the git log of linphone... stay tuned.
Comment 8 Luigi 'Comio' Mantellini 2011-04-10 18:12:42 UTC
(In reply to comment #7)
> I will try to analyze the git log of linphone... stay tuned.

Find my comments:

* This commit remove some definition:

commit 57bde1a2911395eccfa985bc29386738a3e1e7a0



revisit scaler wrapper in mediastreamer2
Author Simon Morlat<simon.morlat@linphone.org>
Author date 1 Dec 2010 23:18:10
Parent improve x11video to adapt to small sizes.
Child Merge branch 'dev_android_video' of git.linphone.org:medi...
Branch master (add config.rpath) 
Branch origin/master (add config.rpath) 
Precedes 2.7.0 (update news)

    revisit scaler wrapper in mediastreamer2


General rules for the patch:

ms_sws_freeContext() -> ms_scaler_context()
ms_sws_getContext() -> ms_scaler_create_context()
ms_sws_scale() -> ms_scaler_process()
struct ms_SwsContext  -> MSScalerContext 


I hope to be useful

ciao

luigi
Comment 9 Luigi 'Comio' Mantellini 2011-04-10 18:16:27 UTC
I'm trying to write a patch to videoout.c. Give me time.

ciao
Comment 10 Luigi 'Comio' Mantellini 2011-04-10 18:34:12 UTC
Created attachment 269363 [details, diff]
Fix for mediastreamer / videoout.c refactoring

This patch should solve the issue.

please add also a epatch "blablabla" in your ebuild.

ciao

luigi
Comment 11 Peter Volkov (RETIRED) gentoo-dev 2011-04-11 08:38:28 UTC
Thank you Luigi! Actually I'm unsure about this patch since in mentioned commit some substitutions are:

-                       ms_sws_freeContext(s->sws_ctx);
+                       sws_freeContext(s->sws_ctx);
                        s->sws_ctx=NULL;

while others are:

-               ms_sws_freeContext(s->sws_ctx);
+               ms_scaler_context_free(s->sws_ctx);
                s->sws_ctx=NULL;

I have no time to dig this further so I've contacted upstream on this issue.
Comment 12 Luigi 'Comio' Mantellini 2011-04-11 18:30:52 UTC
From src/msvideo.c, it results that ms_scaler_* should be better that the direct sws_* calls. I can be wrong... of course.

ciao

luigi
Comment 13 Peter Volkov (RETIRED) gentoo-dev 2011-04-12 06:17:14 UTC
Thank you, Luigi. I've backported upstream patch and now issue should be fixed.
Comment 14 Peter Volkov (RETIRED) gentoo-dev 2011-04-12 06:18:07 UTC
*** Bug 363173 has been marked as a duplicate of this bug. ***
Comment 15 Andrei Slavoiu 2011-04-12 21:39:06 UTC
You should rev-bump it to correctly fix this, as it's still broken for anyone that installed media-libs/mediastreamer-2.7.3-r1 before you commited the fix.
Comment 16 Peter Volkov (RETIRED) gentoo-dev 2011-04-14 07:15:14 UTC
(In reply to comment #15)
> You should rev-bump it to correctly fix this, as it's still broken for anyone
> that installed media-libs/mediastreamer-2.7.3-r1 before you commited the fix.

Done. Thanks.