new warnings in hivex-1.3.10
hivex-1.3.10 does not pass the sles11sp3 post-build-checks anymore, 1.3.8 was still ok. The relevant output is: ... [ 57s] Hivex.xs: In function 'XS_Win__Hivex_node_name': [ 57s] Hivex.xs:236: warning: implicit declaration of function 'newSVpvn_utf8' [ 57s] Hivex.xs:236: warning: assignment makes pointer from integer without a cast [ 57s] Hivex.xs: In function 'XS_Win__Hivex_value_key': [ 57s] Hivex.xs:384: warning: assignment makes pointer from integer without a cast [ 57s] Hivex.xs: In function 'XS_Win__Hivex_value_data_cell_offset': [ 57s] Hivex.xs:448: warning: too many arguments for format ... [ 155s] E: hivex 64bit-portability-issue Hivex.xs:236, 384 ... How can this be fixed? I'm not seeing this in openSUSE 12.x. Olaf
On Tue, May 13, 2014 at 04:22:18PM +0200, Olaf Hering wrote:
hivex-1.3.10 does not pass the sles11sp3 post-build-checks anymore, 1.3.8 was still ok. The relevant output is:
... [ 57s] Hivex.xs: In function 'XS_Win__Hivex_node_name': [ 57s] Hivex.xs:236: warning: implicit declaration of function 'newSVpvn_utf8'
This is worrying. Does newSVpvn_utf8 exist in your copy of CORE/sv.h? On Fedora: $ grep -i newSVpvn_utf8 /usr/lib64/perl5/CORE/*.h /usr/lib64/perl5/CORE/sv.h:=for apidoc Am|SV*|newSVpvn_utf8|NULLOK const char* s|STRLEN len|U32 utf8 /usr/lib64/perl5/CORE/sv.h:#define newSVpvn_utf8(s, len, u) newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0) We've not touched the Perl bindings in hivex since Jan 2014 (between 1.3.8 and 1.3.9), when Hilko changed this in the generator: - pr " RETVAL = newSVpvn (r, hivex_%s_len (%s));\n" + pr " RETVAL = newSVpvn_utf8 (r, hivex_%s_len (%s), 1);\n" That could obviously have caused this warning, but only if you're using a version of Perl that doesn't have newSVpvn_utf8. If you don't have that, then we'll need to add an #ifdef. I don't understand the rest of the warnings. Could you attach the 'perl/Hivex.c' file from the build? I'll take a look to see if it's different from the Fedora one. Rich.
[ 57s] Hivex.xs:236: warning: assignment makes pointer from integer without a cast [ 57s] Hivex.xs: In function 'XS_Win__Hivex_value_key': [ 57s] Hivex.xs:384: warning: assignment makes pointer from integer without a cast [ 57s] Hivex.xs: In function 'XS_Win__Hivex_value_data_cell_offset': [ 57s] Hivex.xs:448: warning: too many arguments for format ... [ 155s] E: hivex 64bit-portability-issue Hivex.xs:236, 384 ...
How can this be fixed? I'm not seeing this in openSUSE 12.x.
Olaf
_______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://www.redhat.com/mailman/listinfo/libguestfs
-- 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
On Tue, May 13, Richard W.M. Jones wrote:
That could obviously have caused this warning, but only if you're using a version of Perl that doesn't have newSVpvn_utf8. If you don't have that, then we'll need to add an #ifdef.
perl 5.10.0 as included in sle11 does not have newSVpvn_utf8, 5.12.3 as included in openSUSE 11.4 has it.
I don't understand the rest of the warnings. Could you attach the 'perl/Hivex.c' file from the build? I'll take a look to see if it's different from the Fedora one.
I have it attached. cmdline is cc -c -I../lib -I../lib -D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -DDEBUGGING -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -Wall -pipe -DVERSION=\"1.3.10\" -DXS_VERSION=\"1.3.10\" -fPIC "-I/usr/lib/perl5/5.10.0/x86_64-linux-thread-multi/CORE" Hivex.c Olaf
On Tue, May 13, 2014 at 06:13:54PM +0200, Olaf Hering wrote:
On Tue, May 13, Richard W.M. Jones wrote:
That could obviously have caused this warning, but only if you're using a version of Perl that doesn't have newSVpvn_utf8. If you don't have that, then we'll need to add an #ifdef.
perl 5.10.0 as included in sle11 does not have newSVpvn_utf8, 5.12.3 as included in openSUSE 11.4 has it.
I'm able to reproduce this using an even older version of Perl (5.8.8 from RHEL 5). This patch fixes it for me: https://github.com/libguestfs/hivex/commit/f1cce9ce4d1c3882c639f1dcb218acd81... Rich.
I don't understand the rest of the warnings. Could you attach the 'perl/Hivex.c' file from the build? I'll take a look to see if it's different from the Fedora one.
I have it attached.
cmdline is cc -c -I../lib -I../lib -D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -DDEBUGGING -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -Wall -pipe -DVERSION=\"1.3.10\" -DXS_VERSION=\"1.3.10\" -fPIC "-I/usr/lib/perl5/5.10.0/x86_64-linux-thread-multi/CORE" Hivex.c
Olaf
-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-builder quickly builds VMs from scratch http://libguestfs.org/virt-builder.1.html
participants (2)
-
Olaf Hering -
Richard W.M. Jones