diff mbox series

[1/1] qga-vss: Use dynamic linking for GLib

Message ID 20210209145423.178611-1-konstantin@daynix.com
State New
Headers show
Series [1/1] qga-vss: Use dynamic linking for GLib | expand

Commit Message

Konstantin Kostiuk Feb. 9, 2021, 2:54 p.m. UTC
The current GLib version implements the DllMain function. DllMain is also
present in the provider.cpp code. So in the case of static linking, the
DllMain redefinition error occurs. For now, just switch to dynamic linking
and revert this patch when the issue will be solved.

See Glib issue for more details https://gitlab.gnome.org/GNOME/glib/-/issues/692

Signed-off-by: Kostiantyn Kostiuk <konstantin@daynix.com>
---
 qga/vss-win32/meson.build | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Konstantin Kostiuk Feb. 17, 2021, 12:54 p.m. UTC | #1
ping

On Tue, Feb 9, 2021 at 4:54 PM Kostiantyn Kostiuk <konstantin@daynix.com>
wrote:

> The current GLib version implements the DllMain function. DllMain is also
> present in the provider.cpp code. So in the case of static linking, the
> DllMain redefinition error occurs. For now, just switch to dynamic linking
> and revert this patch when the issue will be solved.
>
> See Glib issue for more details
> https://gitlab.gnome.org/GNOME/glib/-/issues/692
>
> Signed-off-by: Kostiantyn Kostiuk <konstantin@daynix.com>
> ---
>  qga/vss-win32/meson.build | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/qga/vss-win32/meson.build b/qga/vss-win32/meson.build
> index 780c461432..90825edef3 100644
> --- a/qga/vss-win32/meson.build
> +++ b/qga/vss-win32/meson.build
> @@ -1,5 +1,5 @@
>  if add_languages('cpp', required: false)
> -  glib_static = dependency('glib-2.0', static: true)
> +  glib_dynamic = dependency('glib-2.0', static: false)
>    link_args = cc.get_supported_link_arguments(['-fstack-protector-all',
> '-fstack-protector-strong',
>                                                 '-Wl,--add-stdcall-alias',
> '-Wl,--enable-stdcall-fixup'])
>
> @@ -8,7 +8,7 @@ if add_languages('cpp', required: false)
>                  cpp_args: ['-Wno-unknown-pragmas',
> '-Wno-delete-non-virtual-dtor', '-Wno-non-virtual-dtor'],
>                  link_args: link_args,
>                  vs_module_defs: 'qga-vss.def',
> -                dependencies: [glib_static, socket,
> +                dependencies: [glib_dynamic, socket,
>                                 cc.find_library('ole32'),
>                                 cc.find_library('oleaut32'),
>                                 cc.find_library('shlwapi'),
> --
> 2.25.1
>
>
Konstantin Kostiuk March 1, 2021, 9:49 a.m. UTC | #2
ping

On Wed, Feb 17, 2021 at 2:54 PM Konstantin Kostiuk <konstantin@daynix.com>
wrote:

> ping
>
> On Tue, Feb 9, 2021 at 4:54 PM Kostiantyn Kostiuk <konstantin@daynix.com>
> wrote:
>
>> The current GLib version implements the DllMain function. DllMain is also
>> present in the provider.cpp code. So in the case of static linking, the
>> DllMain redefinition error occurs. For now, just switch to dynamic linking
>> and revert this patch when the issue will be solved.
>>
>> See Glib issue for more details
>> https://gitlab.gnome.org/GNOME/glib/-/issues/692
>>
>> Signed-off-by: Kostiantyn Kostiuk <konstantin@daynix.com>
>> ---
>>  qga/vss-win32/meson.build | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/qga/vss-win32/meson.build b/qga/vss-win32/meson.build
>> index 780c461432..90825edef3 100644
>> --- a/qga/vss-win32/meson.build
>> +++ b/qga/vss-win32/meson.build
>> @@ -1,5 +1,5 @@
>>  if add_languages('cpp', required: false)
>> -  glib_static = dependency('glib-2.0', static: true)
>> +  glib_dynamic = dependency('glib-2.0', static: false)
>>    link_args = cc.get_supported_link_arguments(['-fstack-protector-all',
>> '-fstack-protector-strong',
>>
>> '-Wl,--add-stdcall-alias', '-Wl,--enable-stdcall-fixup'])
>>
>> @@ -8,7 +8,7 @@ if add_languages('cpp', required: false)
>>                  cpp_args: ['-Wno-unknown-pragmas',
>> '-Wno-delete-non-virtual-dtor', '-Wno-non-virtual-dtor'],
>>                  link_args: link_args,
>>                  vs_module_defs: 'qga-vss.def',
>> -                dependencies: [glib_static, socket,
>> +                dependencies: [glib_dynamic, socket,
>>                                 cc.find_library('ole32'),
>>                                 cc.find_library('oleaut32'),
>>                                 cc.find_library('shlwapi'),
>> --
>> 2.25.1
>>
>>
Philippe Mathieu-Daudé March 1, 2021, 11:39 a.m. UTC | #3
Cc'ing Paolo/Marc-André/Daniel

On 2/9/21 3:54 PM, Kostiantyn Kostiuk wrote:
> The current GLib version implements the DllMain function. DllMain is also
> present in the provider.cpp code. So in the case of static linking, the
> DllMain redefinition error occurs. For now, just switch to dynamic linking
> and revert this patch when the issue will be solved.
> 
> See Glib issue for more details https://gitlab.gnome.org/GNOME/glib/-/issues/692
> 
> Signed-off-by: Kostiantyn Kostiuk <konstantin@daynix.com>
> ---
>  qga/vss-win32/meson.build | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/qga/vss-win32/meson.build b/qga/vss-win32/meson.build
> index 780c461432..90825edef3 100644
> --- a/qga/vss-win32/meson.build
> +++ b/qga/vss-win32/meson.build
> @@ -1,5 +1,5 @@
>  if add_languages('cpp', required: false)
> -  glib_static = dependency('glib-2.0', static: true)
> +  glib_dynamic = dependency('glib-2.0', static: false)
>    link_args = cc.get_supported_link_arguments(['-fstack-protector-all', '-fstack-protector-strong',
>                                                 '-Wl,--add-stdcall-alias', '-Wl,--enable-stdcall-fixup'])
>  
> @@ -8,7 +8,7 @@ if add_languages('cpp', required: false)
>                  cpp_args: ['-Wno-unknown-pragmas', '-Wno-delete-non-virtual-dtor', '-Wno-non-virtual-dtor'],
>                  link_args: link_args,
>                  vs_module_defs: 'qga-vss.def',
> -                dependencies: [glib_static, socket,
> +                dependencies: [glib_dynamic, socket,
>                                 cc.find_library('ole32'),
>                                 cc.find_library('oleaut32'),
>                                 cc.find_library('shlwapi'),
>
Marc-André Lureau March 1, 2021, 12:10 p.m. UTC | #4
Hi

On Mon, Mar 1, 2021 at 3:46 PM Philippe Mathieu-Daudé <philmd@redhat.com>
wrote:

> Cc'ing Paolo/Marc-André/Daniel
>
> On 2/9/21 3:54 PM, Kostiantyn Kostiuk wrote:
> > The current GLib version implements the DllMain function. DllMain is also
> > present in the provider.cpp code. So in the case of static linking, the
> > DllMain redefinition error occurs. For now, just switch to dynamic
> linking
> > and revert this patch when the issue will be solved.
> >
> > See Glib issue for more details
> https://gitlab.gnome.org/GNOME/glib/-/issues/692



It looks like this was fixed recently, but there are a lot of related
discussions:
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1316

If I read the old Makefile right, it's a bug we introduced by commit
7272fc7 (meson: convert vss-win32), since glib was in the -shared list.

So it's legitimate to revert it to me:
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>


> >
> > Signed-off-by: Kostiantyn Kostiuk <konstantin@daynix.com>
> > ---
> >  qga/vss-win32/meson.build | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/qga/vss-win32/meson.build b/qga/vss-win32/meson.build
> > index 780c461432..90825edef3 100644
> > --- a/qga/vss-win32/meson.build
> > +++ b/qga/vss-win32/meson.build
> > @@ -1,5 +1,5 @@
> >  if add_languages('cpp', required: false)
> > -  glib_static = dependency('glib-2.0', static: true)
> > +  glib_dynamic = dependency('glib-2.0', static: false)
> >    link_args = cc.get_supported_link_arguments(['-fstack-protector-all',
> '-fstack-protector-strong',
> >
>  '-Wl,--add-stdcall-alias', '-Wl,--enable-stdcall-fixup'])
> >
> > @@ -8,7 +8,7 @@ if add_languages('cpp', required: false)
> >                  cpp_args: ['-Wno-unknown-pragmas',
> '-Wno-delete-non-virtual-dtor', '-Wno-non-virtual-dtor'],
> >                  link_args: link_args,
> >                  vs_module_defs: 'qga-vss.def',
> > -                dependencies: [glib_static, socket,
> > +                dependencies: [glib_dynamic, socket,
> >                                 cc.find_library('ole32'),
> >                                 cc.find_library('oleaut32'),
> >                                 cc.find_library('shlwapi'),
> >
>
>
>
Paolo Bonzini March 1, 2021, 12:16 p.m. UTC | #5
On 01/03/21 13:10, Marc-André Lureau wrote:
> If I read the old Makefile right, it's a bug we introduced by commit 
> 7272fc7 (meson: convert vss-win32), since glib was in the -shared list.
> 
> So it's legitimate to revert it to me:
> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Queued, thanks.

> 
>      >
>      > Signed-off-by: Kostiantyn Kostiuk <konstantin@daynix.com
>     <mailto:konstantin@daynix.com>>
>      > ---
>      >  qga/vss-win32/meson.build | 4 ++--
>      >  1 file changed, 2 insertions(+), 2 deletions(-)
>      >
>      > diff --git a/qga/vss-win32/meson.build b/qga/vss-win32/meson.build
>      > index 780c461432..90825edef3 100644
>      > --- a/qga/vss-win32/meson.build
>      > +++ b/qga/vss-win32/meson.build
>      > @@ -1,5 +1,5 @@
>      >  if add_languages('cpp', required: false)
>      > -  glib_static = dependency('glib-2.0', static: true)
>      > +  glib_dynamic = dependency('glib-2.0', static: false)
>      >    link_args =
>     cc.get_supported_link_arguments(['-fstack-protector-all',
>     '-fstack-protector-strong',
>      >                                               
>       '-Wl,--add-stdcall-alias', '-Wl,--enable-stdcall-fixup'])
>      >
>      > @@ -8,7 +8,7 @@ if add_languages('cpp', required: false)
>      >                  cpp_args: ['-Wno-unknown-pragmas',
>     '-Wno-delete-non-virtual-dtor', '-Wno-non-virtual-dtor'],
>      >                  link_args: link_args,
>      >                  vs_module_defs: 'qga-vss.def',
>      > -                dependencies: [glib_static, socket,
>      > +                dependencies: [glib_dynamic, socket,
>      >                                 cc.find_library('ole32'),
>      >                                 cc.find_library('oleaut32'),
>      >                                 cc.find_library('shlwapi'),
>      >
> 
> 
> 
> 
> -- 
> Marc-André Lureau
diff mbox series

Patch

diff --git a/qga/vss-win32/meson.build b/qga/vss-win32/meson.build
index 780c461432..90825edef3 100644
--- a/qga/vss-win32/meson.build
+++ b/qga/vss-win32/meson.build
@@ -1,5 +1,5 @@ 
 if add_languages('cpp', required: false)
-  glib_static = dependency('glib-2.0', static: true)
+  glib_dynamic = dependency('glib-2.0', static: false)
   link_args = cc.get_supported_link_arguments(['-fstack-protector-all', '-fstack-protector-strong',
                                                '-Wl,--add-stdcall-alias', '-Wl,--enable-stdcall-fixup'])
 
@@ -8,7 +8,7 @@  if add_languages('cpp', required: false)
                 cpp_args: ['-Wno-unknown-pragmas', '-Wno-delete-non-virtual-dtor', '-Wno-non-virtual-dtor'],
                 link_args: link_args,
                 vs_module_defs: 'qga-vss.def',
-                dependencies: [glib_static, socket,
+                dependencies: [glib_dynamic, socket,
                                cc.find_library('ole32'),
                                cc.find_library('oleaut32'),
                                cc.find_library('shlwapi'),