Subject: | 2.053 fails to build on strawberry perl (MS Windows) 5.14.2 |
The failure is:
cp lib/Compress/Raw/Zlib.pm blib\lib\Compress\Raw\Zlib.pm
AutoSplitting blib\lib\Compress\Raw\Zlib.pm (blib\lib\auto\Compress\Raw\Zlib)
Z:\strawberry32\perl\bin\perl.exe Z:\strawberry32\perl\lib\ExtUtils\xsubpp -typemap Z:\strawberry32\perl\lib\ExtUtils\typemap -typemap typemap Zlib.xs > Zlib.
xsc && Z:\strawberry32\perl\bin\perl.exe -MExtUtils::Command -e mv -- Zlib.xsc Zlib.c
gcc -c -I./zlib-src -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"2.053\" -DXS_VERSION=\"2.053\" "-IZ:\strawberry32\perl\lib\CORE" -DNO_VIZ -DZ_SOLO -DGZIP_OS_CODE=14 -DUSE_PPPORT_H Zlib.c
gcc -c -I./zlib-src -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"2.053\" -DXS_VERSION=\"2.053\" "-IZ:\strawberry32\perl\lib\CORE" -DNO_VIZ -DZ_SOLO -DGZIP_OS_CODE=14 -DUSE_PPPORT_H adler32.c
In file included from adler32.c:8:
./zlib-src/zutil.h:37: error: conflicting types for 'ptrdiff_t'
z:\strawberry32\c\bin\../lib/gcc/i686-w64-mingw32/4.4.7/../../../../i686-w64-mingw32/include/_mingw.h:390: note: previous declaration of 'ptrdiff_t' was here
dmake: Error code 129, while making 'adler32.o'
The problem is in zutil.h:
#ifdef Z_SOLO
typedef long ptrdiff_t; /* guess -- will be caught if guess is wrong */
#endif
after commenting out this typedef the build succeeds
so the patch could be:
#if defined(Z_SOLO) && !defined(__MINGW32__)
typedef long ptrdiff_t; /* guess -- will be caught if guess is wrong */
#endif
--
kmx
cp lib/Compress/Raw/Zlib.pm blib\lib\Compress\Raw\Zlib.pm
AutoSplitting blib\lib\Compress\Raw\Zlib.pm (blib\lib\auto\Compress\Raw\Zlib)
Z:\strawberry32\perl\bin\perl.exe Z:\strawberry32\perl\lib\ExtUtils\xsubpp -typemap Z:\strawberry32\perl\lib\ExtUtils\typemap -typemap typemap Zlib.xs > Zlib.
xsc && Z:\strawberry32\perl\bin\perl.exe -MExtUtils::Command -e mv -- Zlib.xsc Zlib.c
gcc -c -I./zlib-src -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"2.053\" -DXS_VERSION=\"2.053\" "-IZ:\strawberry32\perl\lib\CORE" -DNO_VIZ -DZ_SOLO -DGZIP_OS_CODE=14 -DUSE_PPPORT_H Zlib.c
gcc -c -I./zlib-src -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"2.053\" -DXS_VERSION=\"2.053\" "-IZ:\strawberry32\perl\lib\CORE" -DNO_VIZ -DZ_SOLO -DGZIP_OS_CODE=14 -DUSE_PPPORT_H adler32.c
In file included from adler32.c:8:
./zlib-src/zutil.h:37: error: conflicting types for 'ptrdiff_t'
z:\strawberry32\c\bin\../lib/gcc/i686-w64-mingw32/4.4.7/../../../../i686-w64-mingw32/include/_mingw.h:390: note: previous declaration of 'ptrdiff_t' was here
dmake: Error code 129, while making 'adler32.o'
The problem is in zutil.h:
#ifdef Z_SOLO
typedef long ptrdiff_t; /* guess -- will be caught if guess is wrong */
#endif
after commenting out this typedef the build succeeds
so the patch could be:
#if defined(Z_SOLO) && !defined(__MINGW32__)
typedef long ptrdiff_t; /* guess -- will be caught if guess is wrong */
#endif
--
kmx