[FFmpeg-devel] Symbol versioning failure on Android

Martin Storsjö martin
Wed Dec 8 22:07:19 CET 2010


On Wed, 8 Dec 2010, Reimar D?ffinger wrote:

> On Wed, Dec 08, 2010 at 10:07:46PM +0200, Martin Storsj? wrote:
> > On Wed, 8 Dec 2010, Reimar D?ffinger wrote:
> > > But I do think that if in any way possible configure should
> > > check for the actual feature, not use some hacks based on the path/name
> > > of the linker or the target system that have no direct relation at all,
> > > this almost always means just delaying the proper solution.
> > 
> > It's not possible to check for the actual feature when cross compiling - 
> > the feature is fully available in the toolchain (which is quite close to a 
> > normal linux toolchain), it's just the runtime dynamic linker that doesn't 
> > handle these cases properly.
> > 
> > The third option actually is the closest one to checking for this feature, 
> > where we check for the linker name /system/bin/linker, which is the 
> > runtime linker that doesn't support versioning.
> 
> The problem is: what are you going to do when they fix it?

That issue is present in all the other approaches, too, unless we start 
using something like --target-os=linux-android2 for targeting newer 
platforms where it would be supported. (I doubt it ever will, though, 
symbol versioning doesn't make much sense in the setup where android is 
used.)

The even more straightforward solution would be to add an option 
--disable-symver - then it's totally up to the user if he wants it or not. 
The problem then, of course, is for the user to figure out that he 
actually needs this (it isn't totally obvious what's wrong when the 
application hangs when calling a symbol with multiple versions, where the 
fallback calls itself).

// Martin



More information about the ffmpeg-devel mailing list