[PATCH] meson: Check for stdarg.h

Daniel P. Berrangé berrange at redhat.com
Wed Sep 2 12:20:23 UTC 2020


On Wed, Sep 02, 2020 at 02:07:54PM +0200, Michal Privoznik wrote:
> As it turns out, one of my previous commits in which I removed
> checking for stdarg.h was too aggressive. Long story short, the
> readline public headers rely on stdarg.h and what is worse, they
> expect us to declare the autotools style of macro (HAVE_STDARG_H)
> if the header file exists. If we don't do it then compiling virsh
> on macos fails.
> 
> See 9ea3424a178 for more info.

Ewww....

Deprecated in 2000,  removed in 2013, then immediately readded to
"fix" apps which still relied on K&R C with no function prototypes.

The readline maintainer is more forgiving of ancient application code
than I would be :-) 30 years since arrival of ANSI C is enough time
to update code to use function prototypes, especially if you want to
build against a readline library released in 2020, as opposed to the
old version released years ago.

> 
> Fixes: 85808b73846f93d656b4c81b6ebddd2dc3881bf6
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  meson.build | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/meson.build b/meson.build
> index 1aad385ad1..98f7545495 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1333,8 +1333,12 @@ if readline_dep.found()
>      endif
>    endif
>  
> -  # We need this to avoid compilation issues with modern compilers.
> -  # See 9ea3424a178 for a more detailed explanation
> +  # We need both of these hacks to avoid compilation issues with modern
> +  # compilers. See 9ea3424a178 for a more detailed explanation.
> +  if cc.has_header('stdarg.h')
> +    conf.set('HAVE_STDARG_H', 1)
> +  endif

Do we have any platforms which lack stdarg.h ? eg can be just add
"#define HAVE_STDARG_H 1" unconditionally in the virsh code before
it includes the readline headers ?

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list