Subject: | Strawberry Perl with gcc fails to build for Windows |
Date: | Thu, 15 Aug 2013 10:58:31 -0400 |
To: | bug-DBD-DB2 [...] rt.cpan.org |
From: | D D Allen <dewey.allen [...] us.ibm.com> |
Hello,
I'm an IBM employee in the CIO's office.
I've installed DB2 Connect 10.1 from ISSI and Strawberry Perl 5.16.3
(latest stable version) and DBI. When trying to build DBD::DB2, it fails
on compiling Constants.c -- shown below.
I believe that the core issue is gcc compiler support under Windows. There
is a history here... that shows that in 2010, a patch was contributed for
DBD::DB2 1.78 for gcc on Windows. DBD::DB2 1.85, the current version on
CPAN, doesn't include this patch (or it no longer works).
https://rt.cpan.org/Public/Bug/Display.html?id=55673
Today, the issue is that ActiveState has modified the ActiveState Perl
Community License agreement to prohibit use of AS Perl community edition
in "production" environments and include a liability indemnification
clause that IBM SWG's lawyers have determined to be unacceptable for IBM
use - as documented on the IBM internal Green to Open (G2O) site.
So today, the IBM acceptable solution for Perl on Windows is Strawberry
Perl -- which comes bundled with the gcc compiler, not the MS compiler.
Therefore, the makefile for DBD::DB2 needs to incorporate support for gcc
on Windows.
Strawberry Perl site => http://strawberryperl.com/
Regards,
D. Dewey Allen
gcc -c -I"C:/PROGRA~1/IBM/SQLLIB/include" -s -O2 -DWIN32
-DPERL_TEXTMODE_S
CRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing
-mms-bit
fields -s -O2 -DVERSION=\"1.85\" -DXS_VERSION=\"1.85\"
"-IC:\strawberry\
perl\lib\CORE" Constants.c
In file included from C:/PROGRA~1/IBM/SQLLIB/include/sqlcli.h:980:0,
from Constants.xs:16:
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1747:5: error: unknown type name
'__in_ecount'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1750:5: error: unknown type name
'__out_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1753:5: error: unknown type name
'__out_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1864:5: error: unknown type name
'__in_ecount'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1867:5: error: unknown type name
'__out_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1870:5: error: unknown type name
'__out_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1890:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1893:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1896:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1899:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1906:5: error: unknown type name
'__out_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1908:5: error: unknown type name
'__out_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1910:5: error: unknown type name
'__out_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1912:5: error: unknown type name
'__out_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1919:5: error: unknown type name
'__out_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1921:5: error: unknown type name
'__out_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1926:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1929:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1932:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1935:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1938:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1941:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1951:5: error: unknown type name
'__in_ecount'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1953:5: error: unknown type name
'__out_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1960:5: error: unknown type name
'__out_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1970:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1973:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1976:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1982:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1985:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1988:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1991:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:1997:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:2000:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:2003:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:2017:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:2020:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:2023:5: error: unknown type name
'__in_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:2030:5: error: unknown type name
'__out_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:2033:5: error: unknown type name
'__out_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:2035:5: error: unknown type name
'__out_ecount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:2038:5: error: unknown type name
'__out_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:2086:5: error: unknown type name
'__out'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:2127:5: error: unknown type name
'__in_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:2128:5: error: unknown type name
'__out_bcount_opt'
C:/PROGRA~1/IBM/SQLLIB/include/sqlext.h:2129:5: error: unknown type name
'__in'
dmake: Error code 129, while making 'Constants.o'
dmake.exe: Error code 255, while making 'subdirs'
IBMTORDB2/DBD-DB2-1.85.tar.gz
C:\strawberry\c\bin\dmake.exe -- NOT OK
CPAN: YAML::XS loaded ok (v0.39)
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Stopping: 'install' failed for 'DBD::DB2'.