[FFmpeg-devel] Binary compatibility for MinGW generated dlls

Panagiotis Issaris takis.issaris
Mon May 14 16:03:50 CEST 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

Reimar D?ffinger wrote:
> Hello,
> On Mon, May 14, 2007 at 03:01:15PM +0200, Panagiotis Issaris wrote:
>> Currently, when building new versions of libavcodec using MinGW, the
>> generated dlls cannot replace the old ones without relinking the
>> application.
>>
>> This is because the compiler generates the .def files, which contain all
>> public symbols. GCC sorts these alphabetically and numbers them
>> likewise. This means that if a symbol is added which is alphabetically
>> not situated after all other preexisting symbols, the library will lose
>> binary compatibility.
> [...]
>> PS: I am not very experienced in Windows related stuff, so, I might have
>> overlooked other simpler or better solutions...
> 
> Can't you instruct the compiler to link only against the function names,
> not the numbers?
> At least when getting the function address dlopen-like you can choose if
> you want to specify a function name or a number...

Yes, I think that would be the simplest solution, but I think that
requires using dllexport markings for all API functions. And, if I
recall correctly, this was recently suggested by someone, but I think
people strongly disliked it... I am not sure though, I am currently
rereading the ml-archives to see what was said on that topic.

With friendly regards,
Takis
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGSGxG9kOxLuzz4CkRAkU9AJsEdccxoIE28oybt1A7j8y3fUPCwwCcC6Y1
x9gdxNIH6EjQrTW6HxEEz8w=
=NaBX
-----END PGP SIGNATURE-----




More information about the ffmpeg-devel mailing list