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 |
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~
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
Queued, thanks. Paolo
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
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
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
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
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 --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
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(-)