Since the signature of iconv() changes between implementations (the constness of the second parameter, in particular), make use of the iconv module of gnulib to handle these potential differences. (This is a reduced version of 57512e778558c5b93cfa360c83836c2cf8fc5908 in libguestfs.) --- bootstrap | 1 + lib/utf16.c | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bootstrap b/bootstrap index b2960c1..bd82477 100755 --- a/bootstrap +++ b/bootstrap @@ -63,6 +63,7 @@ full-write gitlog-to-changelog gnu-make gnumakefile +iconv ignore-value inttypes maintainer-makefile diff --git a/lib/utf16.c b/lib/utf16.c index 7d275fd..fe2c3bd 100644 --- a/lib/utf16.c +++ b/lib/utf16.c @@ -54,8 +54,7 @@ _hivex_recode (const char *input_encoding, const char *input, size_t input_len, const char *inp = input; char *outp = out; - /* Surely iconv doesn't really modify the input buffer? XXX */ - size_t r = iconv (ic, (char **) &inp, &inlen, &outp, &outlen); + size_t r = iconv (ic, (ICONV_CONST char **) &inp, &inlen, &outp, &outlen); if (r == (size_t) -1) { if (errno == E2BIG) { int err = errno; -- 1.9.3