Skip Menu |

This queue is for tickets about the Text-KnuthPlass CPAN distribution.

Report information
The Basics
Id: 133828
Status: resolved
Priority: 0/
Queue: Text-KnuthPlass

People
Owner: Nobody in particular
Requestors: PMPERRY [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 1.02
Fixed in: 1.04



Text::KnuthPlass fails to build for me (Windows 10, Strawberry Perl 5.26.1). It's failing (several type mismatches?) in the XS compile stage: Configuring S/SI/SIMON/Text-KnuthPlass-1.02.tar.gz with Build.PL Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'Text-KnuthPlass' version '1.02' SIMON/Text-KnuthPlass-1.02.tar.gz C:\Strawberry\perl\bin\perl.exe Build.PL -- OK Running Build for S/SI/SIMON/Text-KnuthPlass-1.02.tar.gz Building Text-KnuthPlass gcc -c -I"." -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2 "-DVERSION=\"1.02\"" "-DXS_VERSION=\"1.02\"" -I"C:\STRAWB~1\perl\lib\CORE" -I"C:\STRAWB~1\c\include" -o "lib\Text\KnuthPlass.o" "lib\Text\KnuthPlass.c" lib\\Text\\KnuthPlass.xs:132:6: error: conflicting types for '_unlink' void _unlink(LinkedList* list, Breakpoint* a) { ^~~~~~~ In file included from C:/Strawberry/c/x86_64-w64-mingw32/include/sys/stat.h:14:0, from C:\STRAWB~1\perl\lib\CORE/perl.h:1088, from lib\\Text\\KnuthPlass.xs:2: C:/Strawberry/c/x86_64-w64-mingw32/include/io.h:215:23: note: previous declaration of '_unlink' was here _CRTIMP int __cdecl _unlink(const char *_Filename); ^~~~~~~ In file included from C:\STRAWB~1\perl\lib\CORE/perl.h:5644:0, from lib\\Text\\KnuthPlass.xs:2: lib\\Text\\KnuthPlass.xs: In function 'XS_Text__KnuthPlass__init_nodelist': C:\STRAWB~1\perl\lib\CORE/hv.h:480:10: warning: passing argument 6 of 'Perl_hv_common_key_len' makes pointer from integer without a cast [-Wint-conversion] (val), (hash))) ^ C:\STRAWB~1\perl\lib\CORE/embed.h:228:77: note: in definition of macro 'hv_common_key_len' #define hv_common_key_len(a,b,c,d,e,f) Perl_hv_common_key_len(aTHX_ a,b,c,d,e,f) ^ C:\STRAWB~1\perl\lib\CORE/hv.h:512:5: note: in expansion of macro 'hv_store' hv_store((hv), ("" key ""), (sizeof(key)-1), (val), 0) ^~~~~~~~ lib\\Text\\KnuthPlass.xs:151:5: note: in expansion of macro 'hv_stores' hv_stores((HV*)self, "activeNodes", ((IV)activelist)); ^ In file included from C:\STRAWB~1\perl\lib\CORE/perl.h:5609:0, from lib\\Text\\KnuthPlass.xs:2: C:\STRAWB~1\perl\lib\CORE/proto.h:1172:21: note: expected 'SV * {aka struct sv *}' but argument is of type 'long long int' PERL_CALLCONV void* Perl_hv_common_key_len(pTHX_ HV *hv, const char *key, I32 klen_i32, const int action, SV *val, const U32 hash); ^~~~~~~~~~~~~~~~~~~~~~ error building xs.dll file from 'lib\Text\KnuthPlass.c' at C:/Strawberry/perl/site/lib/ExtUtils/CBuilder/Platform/Windows.pm line 128. SIMON/Text-KnuthPlass-1.02.tar.gz C:\Strawberry\perl\bin\perl.exe ./Build -- NOT OK Stopping: 'install' failed for 'Text::KnuthPlass'. Failed during this command: SIMON/Text-KnuthPlass-1.02.tar.gz : make NO
By simply changing "_unlink" to "_unlinkKP" (two lines in KnuthPlass.xs), it appears to have successfully compiled and installed. Apparently, in some libraries there's already an _unlink that it got confused with. There are still some warnings you might want to look at: Running Build for C:/Users/Phil/Desktop/Text-KnuthPlass-1.02/. Building Text-KnuthPlass gcc -c -I"." -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2 "-DVERSION=\"1.02\"" "-DXS_VERSION=\"1.02\"" -I"C:\STRAWB~1\perl\lib\CORE" -I"C:\STRAWB~1\c\include" -o "lib\Text\KnuthPlass.o" "lib\Text\KnuthPlass.c" In file included from C:\STRAWB~1\perl\lib\CORE/perl.h:5644:0, from lib\\Text\\KnuthPlass.xs:2: lib\\Text\\KnuthPlass.xs: In function 'XS_Text__KnuthPlass__init_nodelist': C:\STRAWB~1\perl\lib\CORE/hv.h:480:10: warning: passing argument 6 of 'Perl_hv_common_key_len' makes pointer from integer without a cast [-Wint-conversion] (val), (hash))) ^ C:\STRAWB~1\perl\lib\CORE/embed.h:228:77: note: in definition of macro 'hv_common_key_len' #define hv_common_key_len(a,b,c,d,e,f) Perl_hv_common_key_len(aTHX_ a,b,c,d,e,f) ^ C:\STRAWB~1\perl\lib\CORE/hv.h:512:5: note: in expansion of macro 'hv_store' hv_store((hv), ("" key ""), (sizeof(key)-1), (val), 0) ^~~~~~~~ lib\\Text\\KnuthPlass.xs:151:5: note: in expansion of macro 'hv_stores' hv_stores((HV*)self, "activeNodes", ((IV)activelist)); ^ In file included from C:\STRAWB~1\perl\lib\CORE/perl.h:5609:0, from lib\\Text\\KnuthPlass.xs:2: C:\STRAWB~1\perl\lib\CORE/proto.h:1172:21: note: expected 'SV * {aka struct sv *}' but argument is of type 'long long int' PERL_CALLCONV void* Perl_hv_common_key_len(pTHX_ HV *hv, const char *key, I32 klen_i32, const int action, SV *val, const U32 hash); ^~~~~~~~~~~~~~~~~~~~~~ ExtUtils::Mkbootstrap::Mkbootstrap('blib\arch\auto\Text\KnuthPlass\KnuthPlass.bs') Generating script 'lib\Text\KnuthPlass.lds' ...
Changed _unlink to _unlinkKP to fix. There are still some warnings, but they're not serious and we can deal with them another day.