[vlc-devel] [vlc-commits] win64 packaging: distribute libstdc++-6.dll and libgcc_s_sjlj-1.dll
RafaëlCarré
funman at videolan.org
Sun Nov 6 17:59:32 CET 2011
Rémi Denis-Courmont <remi <at> remlab.net> writes:
> > > Eh? What happens if another version of libraries with the same names
> > > exist in %SYSTEM64%
> >
> > Not sure about that one, I could test it on a real system
The copy in VLC folder is used.
> > > or are already loaded in the current process?
> >
> > http://msdn.microsoft.com/en-us/library/ms682586(v=VS.85).aspx
> >
> > Before the system searches for a DLL, it checks the following:
> >
> > If a DLL with the same module name is already loaded in memory, the
> > system uses the loaded DLL, no matter which directory it is in. The
> > system does not search for the DLL.
> >
> > -> the copy in memory is used
>
> That reads like it will fail miserably if an application uses an older version
> of libgcc_s and then loads LibVLC.
s/loads LibVLC/loads a C++ VLC plugin/ , so in such a theoretical event one
could just delete all C++ plugins.
Or modify the application to load the dlls from VLC path (they load libvlc.dll
already)
> > Anyway I expect libstdc++-6.dll to have a consistent ABI, just like
> > libstdc++-6.so
>
> Maybe stdc++ and gcc_s are sanely versioned. And fortunately, Windows always
> uses symbol versioning internally, does it not?
No idea.
> But for other less stable libraries like libav, this sounds like a crazy bet.
I agree
More information about the vlc-devel
mailing list