diff mbox series

[v2] meson.build: Use -Wno-undef only for SDL2 versions that need it

Message ID 20230602163452.521305-1-thuth@redhat.com (mailing list archive)
State New, archived
Headers show
Series [v2] meson.build: Use -Wno-undef only for SDL2 versions that need it | expand

Commit Message

Thomas Huth June 2, 2023, 4:34 p.m. UTC
There is no need to disable this useful compiler warning for
all versions of the SDL. Unfortunately, various versions are
buggy (beside SDL 2.0.8, the version 2.26.0 and 2.26.1 are
broken, too, see https://github.com/libsdl-org/SDL/issues/6619 ),
but we can use a simple compiler check to see whether we need
the -Wno-undef or not.

This also enables the printing of the version number with
good versions of the SDL in the summary of the meson output
again.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 v2: Compile test code instead of hard-coding the version number

 meson.build | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

Comments

Richard Henderson June 3, 2023, 3:30 a.m. UTC | #1
On 6/2/23 09:34, Thomas Huth wrote:
> There is no need to disable this useful compiler warning for
> all versions of the SDL. Unfortunately, various versions are
> buggy (beside SDL 2.0.8, the version 2.26.0 and 2.26.1 are
> broken, too, seehttps://github.com/libsdl-org/SDL/issues/6619  ),
> but we can use a simple compiler check to see whether we need
> the -Wno-undef or not.
> 
> This also enables the printing of the version number with
> good versions of the SDL in the summary of the meson output
> again.
> 
> Signed-off-by: Thomas Huth<thuth@redhat.com>
> ---
>   v2: Compile test code instead of hard-coding the version number

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~
Thomas Huth June 5, 2023, 7:46 a.m. UTC | #2
On 02/06/2023 18.34, Thomas Huth wrote:
> There is no need to disable this useful compiler warning for
> all versions of the SDL. Unfortunately, various versions are
> buggy (beside SDL 2.0.8, the version 2.26.0 and 2.26.1 are
> broken, too, see https://github.com/libsdl-org/SDL/issues/6619 ),
> but we can use a simple compiler check to see whether we need
> the -Wno-undef or not.
> 
> This also enables the printing of the version number with
> good versions of the SDL in the summary of the meson output
> again.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>   v2: Compile test code instead of hard-coding the version number
> 
>   meson.build | 14 ++++++++++----
>   1 file changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/meson.build b/meson.build
> index a61d3e9b06..a4c69616c3 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1273,10 +1273,16 @@ if not get_option('sdl').auto() or have_system
>     sdl_image = not_found
>   endif
>   if sdl.found()
> -  # work around 2.0.8 bug
> -  sdl = declare_dependency(compile_args: '-Wno-undef',
> -                           dependencies: sdl,
> -                           version: sdl.version())
> +  # Some versions of SDL have problems with -Wundef
> +  if not cc.compiles('''
> +                     #include <SDL.h>
> +                     #include <SDL_syswm.h>
> +                     int main(int argc, char *argv[]) { return 0; }
> +                     ''', dependencies: sdl, args: '-Wundef')
> +    sdl = declare_dependency(compile_args: '-Wno-undef',
> +                             dependencies: sdl,
> +                             version: sdl.version())
> +  endif
>     sdl_image = dependency('SDL2_image', required: get_option('sdl_image'),
>                            method: 'pkg-config')
>   else

Hmm, there must still be something wrong with this patch, I'm still getting 
build failures with this in the CI ... no clue why yet, but please disregard 
this patch.

  Thomas
Paolo Bonzini June 5, 2023, 8:27 a.m. UTC | #3
Queued, thanks.

Paolo
Thomas Huth June 5, 2023, 8:47 a.m. UTC | #4
On 05/06/2023 10.27, Paolo Bonzini wrote:
> Queued, thanks.

Please unqueue it again, I'm still seeing some issues with the patch (not 
sure why yet):

  https://gitlab.com/thuth/qemu/-/jobs/4411089009

  Thomas
Daniel P. Berrangé June 5, 2023, 8:53 a.m. UTC | #5
On Fri, Jun 02, 2023 at 06:34:52PM +0200, Thomas Huth wrote:
> There is no need to disable this useful compiler warning for
> all versions of the SDL. Unfortunately, various versions are
> buggy (beside SDL 2.0.8, the version 2.26.0 and 2.26.1 are
> broken, too, see https://github.com/libsdl-org/SDL/issues/6619 ),
> but we can use a simple compiler check to see whether we need
> the -Wno-undef or not.
> 
> This also enables the printing of the version number with
> good versions of the SDL in the summary of the meson output
> again.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  v2: Compile test code instead of hard-coding the version number
> 
>  meson.build | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/meson.build b/meson.build
> index a61d3e9b06..a4c69616c3 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1273,10 +1273,16 @@ if not get_option('sdl').auto() or have_system
>    sdl_image = not_found
>  endif
>  if sdl.found()
> -  # work around 2.0.8 bug
> -  sdl = declare_dependency(compile_args: '-Wno-undef',
> -                           dependencies: sdl,
> -                           version: sdl.version())
> +  # Some versions of SDL have problems with -Wundef
> +  if not cc.compiles('''
> +                     #include <SDL.h>
> +                     #include <SDL_syswm.h>
> +                     int main(int argc, char *argv[]) { return 0; }
> +                     ''', dependencies: sdl, args: '-Wundef')

Don't you need to pass '-Werror' there too, otherwise -Wundef will
merely generate an warning and still succeed.

> +    sdl = declare_dependency(compile_args: '-Wno-undef',
> +                             dependencies: sdl,
> +                             version: sdl.version())
> +  endif
>    sdl_image = dependency('SDL2_image', required: get_option('sdl_image'),
>                           method: 'pkg-config')
>  else
> -- 
> 2.31.1
> 

With regards,
Daniel
Thomas Huth June 5, 2023, 8:58 a.m. UTC | #6
On 05/06/2023 10.53, Daniel P. Berrangé wrote:
> On Fri, Jun 02, 2023 at 06:34:52PM +0200, Thomas Huth wrote:
>> There is no need to disable this useful compiler warning for
>> all versions of the SDL. Unfortunately, various versions are
>> buggy (beside SDL 2.0.8, the version 2.26.0 and 2.26.1 are
>> broken, too, see https://github.com/libsdl-org/SDL/issues/6619 ),
>> but we can use a simple compiler check to see whether we need
>> the -Wno-undef or not.
>>
>> This also enables the printing of the version number with
>> good versions of the SDL in the summary of the meson output
>> again.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>   v2: Compile test code instead of hard-coding the version number
>>
>>   meson.build | 14 ++++++++++----
>>   1 file changed, 10 insertions(+), 4 deletions(-)
>>
>> diff --git a/meson.build b/meson.build
>> index a61d3e9b06..a4c69616c3 100644
>> --- a/meson.build
>> +++ b/meson.build
>> @@ -1273,10 +1273,16 @@ if not get_option('sdl').auto() or have_system
>>     sdl_image = not_found
>>   endif
>>   if sdl.found()
>> -  # work around 2.0.8 bug
>> -  sdl = declare_dependency(compile_args: '-Wno-undef',
>> -                           dependencies: sdl,
>> -                           version: sdl.version())
>> +  # Some versions of SDL have problems with -Wundef
>> +  if not cc.compiles('''
>> +                     #include <SDL.h>
>> +                     #include <SDL_syswm.h>
>> +                     int main(int argc, char *argv[]) { return 0; }
>> +                     ''', dependencies: sdl, args: '-Wundef')
> 
> Don't you need to pass '-Werror' there too, otherwise -Wundef will
> merely generate an warning and still succeed.

Of course! Thank you very much ... not sure how I could have missed that 
detail :-/

  Thomas
Paolo Bonzini June 5, 2023, 9:05 a.m. UTC | #7
On 6/5/23 10:47, Thomas Huth wrote:
> On 05/06/2023 10.27, Paolo Bonzini wrote:
>> Queued, thanks.
> 
> Please unqueue it again, I'm still seeing some issues with the patch 
> (not sure why yet):
> 
> https://gitlab.com/thuth/qemu/-/jobs/4411089009

Yeah, noticed that myself now. :)

Paolo
Paolo Bonzini June 5, 2023, 9:48 a.m. UTC | #8
On 6/5/23 11:05, Paolo Bonzini wrote:
> 
>> On 05/06/2023 10.27, Paolo Bonzini wrote:
>>> Queued, thanks.
>>
>> Please unqueue it again, I'm still seeing some issues with the patch 
>> (not sure why yet):
>>
>> https://gitlab.com/thuth/qemu/-/jobs/4411089009
> 
> Yeah, noticed that myself now. 
diff mbox series

Patch

diff --git a/meson.build b/meson.build
index a61d3e9b06..a4c69616c3 100644
--- a/meson.build
+++ b/meson.build
@@ -1273,10 +1273,16 @@  if not get_option('sdl').auto() or have_system
   sdl_image = not_found
 endif
 if sdl.found()
-  # work around 2.0.8 bug
-  sdl = declare_dependency(compile_args: '-Wno-undef',
-                           dependencies: sdl,
-                           version: sdl.version())
+  # Some versions of SDL have problems with -Wundef
+  if not cc.compiles('''
+                     #include <SDL.h>
+                     #include <SDL_syswm.h>
+                     int main(int argc, char *argv[]) { return 0; }
+                     ''', dependencies: sdl, args: '-Wundef')
+    sdl = declare_dependency(compile_args: '-Wno-undef',
+                             dependencies: sdl,
+                             version: sdl.version())
+  endif
   sdl_image = dependency('SDL2_image', required: get_option('sdl_image'),
                          method: 'pkg-config')
 else