On Tue, Sep 07, 2021 at 06:13:32PM +0200, Ondrej Mosnacek wrote:
On Tue, Sep 7, 2021 at 5:45 PM Zebediah Figura zfigura@codeweavers.com wrote:
On 9/7/21 2:12 AM, Richard W.M. Jones wrote:
On Mon, Sep 06, 2021 at 05:59:41PM -0500, Zebediah Figura wrote:
Thanks everyone for their input.
There seems to be a consensus that Fedora would prefer that we use their MinGW dynamic libraries. However, this leaves a couple of questions:
- As I described in [1], we *may* be able to hack things in the Wine
loader such that we can use unmodified dynamic libraries. However, it's not fully clear yet that it's feasible. If it turns out to be infeasible, what preferences does Fedora have? (Renamed dynamic libraries shipped separately, shipped as part of Wine, static libraries, etc...)
Adding -static subpackages is the easiest option from our point of view. As I mentioned in the previous email this would mean adjusting an existing spec such as: https://src.fedoraproject.org/rpms/mingw-gnutls/blob/rawhide/f/mingw-gnutls.... so that it builds the static library. It's a simple and obvious change.
But can Wine use the static library built this way unmodified? And are there any other implications versus using a DLL?
I believe we should be able to use unmodified static libraries, yes.
There are the usual implications—more space on disk and in memory; in Wine's case it doesn't really matter a lot, but we do still have cases of multiple DLLs that use the same library. It may be possible to use helper DLLs to avoid that in most cases.
And, of course, I hate developing with static libraries :-(
Could you perhaps just build a new dynamic library (with the adjusted name) by linking an empty/dummy object with the Fedora-provided static library? (Not sure if that's possible, but it's what came to my mind when reading this thread.)
I doubt this is going to be possible. Windows PE DLLs have some complicated machinery for declaring exported symbols. Plus (like ELF) I imagine the compiler needs to generate quite different code for static vs dynamic.
Rich.
packaging@lists.fedoraproject.org