in reply to How to make Win32::OLE work on Cygwin

cpan Win32::OLE ought to install the module

If that doesn't then skip tests and install it cpan -f -i -T Win32::OLE

If that doesn't then the most drastic option is force install it while skip test cpan --i -T Win32::OLE

  • Comment on Re: How to make Win32::OLE work on Cygwin (cpan -i -T Win32::OLE)

Replies are listed 'Best First'.
Re^2: How to make Win32::OLE work on Cygwin (cpan -i -T Win32::OLE)
by gjoshi (Sexton) on Apr 30, 2015 at 11:05 UTC
    I tried all the options but still I am getting errors:
    /usr/local/bin/perl.exe -I/usr/local/lib/perl5/5.20.2/cygwin-thread-mu +lti-64int -I/usr/local/lib/perl5/5.20.2 /usr/local/lib/perl5/5.20.2/E +xtUtils/xsubpp -typemap /usr/local/lib/perl5/5.20.2/ExtUtils/typemap + OLE.xs >xstmp.c && mv xstmp.c OLE.cpp g++ -c -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -fwrapv -fno-strict- +aliasing -pipe -fstack-protector -DUSEIMPORTLIB -O3 -DVERSION=\"0.1 +712\" -DXS_VERSION=\"0.1712\" "-I/usr/local/lib/perl5/5.20.2/cygwin- +thread-multi-64int/CORE" OLE.cpp In file included from /usr/local/lib/perl5/5.20.2/cygwin-thread-multi- +64int/CORE/perl.h:2368:0, from OLE.xs:94: OLE.xs: In function ‘BOOL StartsWithAlpha(PerlInterpreter*, SV*)’: /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/embed.h:695 +:28: warning: ‘UV Perl_utf8_to_uvuni(PerlInterpreter*, const U8*, STR +LEN*)’ is deprecated (declared at /usr/local/lib/perl5/5.20.2/cygwin- +thread-multi-64int/CORE/proto.h:4826) [-Wdeprecated-declarations] #define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:142 +9:43: note: in definition of macro ‘_generic_swash_uni’ #define _generic_swash_uni(classnum, c) ((c) < 256 + \ ^ OLE.xs:449:16: note: in expansion of macro ‘isALPHA_uni’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ OLE.xs:114:29: note: in expansion of macro ‘utf8_to_uvuni’ # define my_utf8_to_uv(s) utf8_to_uvuni(s, NULL) ^ OLE.xs:449:28: note: in expansion of macro ‘my_utf8_to_uv’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/embed.h:695 +:56: warning: ‘UV Perl_utf8_to_uvuni(PerlInterpreter*, const U8*, STR +LEN*)’ is deprecated (declared at /usr/local/lib/perl5/5.20.2/cygwin- +thread-multi-64int/CORE/proto.h:4826) [-Wdeprecated-declarations] #define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:142 +9:43: note: in definition of macro ‘_generic_swash_uni’ #define _generic_swash_uni(classnum, c) ((c) < 256 + \ ^ OLE.xs:449:16: note: in expansion of macro ‘isALPHA_uni’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ OLE.xs:114:29: note: in expansion of macro ‘utf8_to_uvuni’ # define my_utf8_to_uv(s) utf8_to_uvuni(s, NULL) ^ OLE.xs:449:28: note: in expansion of macro ‘my_utf8_to_uv’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ In file included from /usr/local/lib/perl5/5.20.2/cygwin-thread-multi- +64int/CORE/perl.h:2368:0, from OLE.xs:94: /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/embed.h:695 +:28: warning: ‘UV Perl_utf8_to_uvuni(PerlInterpreter*, const U8*, STR +LEN*)’ is deprecated (declared at /usr/local/lib/perl5/5.20.2/cygwin- +thread-multi-64int/CORE/proto.h:4826) [-Wdeprecated-declarations] #define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:124 +:24: note: in definition of macro ‘cBOOL’ #define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:102 +4:45: note: in expansion of macro ‘FITS_IN_8_BITS’ # define _generic_isCC(c, classnum) cBOOL(FITS_IN_8_BITS(c) \ ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:143 +0:48: note: in expansion of macro ‘_generic_isCC’ ? _generic_isCC(c, class +num) \ ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:143 +2:29: note: in expansion of macro ‘_generic_swash_uni’ #define isALPHA_uni(c) _generic_swash_uni(_CC_ALPHA, c) ^ OLE.xs:449:16: note: in expansion of macro ‘isALPHA_uni’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ OLE.xs:114:29: note: in expansion of macro ‘utf8_to_uvuni’ # define my_utf8_to_uv(s) utf8_to_uvuni(s, NULL) ^ OLE.xs:449:28: note: in expansion of macro ‘my_utf8_to_uv’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/embed.h:695 +:56: warning: ‘UV Perl_utf8_to_uvuni(PerlInterpreter*, const U8*, STR +LEN*)’ is deprecated (declared at /usr/local/lib/perl5/5.20.2/cygwin- +thread-multi-64int/CORE/proto.h:4826) [-Wdeprecated-declarations] #define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:124 +:24: note: in definition of macro ‘cBOOL’ #define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:102 +4:45: note: in expansion of macro ‘FITS_IN_8_BITS’ # define _generic_isCC(c, classnum) cBOOL(FITS_IN_8_BITS(c) \ ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:143 +0:48: note: in expansion of macro ‘_generic_isCC’ ? _generic_isCC(c, class +num) \ ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:143 +2:29: note: in expansion of macro ‘_generic_swash_uni’ #define isALPHA_uni(c) _generic_swash_uni(_CC_ALPHA, c) ^ OLE.xs:449:16: note: in expansion of macro ‘isALPHA_uni’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ OLE.xs:114:29: note: in expansion of macro ‘utf8_to_uvuni’ # define my_utf8_to_uv(s) utf8_to_uvuni(s, NULL) ^ OLE.xs:449:28: note: in expansion of macro ‘my_utf8_to_uv’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/embed.h:695 +:28: warning: ‘UV Perl_utf8_to_uvuni(PerlInterpreter*, const U8*, STR +LEN*)’ is deprecated (declared at /usr/local/lib/perl5/5.20.2/cygwin- +thread-multi-64int/CORE/proto.h:4826) [-Wdeprecated-declarations] #define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:124 +:24: note: in definition of macro ‘cBOOL’ #define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:102 +4:45: note: in expansion of macro ‘FITS_IN_8_BITS’ # define _generic_isCC(c, classnum) cBOOL(FITS_IN_8_BITS(c) \ ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:143 +0:48: note: in expansion of macro ‘_generic_isCC’ ? _generic_isCC(c, class +num) \ ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:143 +2:29: note: in expansion of macro ‘_generic_swash_uni’ #define isALPHA_uni(c) _generic_swash_uni(_CC_ALPHA, c) ^ OLE.xs:449:16: note: in expansion of macro ‘isALPHA_uni’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ OLE.xs:114:29: note: in expansion of macro ‘utf8_to_uvuni’ # define my_utf8_to_uv(s) utf8_to_uvuni(s, NULL) ^ OLE.xs:449:28: note: in expansion of macro ‘my_utf8_to_uv’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/embed.h:695 +:56: warning: ‘UV Perl_utf8_to_uvuni(PerlInterpreter*, const U8*, STR +LEN*)’ is deprecated (declared at /usr/local/lib/perl5/5.20.2/cygwin- +thread-multi-64int/CORE/proto.h:4826) [-Wdeprecated-declarations] #define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:124 +:24: note: in definition of macro ‘cBOOL’ #define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:102 +4:45: note: in expansion of macro ‘FITS_IN_8_BITS’ # define _generic_isCC(c, classnum) cBOOL(FITS_IN_8_BITS(c) \ ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:143 +0:48: note: in expansion of macro ‘_generic_isCC’ ? _generic_isCC(c, class +num) \ ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:143 +2:29: note: in expansion of macro ‘_generic_swash_uni’ #define isALPHA_uni(c) _generic_swash_uni(_CC_ALPHA, c) ^ OLE.xs:449:16: note: in expansion of macro ‘isALPHA_uni’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ OLE.xs:114:29: note: in expansion of macro ‘utf8_to_uvuni’ # define my_utf8_to_uv(s) utf8_to_uvuni(s, NULL) ^ OLE.xs:449:28: note: in expansion of macro ‘my_utf8_to_uv’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/embed.h:695 +:28: warning: ‘UV Perl_utf8_to_uvuni(PerlInterpreter*, const U8*, STR +LEN*)’ is deprecated (declared at /usr/local/lib/perl5/5.20.2/cygwin- +thread-multi-64int/CORE/proto.h:4826) [-Wdeprecated-declarations] #define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:124 +:24: note: in definition of macro ‘cBOOL’ #define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:143 +0:48: note: in expansion of macro ‘_generic_isCC’ ? _generic_isCC(c, class +num) \ ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:143 +2:29: note: in expansion of macro ‘_generic_swash_uni’ #define isALPHA_uni(c) _generic_swash_uni(_CC_ALPHA, c) ^ OLE.xs:449:16: note: in expansion of macro ‘isALPHA_uni’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ OLE.xs:114:29: note: in expansion of macro ‘utf8_to_uvuni’ # define my_utf8_to_uv(s) utf8_to_uvuni(s, NULL) ^ OLE.xs:449:28: note: in expansion of macro ‘my_utf8_to_uv’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/embed.h:695 +:56: warning: ‘UV Perl_utf8_to_uvuni(PerlInterpreter*, const U8*, STR +LEN*)’ is deprecated (declared at /usr/local/lib/perl5/5.20.2/cygwin- +thread-multi-64int/CORE/proto.h:4826) [-Wdeprecated-declarations] #define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:124 +:24: note: in definition of macro ‘cBOOL’ #define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:143 +0:48: note: in expansion of macro ‘_generic_isCC’ ? _generic_isCC(c, class +num) \ ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:143 +2:29: note: in expansion of macro ‘_generic_swash_uni’ #define isALPHA_uni(c) _generic_swash_uni(_CC_ALPHA, c) ^ OLE.xs:449:16: note: in expansion of macro ‘isALPHA_uni’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ OLE.xs:114:29: note: in expansion of macro ‘utf8_to_uvuni’ # define my_utf8_to_uv(s) utf8_to_uvuni(s, NULL) ^ OLE.xs:449:28: note: in expansion of macro ‘my_utf8_to_uv’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ In file included from /usr/local/lib/perl5/5.20.2/cygwin-thread-multi- +64int/CORE/perl.h:5100:0, from OLE.xs:94: /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/embed.h:695 +:28: warning: ‘UV Perl_utf8_to_uvuni(PerlInterpreter*, const U8*, STR +LEN*)’ is deprecated (declared at /usr/local/lib/perl5/5.20.2/cygwin- +thread-multi-64int/CORE/proto.h:4826) [-Wdeprecated-declarations] #define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/embed.h:30: +51: note: in definition of macro ‘_is_uni_FOO’ #define _is_uni_FOO(a,b) Perl__is_uni_FOO(aTHX_ a,b) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:143 +2:29: note: in expansion of macro ‘_generic_swash_uni’ #define isALPHA_uni(c) _generic_swash_uni(_CC_ALPHA, c) ^ OLE.xs:449:16: note: in expansion of macro ‘isALPHA_uni’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ OLE.xs:114:29: note: in expansion of macro ‘utf8_to_uvuni’ # define my_utf8_to_uv(s) utf8_to_uvuni(s, NULL) ^ OLE.xs:449:28: note: in expansion of macro ‘my_utf8_to_uv’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/embed.h:695 +:56: warning: ‘UV Perl_utf8_to_uvuni(PerlInterpreter*, const U8*, STR +LEN*)’ is deprecated (declared at /usr/local/lib/perl5/5.20.2/cygwin- +thread-multi-64int/CORE/proto.h:4826) [-Wdeprecated-declarations] #define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/embed.h:30: +51: note: in definition of macro ‘_is_uni_FOO’ #define _is_uni_FOO(a,b) Perl__is_uni_FOO(aTHX_ a,b) ^ /usr/local/lib/perl5/5.20.2/cygwin-thread-multi-64int/CORE/handy.h:143 +2:29: note: in expansion of macro ‘_generic_swash_uni’ #define isALPHA_uni(c) _generic_swash_uni(_CC_ALPHA, c) ^ OLE.xs:449:16: note: in expansion of macro ‘isALPHA_uni’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ OLE.xs:114:29: note: in expansion of macro ‘utf8_to_uvuni’ # define my_utf8_to_uv(s) utf8_to_uvuni(s, NULL) ^ OLE.xs:449:28: note: in expansion of macro ‘my_utf8_to_uv’ return isALPHA_uni(my_utf8_to_uv((U8*)str)); ^ OLE.xs: In function ‘BOOL IsLocalMachine(PerlInterpreter*, SV*)’: OLE.xs:483:43: error: ‘stricmp’ was not declared in this scope && stricmp(pszName, szComputerName) == 0) ^ Makefile:373: recipe for target 'OLE.o' failed make: *** [OLE.o] Error 1 JDB/Win32-OLE-0.1712.tar.gz /usr/bin/make -- NOT OK
      Please, wrap the log in <code>...</code> tags to make it readable.

      Running

      look Win32::OLE

      in the CPAN shell and replacing stricmp with strcasecmp in OLE.xs, then running

      make Win32::OLE test Win32::OLE install Win32::OLE

      back in the CPAN shell solved the problem for me.

      لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
        I tried to change OLE.XS file but I am getting following error while test. make goes fine.
        nolock_cpan> test Win32::OLE Running test for module 'Win32::OLE' Running make for J/JD/JDB/Win32-OLE-0.1712.tar.gz Has already been unwrapped into directory /home/c_gjoshi/.cpan/build +/Win32-OLE -0.1712-8xVrFX Has already been made Running make test PERL_DL_NONLAZY=1 /cygdrive/c/Utils/cygwin/bin/perl.exe "-MExtUtils::C +ommand::MM " "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/1_nls.t ....... ok t/2_variant.t ... ok t/3_ole.t ....... 2/58 OLE exception from "Microsoft Excel": Microsoft Excel cannot open or save any more documents because there i +s not enough available memory or disk space. To make more memory available, close workbooks or programs you no lon +ger need. To free disk space, delete files you no longer need from the disk you are saving to. Win32::OLE(0.1712) error 0x800a03ec in METHOD/PROPERTYGET "Add" at t/3_ole.t line 130 Win32::OLE->QueryObjectType: object is not a Win32::OLE object at t/3_ +ole.t line 131. Use of uninitialized value $Type in concatenation (.) or string at t/3 +_ole.t lin e 132. Can't call method "Xyzzy" on an undefined value at t/3_ole.t line 151. t/3_ole.t ....... Dubious, test returned 2 (wstat 512, 0x200) Failed 55/58 subtests t/4_compat.t .... 1/5 Use of uninitialized value $bk in concatenation +(.) or str ing at t/4_compat.t line 36. Can't use an undefined value as a HASH reference at t/4_compat.t line +41. t/4_compat.t .... Dubious, test returned 255 (wstat 65280, 0xff00) Failed 5/5 subtests t/5_unicode.t ... skipped: Unicode::String module not installed t/6_event.t ..... skipped: C:\Utils\Cygwin\home\c_gjoshi\.cpan\build\W +in32-OLE-0 .1712-8xVrFX\test.xls doesn't exist! Please run test 3_ole.t first t/7_overload.t .. skipped: C:\Utils\Cygwin\home\c_gjoshi\.cpan\build\W +in32-OLE-0 .1712-8xVrFX\test.xls doesn't exist! Please run test 3_ole.t first Test Summary Report ------------------- t/3_ole.t (Wstat: 512 Tests: 6 Failed: 3) Failed tests: 3-4, 58 Non-zero exit status: 2 Parse errors: Tests out of sequence. Found (58) but expected (6) Bad plan. You planned 58 tests but ran 6. t/4_compat.t (Wstat: 65280 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 255 Parse errors: Bad plan. You planned 5 tests but ran 1. Files=7, Tests=47, 3 wallclock secs ( 0.03 usr 0.06 sys + 0.48 cusr + 1.27 csy s = 1.84 CPU) Result: FAIL Failed 2/7 test programs. 4/47 subtests failed. make: *** [test_dynamic] Error 255 JDB/Win32-OLE-0.1712.tar.gz /usr/bin/make test -- NOT OK //hint// to see the cpan-testers results for installing this module, t +ry: reports JDB/Win32-OLE-0.1712.tar.gz Failed during this command: JDB/Win32-OLE-0.1712.tar.gz : make_test NO

        Hello,

        I am running perl 5.14 and I am also having the same issue during Win32-OLE-0.1712 installation.

        I am unable to understand the solution. Could you please explain how to resolve this problem? Thank you.

        Issue:

        Running Mkbootstrap for Win32::OLE () chmod 644 "OLE.bs" g++ -c -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -ggdb -O2 -pipe -Wim +plicit-function-declaration -fdebug-prefix-map=/mnt/share/maint/perl. +x86/build=/usr/src/debug/perl-5.14.4-3 -fdebug-prefix-map=/mnt/share/ +maint/perl.x86/src/perl-5.14.4=/usr/src/debug/perl-5.14.4-3 -fwrapv - +fno-strict-aliasing -fstack-protector -DUSEIMPORTLIB -O3 -DVERSION= +\"0.1712\" -DXS_VERSION=\"0.1712\" "-I/usr/lib/perl5/5.14/i686-cygwi +n-threads-64int/CORE" OLE.cpp cc1plus: warning: command line option ‘-Wimplicit-function-declaration +’ is valid for C/ObjC but not for C++ OLE.xs: In function ‘BOOL IsLocalMachine(PerlInterpreter*, SV*)’: OLE.xs:482:85: error: ‘stricmp’ was not declared in this scope if (GetComputerNameA(szComputerName, &dwSize) && stricmp(pszName, + szComputerName) == 0) + ^ Makefile:376: recipe for target 'OLE.o' failed make: *** [OLE.o] Error 1
      May be Win32::OLE is not allowed on Cygwin. I have to try to use diff thing?

        It seems your happy to tell someone else what went wrong. If you choose to use a tool ensure you read the associated documentation, including associated bugs and any associated patches. So as not to waste bandwidth I'll let you figure it out from there.