BenV's notes

FFmpeg versions and VLC 2

by on Jul.16, 2012, under Software

Another round of updates came along on Slackware64-current and since I was playing around with ffmpeg I figured I might as well update that. Since ffmpeg is one of those products that has a bunch of really active developers it gets updated about every 5 seconds.
This means that whenever they release a new version it’s instantly obsolete. However, that also means that when you’re trying to run the latest version from git, you’ll often run into software that uses the older functions/symbols/garbage and therefore won’t compile.

Just now when trying to update my ancient VLC version (1.something) to the latest 2.0.2 I ran into this one:

# Make was chugging along just fine ... until:
make[5]: Entering directory `/usr/src/vlc-2.0.2/modules/access'
CCLD libaccess_avio_plugin.la
/usr/lib64/gcc/x86_64-slackware-linux/4.7.1/../../../../x86_64-slackware-linux/bin/ld: .libs/libaccess_avio_plugin.so: version node not found for symbol av_gettime@LIBAVFORMAT_54
/usr/lib64/gcc/x86_64-slackware-linux/4.7.1/../../../../x86_64-slackware-linux/bin/ld: failed to set dynamic section sizes: Bad value
collect2: error: ld returned 1 exit status
make[5]: *** [libaccess_avio_plugin.la] Error 1

As often happens with these errors Google wasn’t really helpful so I figured I’d post the solution here.
The problem is that ffmpeg tags a version on those symbols, so whenever they switch versions all other garbage breaks. The solution is simple, add –disable-symver to the configure string. For those of you without access to brains, it’ll look something like:

you@brik:~/ffmpeg-git$ ./configure --prefix=/usr --disable-symver # and probably a bunch of extra options here

Problem solved for now 🙂




:, , , ,

Leave a Reply

You must be logged in to post a comment.