Message ID | 20241031040426.772604-7-pierrick.bouvier@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | Enable building plugins on Windows with Clang | expand |
On 31/10/24 01:04, Pierrick Bouvier wrote: > Reported by clang++, but not by g++. > > ../qga/vss-win32/provider.cpp:48:6: error: no previous prototype for function 'LockModule' [-Werror,-Wmissing-prototypes] > 48 | void LockModule(BOOL lock) > | ^ > ../qga/vss-win32/provider.cpp:48:1: note: declare 'static' if the function is not intended to be used outside of this translation unit > 48 | void LockModule(BOOL lock) > | ^ > | static > ../qga/vss-win32/provider.cpp:531:13: error: no previous prototype for function 'DllMain' [-Werror,-Wmissing-prototypes] > 531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID lpReserved) > | ^ > ../qga/vss-win32/provider.cpp:531:1: note: declare 'static' if the function is not intended to be used outside of this translation unit > 531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID lpReserved) > | ^ > | static > > Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> > --- > qga/vss-win32/install.cpp | 6 +++++- > qga/vss-win32/provider.cpp | 5 ++++- > qga/vss-win32/requester.cpp | 8 ++++---- > 3 files changed, 13 insertions(+), 6 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com> On Thu, Oct 31, 2024 at 6:05 AM Pierrick Bouvier < pierrick.bouvier@linaro.org> wrote: > Reported by clang++, but not by g++. > > ../qga/vss-win32/provider.cpp:48:6: error: no previous prototype for > function 'LockModule' [-Werror,-Wmissing-prototypes] > 48 | void LockModule(BOOL lock) > | ^ > ../qga/vss-win32/provider.cpp:48:1: note: declare 'static' if the function > is not intended to be used outside of this translation unit > 48 | void LockModule(BOOL lock) > | ^ > | static > ../qga/vss-win32/provider.cpp:531:13: error: no previous prototype for > function 'DllMain' [-Werror,-Wmissing-prototypes] > 531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID > lpReserved) > | ^ > ../qga/vss-win32/provider.cpp:531:1: note: declare 'static' if the > function is not intended to be used outside of this translation unit > 531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID > lpReserved) > | ^ > | static > > Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> > --- > qga/vss-win32/install.cpp | 6 +++++- > qga/vss-win32/provider.cpp | 5 ++++- > qga/vss-win32/requester.cpp | 8 ++++---- > 3 files changed, 13 insertions(+), 6 deletions(-) > > diff --git a/qga/vss-win32/install.cpp b/qga/vss-win32/install.cpp > index 84944133f79..5cea5bcf747 100644 > --- a/qga/vss-win32/install.cpp > +++ b/qga/vss-win32/install.cpp > @@ -39,7 +39,7 @@ const GUID CLSID_WbemLocator = { 0x4590f811, 0x1d3a, > 0x11d0, > const GUID IID_IWbemLocator = { 0xdc12a687, 0x737f, 0x11cf, > {0x88, 0x4d, 0x00, 0xaa, 0x00, 0x4b, 0x2e, 0x24} }; > > -void errmsg(DWORD err, const char *text) > +static void errmsg(DWORD err, const char *text) > { > /* > * `text' contains function call statement when errmsg is called via > chk(). > @@ -242,6 +242,7 @@ out: > } > > /* Unregister this module from COM+ Applications Catalog */ > +STDAPI COMUnregister(void); > STDAPI COMUnregister(void) > { > qga_debug_begin; > @@ -256,6 +257,7 @@ out: > } > > /* Register this module to COM+ Applications Catalog */ > +STDAPI COMRegister(void); > STDAPI COMRegister(void) > { > qga_debug_begin; > @@ -380,11 +382,13 @@ out: > return hr; > } > > +STDAPI_(void) CALLBACK DLLCOMRegister(HWND, HINSTANCE, LPSTR, int); > STDAPI_(void) CALLBACK DLLCOMRegister(HWND, HINSTANCE, LPSTR, int) > { > COMRegister(); > } > > +STDAPI_(void) CALLBACK DLLCOMUnregister(HWND, HINSTANCE, LPSTR, int); > STDAPI_(void) CALLBACK DLLCOMUnregister(HWND, HINSTANCE, LPSTR, int) > { > COMUnregister(); > diff --git a/qga/vss-win32/provider.cpp b/qga/vss-win32/provider.cpp > index cc72e5ef1b9..a102a23fbf1 100644 > --- a/qga/vss-win32/provider.cpp > +++ b/qga/vss-win32/provider.cpp > @@ -45,7 +45,7 @@ const IID IID_IVssEnumObject = { 0xAE1C7110, 0x2F60, > 0x11d3, > {0x8A, 0x39, 0x00, 0xC0, 0x4F, 0x72, 0xD8, 0xE3} }; > > > -void LockModule(BOOL lock) > +static void LockModule(BOOL lock) > { > if (lock) { > InterlockedIncrement(&g_nComObjsInUse); > @@ -527,6 +527,9 @@ STDAPI DllCanUnloadNow() > return g_nComObjsInUse == 0 ? S_OK : S_FALSE; > } > > +EXTERN_C > +BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID > lpReserved); > + > EXTERN_C > BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID lpReserved) > { > diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp > index 9884c65e707..4401d55e3a4 100644 > --- a/qga/vss-win32/requester.cpp > +++ b/qga/vss-win32/requester.cpp > @@ -254,8 +254,8 @@ out: > qga_debug_end; > } > > -DWORD get_reg_dword_value(HKEY baseKey, LPCSTR subKey, LPCSTR valueName, > - DWORD defaultData) > +static DWORD get_reg_dword_value(HKEY baseKey, LPCSTR subKey, LPCSTR > valueName, > + DWORD defaultData) > { > qga_debug_begin; > > @@ -272,12 +272,12 @@ DWORD get_reg_dword_value(HKEY baseKey, LPCSTR > subKey, LPCSTR valueName, > return dwordData; > } > > -bool is_valid_vss_backup_type(VSS_BACKUP_TYPE vssBT) > +static bool is_valid_vss_backup_type(VSS_BACKUP_TYPE vssBT) > { > return (vssBT > VSS_BT_UNDEFINED && vssBT < VSS_BT_OTHER); > } > > -VSS_BACKUP_TYPE get_vss_backup_type( > +static VSS_BACKUP_TYPE get_vss_backup_type( > VSS_BACKUP_TYPE defaultVssBT = DEFAULT_VSS_BACKUP_TYPE) > { > qga_debug_begin; > -- > 2.39.5 > >
Hi Pierrick, I got this patch in my PULL with QGA patches. Best Regards, Konstantin Kostiuk. On Thu, Oct 31, 2024 at 3:32 PM Konstantin Kostiuk <kkostiuk@redhat.com> wrote: > Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com> > > On Thu, Oct 31, 2024 at 6:05 AM Pierrick Bouvier < > pierrick.bouvier@linaro.org> wrote: > >> Reported by clang++, but not by g++. >> >> ../qga/vss-win32/provider.cpp:48:6: error: no previous prototype for >> function 'LockModule' [-Werror,-Wmissing-prototypes] >> 48 | void LockModule(BOOL lock) >> | ^ >> ../qga/vss-win32/provider.cpp:48:1: note: declare 'static' if the >> function is not intended to be used outside of this translation unit >> 48 | void LockModule(BOOL lock) >> | ^ >> | static >> ../qga/vss-win32/provider.cpp:531:13: error: no previous prototype for >> function 'DllMain' [-Werror,-Wmissing-prototypes] >> 531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID >> lpReserved) >> | ^ >> ../qga/vss-win32/provider.cpp:531:1: note: declare 'static' if the >> function is not intended to be used outside of this translation unit >> 531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID >> lpReserved) >> | ^ >> | static >> >> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> >> --- >> qga/vss-win32/install.cpp | 6 +++++- >> qga/vss-win32/provider.cpp | 5 ++++- >> qga/vss-win32/requester.cpp | 8 ++++---- >> 3 files changed, 13 insertions(+), 6 deletions(-) >> >> diff --git a/qga/vss-win32/install.cpp b/qga/vss-win32/install.cpp >> index 84944133f79..5cea5bcf747 100644 >> --- a/qga/vss-win32/install.cpp >> +++ b/qga/vss-win32/install.cpp >> @@ -39,7 +39,7 @@ const GUID CLSID_WbemLocator = { 0x4590f811, 0x1d3a, >> 0x11d0, >> const GUID IID_IWbemLocator = { 0xdc12a687, 0x737f, 0x11cf, >> {0x88, 0x4d, 0x00, 0xaa, 0x00, 0x4b, 0x2e, 0x24} }; >> >> -void errmsg(DWORD err, const char *text) >> +static void errmsg(DWORD err, const char *text) >> { >> /* >> * `text' contains function call statement when errmsg is called via >> chk(). >> @@ -242,6 +242,7 @@ out: >> } >> >> /* Unregister this module from COM+ Applications Catalog */ >> +STDAPI COMUnregister(void); >> STDAPI COMUnregister(void) >> { >> qga_debug_begin; >> @@ -256,6 +257,7 @@ out: >> } >> >> /* Register this module to COM+ Applications Catalog */ >> +STDAPI COMRegister(void); >> STDAPI COMRegister(void) >> { >> qga_debug_begin; >> @@ -380,11 +382,13 @@ out: >> return hr; >> } >> >> +STDAPI_(void) CALLBACK DLLCOMRegister(HWND, HINSTANCE, LPSTR, int); >> STDAPI_(void) CALLBACK DLLCOMRegister(HWND, HINSTANCE, LPSTR, int) >> { >> COMRegister(); >> } >> >> +STDAPI_(void) CALLBACK DLLCOMUnregister(HWND, HINSTANCE, LPSTR, int); >> STDAPI_(void) CALLBACK DLLCOMUnregister(HWND, HINSTANCE, LPSTR, int) >> { >> COMUnregister(); >> diff --git a/qga/vss-win32/provider.cpp b/qga/vss-win32/provider.cpp >> index cc72e5ef1b9..a102a23fbf1 100644 >> --- a/qga/vss-win32/provider.cpp >> +++ b/qga/vss-win32/provider.cpp >> @@ -45,7 +45,7 @@ const IID IID_IVssEnumObject = { 0xAE1C7110, 0x2F60, >> 0x11d3, >> {0x8A, 0x39, 0x00, 0xC0, 0x4F, 0x72, 0xD8, 0xE3} }; >> >> >> -void LockModule(BOOL lock) >> +static void LockModule(BOOL lock) >> { >> if (lock) { >> InterlockedIncrement(&g_nComObjsInUse); >> @@ -527,6 +527,9 @@ STDAPI DllCanUnloadNow() >> return g_nComObjsInUse == 0 ? S_OK : S_FALSE; >> } >> >> +EXTERN_C >> +BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID >> lpReserved); >> + >> EXTERN_C >> BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID >> lpReserved) >> { >> diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp >> index 9884c65e707..4401d55e3a4 100644 >> --- a/qga/vss-win32/requester.cpp >> +++ b/qga/vss-win32/requester.cpp >> @@ -254,8 +254,8 @@ out: >> qga_debug_end; >> } >> >> -DWORD get_reg_dword_value(HKEY baseKey, LPCSTR subKey, LPCSTR valueName, >> - DWORD defaultData) >> +static DWORD get_reg_dword_value(HKEY baseKey, LPCSTR subKey, LPCSTR >> valueName, >> + DWORD defaultData) >> { >> qga_debug_begin; >> >> @@ -272,12 +272,12 @@ DWORD get_reg_dword_value(HKEY baseKey, LPCSTR >> subKey, LPCSTR valueName, >> return dwordData; >> } >> >> -bool is_valid_vss_backup_type(VSS_BACKUP_TYPE vssBT) >> +static bool is_valid_vss_backup_type(VSS_BACKUP_TYPE vssBT) >> { >> return (vssBT > VSS_BT_UNDEFINED && vssBT < VSS_BT_OTHER); >> } >> >> -VSS_BACKUP_TYPE get_vss_backup_type( >> +static VSS_BACKUP_TYPE get_vss_backup_type( >> VSS_BACKUP_TYPE defaultVssBT = DEFAULT_VSS_BACKUP_TYPE) >> { >> qga_debug_begin; >> -- >> 2.39.5 >> >>
Hi Konstantin, On 11/4/24 05:43, Konstantin Kostiuk wrote: > Hi Pierrick, > > I got this patch in my PULL with QGA patches. > > Best Regards, > Konstantin Kostiuk. > Thanks for pulling those two patches before the upcoming release. Regards, Pierrick
diff --git a/qga/vss-win32/install.cpp b/qga/vss-win32/install.cpp index 84944133f79..5cea5bcf747 100644 --- a/qga/vss-win32/install.cpp +++ b/qga/vss-win32/install.cpp @@ -39,7 +39,7 @@ const GUID CLSID_WbemLocator = { 0x4590f811, 0x1d3a, 0x11d0, const GUID IID_IWbemLocator = { 0xdc12a687, 0x737f, 0x11cf, {0x88, 0x4d, 0x00, 0xaa, 0x00, 0x4b, 0x2e, 0x24} }; -void errmsg(DWORD err, const char *text) +static void errmsg(DWORD err, const char *text) { /* * `text' contains function call statement when errmsg is called via chk(). @@ -242,6 +242,7 @@ out: } /* Unregister this module from COM+ Applications Catalog */ +STDAPI COMUnregister(void); STDAPI COMUnregister(void) { qga_debug_begin; @@ -256,6 +257,7 @@ out: } /* Register this module to COM+ Applications Catalog */ +STDAPI COMRegister(void); STDAPI COMRegister(void) { qga_debug_begin; @@ -380,11 +382,13 @@ out: return hr; } +STDAPI_(void) CALLBACK DLLCOMRegister(HWND, HINSTANCE, LPSTR, int); STDAPI_(void) CALLBACK DLLCOMRegister(HWND, HINSTANCE, LPSTR, int) { COMRegister(); } +STDAPI_(void) CALLBACK DLLCOMUnregister(HWND, HINSTANCE, LPSTR, int); STDAPI_(void) CALLBACK DLLCOMUnregister(HWND, HINSTANCE, LPSTR, int) { COMUnregister(); diff --git a/qga/vss-win32/provider.cpp b/qga/vss-win32/provider.cpp index cc72e5ef1b9..a102a23fbf1 100644 --- a/qga/vss-win32/provider.cpp +++ b/qga/vss-win32/provider.cpp @@ -45,7 +45,7 @@ const IID IID_IVssEnumObject = { 0xAE1C7110, 0x2F60, 0x11d3, {0x8A, 0x39, 0x00, 0xC0, 0x4F, 0x72, 0xD8, 0xE3} }; -void LockModule(BOOL lock) +static void LockModule(BOOL lock) { if (lock) { InterlockedIncrement(&g_nComObjsInUse); @@ -527,6 +527,9 @@ STDAPI DllCanUnloadNow() return g_nComObjsInUse == 0 ? S_OK : S_FALSE; } +EXTERN_C +BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID lpReserved); + EXTERN_C BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID lpReserved) { diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp index 9884c65e707..4401d55e3a4 100644 --- a/qga/vss-win32/requester.cpp +++ b/qga/vss-win32/requester.cpp @@ -254,8 +254,8 @@ out: qga_debug_end; } -DWORD get_reg_dword_value(HKEY baseKey, LPCSTR subKey, LPCSTR valueName, - DWORD defaultData) +static DWORD get_reg_dword_value(HKEY baseKey, LPCSTR subKey, LPCSTR valueName, + DWORD defaultData) { qga_debug_begin; @@ -272,12 +272,12 @@ DWORD get_reg_dword_value(HKEY baseKey, LPCSTR subKey, LPCSTR valueName, return dwordData; } -bool is_valid_vss_backup_type(VSS_BACKUP_TYPE vssBT) +static bool is_valid_vss_backup_type(VSS_BACKUP_TYPE vssBT) { return (vssBT > VSS_BT_UNDEFINED && vssBT < VSS_BT_OTHER); } -VSS_BACKUP_TYPE get_vss_backup_type( +static VSS_BACKUP_TYPE get_vss_backup_type( VSS_BACKUP_TYPE defaultVssBT = DEFAULT_VSS_BACKUP_TYPE) { qga_debug_begin;
Reported by clang++, but not by g++. ../qga/vss-win32/provider.cpp:48:6: error: no previous prototype for function 'LockModule' [-Werror,-Wmissing-prototypes] 48 | void LockModule(BOOL lock) | ^ ../qga/vss-win32/provider.cpp:48:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 48 | void LockModule(BOOL lock) | ^ | static ../qga/vss-win32/provider.cpp:531:13: error: no previous prototype for function 'DllMain' [-Werror,-Wmissing-prototypes] 531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID lpReserved) | ^ ../qga/vss-win32/provider.cpp:531:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 531 | BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD dwReason, LPVOID lpReserved) | ^ | static Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> --- qga/vss-win32/install.cpp | 6 +++++- qga/vss-win32/provider.cpp | 5 ++++- qga/vss-win32/requester.cpp | 8 ++++---- 3 files changed, 13 insertions(+), 6 deletions(-)