Craig,

Again, thanks for all your help. I have made the changes 
that you have suggested. The perl makefile.pl worked.
But the mmk fails with compilation warnings(see below). 
They all seem to be to do with the same thing.
I have used Compaq C 6.2.

Any ideas?

BART(SYSTEM)$ perl makefile.pl
Checking if your kit is complete...
Looks good
MM_VMS: Ignoring unrecognized CCFLAGS elements "-Wall -Wmissing-prototypes
-ggdb -static "
Using DBI 1.19 installed in /perl_root/lib/site_perl/VMS_VAX/auto/DBI
Writing Descrip.MMS for DBD::FreeTDS
BART(SYSTEM)$ 
BART(SYSTEM)$ 
BART(SYSTEM)$ mmk
%MMK-I-ACTNOUPD, action did not update target CONFIG
perl "-Iperl_root:[lib]" "-MExtUtils::Install" -e "pm_to_blib({split('
',<STDIN>)},'[.blib.lib.auto]','')" <.MM_tmp
cp freetds.pm [.blib.lib.DBD]freetds.pm
AutoSplitting blib/lib/DBD/freetds.pm ([.blib.lib.auto.DBD]FreeTDS)
perl "-Iperl_root:[lib.VMS_VAX.5_6_1]" "-Iperl_root:[lib]" -e "use
ExtUtils::Mksymlists;"       -e  "Mksymlists('NAME' => 'DBD::FreeT
DS', 'DL_FUNCS' => {  }, 'DL_VARS' => [], 'FUNCLIST' => [])"
perl -e "print
""[.blib.arch.auto.DBD.FreeTDS]FreeTDS.olb/Include=(dbdimp,freetds,tdslayer)
\n[.blib.arch.auto.DBD. FreeTDS]FreeTDS.ol
b/Library\n"";" >>FREETDS.OPT
perl -e "print qq{PerlShr/Share\n}" >>FREETDS.OPT
Copy/NoConfirm FREETDS.OPT [.BLIB.ARCH.AUTO.DBD.FREETDS]FREETDS.OPT
CC/DECC
/Define=("VERSION=""0.02""","XS_VERSION=""0.02""")/Include=(perl_root:[lib.V
MS_VAX.5_6_1.CORE],perl _root:[lib.site_perl.VMS_
VAX.auto.DBI],usr:[local.include])/Debug/NoOptimize  DBDIMP.c
        extern void XS_DBD__FreeTDS__st_bind_param_inout(CV *);
        ............^
%CC-W-LONGEXTERN, The external identifier name exceeds 31 characters;
truncated
 to "XS_DBD__FREETDS__ST_BIND_PARAM_".
                At line number 180 in
DKA300:[000000.DBD-FREETDS-0_02]FREETDS.H;1.

        extern void XS_DBD__FreeTDS__st_fetchrow_arrayref(CV *);
        ............^
%CC-W-LONGEXTERN, The external identifier name exceeds 31 characters;
truncated
 to "XS_DBD__FREETDS__ST_FETCHROW_AR".
                At line number 182 in
DKA300:[000000.DBD-FREETDS-0_02]FREETDS.H;1.

        extern void XS_DBD__FreeTDS__st_fetchrow_array(CV *);
        ............^
%CC-W-LONGEXTERN, The external identifier name exceeds 31 characters;
truncated
 to "XS_DBD__FREETDS__ST_FETCHROW_AR".
                At line number 184 in
DKA300:[000000.DBD-FREETDS-0_02]FREETDS.H;1.

        extern void XS_DBD__FreeTDS__st_fetchrow_array(CV *);
        ............^
%CC-W-DUPEXTERN, The declaration of "XS_DBD__FreeTDS__st_fetchrow_array"
will
 map to the same external name as the declaration of
 "XS_DBD__FreeTDS__st_fetchrow_arrayref" at line 182 in
 DKA300:[000000.DBD-FREETDS-0_02]FREETDS.H;1.
                At line number 184 in
DKA300:[000000.DBD-FREETDS-0_02]FREETDS.H;1.

        extern void XS_DBD__FreeTDS__st_FETCH_attrib(CV *);
        ............^
%CC-W-LONGEXTERN, The external identifier name exceeds 31 characters;
truncated
 to "XS_DBD__FREETDS__ST_FETCH_ATTRI".
                At line number 188 in
DKA300:[000000.DBD-FREETDS-0_02]FREETDS.H;1.

%VCG-I-SUMMARY, Completed with 0 error(s), 5 warning(s), and
                0 informational messages.
                At line number 1254 in
DKA300:[000000.DBD-FREETDS-0_02]DBDIMP.C;2.

%MMK-F-ERRUPD, error status %X10B90000 occurred when updating target
DBDIMP.OBJ

Regards,

Piyush.

-----Original Message-----
From: Craig A. Berry [mailto:[EMAIL PROTECTED]]
Sent: 15 August 2001 00:07
To: Piyush Avichal
Cc: '[EMAIL PROTECTED]'; [EMAIL PROTECTED]
Subject: [PATCH DBD::FreeTDS 0.02] minimal VMS build patch


At 03:58 PM 8/14/2001 +0000, Piyush Avichal wrote to vmsperl:

>> I am trying to build the DBD::FreeTDS module for Perl, but
>> I am encountering and error when I do the perl makefile.pl 
>> command :

Below is a minimal patch to get DBD::FreeTDS 0.02 to build with Compaq C 
V6.4-005 on OpenVMS Alpha V7.2-1, Perl 5.6.1, DBI  1.15.  IIRC, the use of 
File::Spec breaks compatibility with Perl 5.004.  Piyush, note that 
DBD::FreeTDS is not under active development and the recommended method is 
to use DBD::Sybase with the FreeTDS library.  Unfortunately the latter does 
not yet appear to have been ported to VMS.

The bottom line of my tests results were (against a SQL Server 7.0
database):

Failed 14/46 test scripts, 69.57% okay. 30/550 subtests failed, 94.55% okay.

with a number of failures looking like:

D0:[CRAIG.DBD-FREETDS-0_02]TDSLAYER.C;3:1774: Not implemented for data type
110
D0:[CRAIG.DBD-FREETDS-0_02]TDSLAYER.C;3:2294: Unhandled subpacket type 0x04


--- dbdimp.c;-0 Thu Feb 18 12:57:00 1999
+++ dbdimp.c    Tue Aug 14 11:25:36 2001
@@ -836,7 +836,7 @@
 static AV *get_row(imp_sth_t  *imp_sth)
 {
    AV       *result;
-   boolean   okay;
+   boolean   okay = false;
    int       num_columns = colinfo_num_columns(imp_sth->tds->colinfo);
    int       i;
    SV       *sv;
@@ -847,7 +847,7 @@
     * We already peeked and found that the next byte will 
     * be a TDS_ROW_TOKEN.  Just skip it.
     */
-   okay = okay && tds_skip(imp_sth->tds, 1);
+   okay = tds_skip(imp_sth->tds, 1);
          
    result = DBIS->get_fbav(imp_sth);
 
--- FreeTDS.xs;-0       Wed Dec  9 23:52:45 1998
+++ FreeTDS.xs  Tue Aug 14 11:35:11 2001
@@ -44,7 +44,7 @@
     CODE:
     /* D_imp_dbh(dbh); */ 
     /* ST(0) = sv_2mortal(newSViv(imp_dbh->isDead)); */
-    do { void *nowarn[] = {&dbh, &nowarn}; } while (0)
+    do { void *nowarn[] = {&dbh, &nowarn}; } while (0);
     assert("Not"=="implemented");
 
 
--- Makefile.PL;-0      Wed Feb 17 13:00:15 1999
+++ Makefile.PL Tue Aug 14 11:16:06 2001
@@ -43,8 +43,9 @@
 use Config;
 
 use vars qw($LINKTYPE $lib_string);
-my $dbidir = "$Config{sitearchexp}/auto/DBI";
-die unless -e "$dbidir/DBIXS.h";
+use File::Spec;
+my $dbidir = File::Spec->catdir($Config{sitearchexp},'auto','DBI');
+die unless -e File::Spec->catfile($dbidir,'DBIXS.h');
 my $include_string = "-I$dbidir -I/usr/local/include";
 my $libdirs = '-L/usr/local/lib -llibdibs';
 $lib_string="";
--- tdslayer.c;-0       Tue Feb 16 21:21:42 1999
+++ tdslayer.c  Tue Aug 14 11:44:00 2001
@@ -1581,8 +1581,8 @@
          unsigned short   tmp_days;
          unsigned short   tmp_minutes;
 
-         okay = okay && tds_get_tdsshort(tds, &tmp_days);
-         okay = okay && tds_get_tdsshort(tds, &tmp_minutes);
+         okay = okay && tds_get_tdsshort(tds, (short *) &tmp_days);
+         okay = okay && tds_get_tdsshort(tds, (short *) &tmp_minutes);
 
          days         = (long)tmp_days + era_to_tds_day_diff;
          milliseconds = (long)tmp_minutes * msec_per_minute;
@@ -3180,6 +3180,7 @@
    long        l)
 {
    abort();
+   return -1;
 } /* tds_write_tdslong()  */
 
 
[end of patch]


****************************************************************************
Singer & Friedlander Group plc, registered office at 
21 New Street, Bishopsgate, London, EC2M  4HR. Registered in England No 970842.
This e-mail is confidential and may be legally privileged.  It is intended for the 
sole use 
of the addressee and not anyone else. If you received this e-mail in error, please 
advise 
the sender immediately.
****************************************************************************

Reply via email to