On Mon, Jan 22, 2018 at 06:19:33PM +0100, Pino Toscano wrote:
> On Monday, 22 January 2018 18:02:08 CET Richard W.M. Jones
wrote:
> ---
> generator/lua.ml | 22 +++++++++++++++-------
> generator/perl.ml | 2 +-
> lua/Makefile.am | 1 +
> 3 files changed, 17 insertions(+), 8 deletions(-)
Ah, you just beat me to it... OTOH you missed the ruby binding, see
ruby/ext/guestfs/handle.c.
This one is too hard for me to fix. I need to include the gnulib
directory (to get the replacement strerror_r) otherwise I see:
handle.c: In function 'guestfs_int_ruby_event_to_string':
handle.c:285:5: error: ignoring return value of 'strerror_r', declared with
attribute warn_unused_result [-Werror=unused-result]
strerror_r (errno, err, sizeof err);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
but I couldn't work out how to add that without breaking Ruby's
conftests.
In any case Ruby is irretrievably broken with pthread, see recent
nbdkit commits ...
> diff --git a/generator/lua.ml b/generator/lua.ml
> index dd6aedbe9..7cfceb152 100644
> --- a/generator/lua.ml
> +++ b/generator/lua.ml
> @@ -63,6 +63,8 @@ let generate_lua_c () =
> #endif
> #endif
>
> +#include \"ignore-value.h\"
In my local version, ignore_value() was not needed in the lua bindings
Did you get a build failure without it?
In fact no I don't need it.
BUT I do need to add the gnulib directory so we get the replacement
strerror_r, because the original strerror_r from glibc is declared
with warn_unused_result:
lua-guestfs.c: In function 'guestfs_int_lua_create':
lua-guestfs.c:178:5: error: ignoring return value of 'strerror_r', declared with
attribute warn_unused_result [-Werror=unused-result]
strerror_r (errno, err, sizeof err);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Anyway, I dropped ignore_value but still added gnulib/lib to the
include path.
> #include <guestfs.h>
> #include \"guestfs-utils.h\"
>
> @@ -142,6 +144,7 @@ guestfs_int_lua_create (lua_State *L)
> guestfs_h *g;
> struct userdata *u;
> unsigned flags = 0;
> + char err[128];
In other places were strerror_r is used, the size of the buffer is 256.
Can you please adapt it? (Mostly so we have the same code everywhere.)
I pushed this with the changes above, plus err[256].
Thanks,
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW