Open sybpro opened 8 months ago
ran "perl Makefile.PL" the 2nd time, the warning related to dbd-sybase.pod was gone and I was abled to install DBD::Sybase; however, there were whole bunch of warnings from make.
@mpeppler Michael, how can I get rid of those warnings? thanks
[sybase@hero DBD-Sybase-1.23]$ perl Makefile.PL Sybase OpenClient 16.0 SP03 PL13 found.
By default DBD::Sybase 1.05 and later use the 'CHAINED' mode (where available) when 'AutoCommit' is turned off. Versions 1.04 and older instead managed the transactions explicitly with a 'BEGIN TRAN' before the first DML statement. Using the 'CHAINED' mode is preferable as it is the way that Sybase implements AutoCommit handling for both its ODBC and JDBC drivers.
Use 'CHAINED' mode by default (Y/N) [Y]:
Running in threaded mode - looking for _r libraries...
NOTE There is an incompatibility between perl (5.8.x or later) built in threaded mode and Sybase's threaded libraries, which means that signals delivered to the perl process result in a segment violation.
I suggest building DBD::Sybase with the normal libraries in this case to get reasonable behavior for signal handling.
Use the threaded (lib..._r) libraries [N]:
OK - I'll use the normal libs
Running in 64bit mode - looking for '64' libraries... Found -lsybct64 for -lsybct Found -lsybcs64 for -lsybcs Found -lsybtcl64 for -lsybtcl Found -lsybcomn64 for -lsybcomn Found -lsybintl64 for -lsybintl Found -lsybblk64 for -lsybblk BLK api available - found: sybblk64 The DBD::Sybase module need access to a Sybase server to run the tests. To clear an entry please enter 'undef' Sybase server to use (default: SYBASE): DB1 User ID to log in to Sybase (default: sa): sa Password (default: undef): Sybase database to use on DB1 (default: undef): tempdb
Using DBI 1.641 (for perl 5.026003 on x86_64-linux-thread-multi) installed in /usr/lib64/perl5/vendor_perl/auto/DBI/ Generating a Unix-style Makefile Writing Makefile for DBD::Sybase Writing MYMETA.yml and MYMETA.json
[sybase@hero DBD-Sybase-1.23]$ make cp Sybase.pm blib/lib/DBD/Sybase.pm Running Mkbootstrap for Sybase () chmod 644 "Sybase.bs" "/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Sybase.bs blib/arch/auto/DBD/Sybase/Sybase.bs 644 "/usr/bin/perl" -p -e "s/~DRIVER~/Sybase/g" /usr/lib64/perl5/vendor_perl/auto/DBI/Driver.xst > Sybase.xsi "/usr/bin/perl" "/usr/share/perl5/vendor_perl/ExtUtils/xsubpp" -typemap '/usr/share/perl5/ExtUtils/typemap' Sybase.xs > Sybase.xsc mv Sybase.xsc Sybase.c gcc -c -I/db/ase/ase16/OCS-16_0/include -DSYB_LP64 -I/usr/lib64/perl5/vendor_perl/auto/DBI -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -DVERSION=\"1.23\" -DXS_VERSION=\"1.23\" -fPIC "-I/usr/lib64/perl5/CORE" Sybase.c In file included from /usr/lib64/perl5/vendor_perl/auto/DBI/DBIXS.h:24, from Sybase.h:16, from Sybase.xs:14: Sybase.c: In function ‘XS_DBDSybasedb__isdead’: /usr/lib64/perl5/CORE/XSUB.h:191:20: warning: unused variable ‘ix’ [-Wunused-variable]
^~
Sybase.c:250:5: note: in expansion of macro ‘dXSI32’
dXSI32;
^~
Sybase.c: In function ‘XS_DBDSybasedb__date_fmt’:
/usr/lib64/perl5/CORE/XSUB.h:191:20: warning: unused variable ‘ix’ [-Wunused-variable]
^~
Sybase.c:269:5: note: in expansion of macro ‘dXSI32’
dXSI32;
^~
Sybase.c: In function ‘XS_DBDSybasest_cancel’:
/usr/lib64/perl5/CORE/XSUB.h:191:20: warning: unused variable ‘ix’ [-Wunused-variable]
^~
Sybase.c:308:5: note: in expansion of macro ‘dXSI32’
dXSI32;
^~
Sybase.c: In function ‘XS_DBDSybasest_ct_get_data’:
/usr/lib64/perl5/CORE/XSUB.h:191:20: warning: unused variable ‘ix’ [-Wunused-variable]
^~
Sybase.c:327:5: note: in expansion of macro ‘dXSI32’
dXSI32;
^~
Sybase.c: In function ‘XS_DBDSybasest_ct_data_info’:
/usr/lib64/perl5/CORE/XSUB.h:191:20: warning: unused variable ‘ix’ [-Wunused-variable]
^~
Sybase.c:361:5: note: in expansion of macro ‘dXSI32’
dXSI32;
^~
Sybase.c: In function ‘XS_DBDSybasest_ct_send_data’:
/usr/lib64/perl5/CORE/XSUB.h:191:20: warning: unused variable ‘ix’ [-Wunused-variable]
^~
Sybase.c:400:5: note: in expansion of macro ‘dXSI32’
dXSI32;
^~
Sybase.c: In function ‘XS_DBDSybasest_ct_prepare_send’:
/usr/lib64/perl5/CORE/XSUB.h:191:20: warning: unused variable ‘ix’ [-Wunused-variable]
^~
Sybase.c:423:5: note: in expansion of macro ‘dXSI32’
dXSI32;
^~
Sybase.c: In function ‘XS_DBDSybasest_ct_finish_send’:
/usr/lib64/perl5/CORE/XSUB.h:191:20: warning: unused variable ‘ix’ [-Wunused-variable]
^~
Sybase.c:442:5: note: in expansion of macro ‘dXSI32’
dXSI32;
^~
Sybase.c: In function ‘XS_DBDSybasest_ct_data_info’:
Sybase.xs:130:13: warning: ‘sybaction’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ST(0) = syb_ct_data_info(sth, imp_sth, sybaction, column, attr) ? &PL_sv_yes : &PL_sv_no;
^~~~~~~~~~~~~~~
Sybase.xs:124:9: note: ‘sybaction’ was declared here
int sybaction;
^~~~~
gcc -c -I/db/ase/ase16/OCS-16_0/include -DSYB_LP64 -I/usr/lib64/perl5/vendor_perl/auto/DBI -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -DVERSION=\"1.23\" -DXS_VERSION=\"1.23\" -fPIC "-I/usr/lib64/perl5/CORE" dbdimp.c
In file included from /usr/lib64/perl5/CORE/perl.h:5589,
from /usr/lib64/perl5/vendor_perl/auto/DBI/DBIXS.h:23,
from Sybase.h:16,
from dbdimp.c:10:
dbdimp.c: In function ‘clientmsg_cb’:
/usr/lib64/perl5/CORE/pp.h:145:16: warning: value computed is not used [-Wunused-value]
~^~~~~~
dbdimp.c:307:9: note: in expansion of macro ‘POPs’ POPs; ^~~~ dbdimp.c: In function ‘servermsg_cb’: /usr/lib64/perl5/CORE/pp.h:145:16: warning: value computed is not used [-Wunused-value]
~^~~~~~
dbdimp.c:518:7: note: in expansion of macro ‘POPs’
POPs;
^~~~
dbdimp.c: In function ‘syb_init’:
dbdimp.c:861:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
if (cs_ver = CS_CURRENT_VERSION) {
^~
dbdimp.c: In function ‘get_server_version’:
dbdimp.c:1717:9: warning: unused variable ‘db’ [-Wunused-variable]
char db;
^~
dbdimp.c: In function ‘syb_db_opentran’:
dbdimp.c:2128:35: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘void ’ [-Wformat=]
sprintf(imp_dbh->tranName, "DBI%x", (void)imp_dbh);
~^ ~~~~~~
%p
dbdimp.c: In function ‘syb_db_STORE_attrib’:
dbdimp.c:2285:9: warning: variable ‘ret’ set but not used [-Wunused-but-set-variable]
int ret;
^~~
dbdimp.c: In function ‘syb_alloc_cmd’:
dbdimp.c:2733:45: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘CS_COMMAND ’ {aka ‘struct _cscommand *’} [-Wformat=]
" syb_alloc_cmd() -> CS_COMMAND %x for CS_CONNECTION %x\n",
~^
cmd, connection);
dbdimp.c:2733:66: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 4 has type ‘CS_CONNECTION *’ {aka ‘struct _csconnection *’} [-Wformat=]
" syb_alloc_cmd() -> CS_COMMAND %x for CS_CONNECTION %x\n",
~^
cmd, connection);
dbdimp.c: In function ‘dbd_preparse’:
dbdimp.c:2744:5: warning: unused variable ‘STATES’ [-Wunused-variable]
} STATES;
^~
dbdimp.c: In function ‘syb_st_describe_proc’:
dbdimp.c:3155:26: warning: unused variable ‘STATES’ [-Wunused-variable]
enum {DEFAULT, QUOTED} STATES;
^~
dbdimp.c: In function ‘_convert’:
dbdimp.c:3756:24: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
if (DBIS->debug >= 3 && retcode != CS_SUCCEED || reslen == CS_UNUSED) {
dbdimp.c: In function ‘syb_blk_execute’:
dbdimp.c:3955:18: warning: unused variable ‘con’ [-Wunused-variable]
CS_CONNECTION con = imp_sth->connection ? imp_sth->connection
^~~
dbdimp.c: In function ‘cmd_execute’:
dbdimp.c:4111:61: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘CS_COMMAND ’ {aka ‘struct _cscommand *’} [-Wformat=]
" cmd_execute() -> ct_command() failed (cmd=%x, statement=%s, imp_sth=%x)\n",
~^
imp_sth->cmd, imp_sth->statement, imp_sth);
dbdimp.c:4111:87: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 5 has type ‘imp_sth_t *’ {aka ‘struct imp_sth_st *’} [-Wformat=]
cmd_execute() -> ct_command() failed (cmd=%x, statement=%s, imp_sth=%x)\n",
~^
mp_sth->cmd, imp_sth->statement, imp_sth);
In file included from /usr/lib64/perl5/CORE/perl.h:3913,
from /usr/lib64/perl5/vendor_perl/auto/DBI/DBIXS.h:23,
from Sybase.h:16,
from dbdimp.c:10:
dbdimp.c: In function ‘syb_st_fetch’:
/usr/lib64/perl5/CORE/sv.h:1705:5: warning: pointer targets in initialization of ‘U8 ’ {aka ‘unsigned char ’} from ‘char ’ differ in signedness [-Wpointer-sign]
(SvPOK_nog(sv) \
^
dbdimp.c:4438:25: note: in expansion of macro ‘SvPV_nolen’
U8 value = SvPV_nolen(sv);
^~~~~~
dbdimp.c: In function ‘syb_st_destroy’:
dbdimp.c:4779:41: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘imp_sth_t ’ {aka ‘struct imp_sth_st ’} [-Wformat=]
" syb_st_destroy: called on %x...\n", imp_sth);
~^ ~~~
dbdimp.c:4817:45: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘CS_COMMAND ’ {aka ‘struct _cscommand ’} [-Wformat=]
" ct_cmd_drop() -> CS_COMMAND %x\n", imp_sth->cmd);
~^ ~~~~
In file included from Sybase.h:16,
from dbdimp.c:10:
dbdimp.c: In function ‘syb_ct_send_data’:
/usr/lib64/perl5/vendor_perl/auto/DBI/DBIXS.h:381:45: warning: unused variable ‘imp_dbh’ [-Wunused-variable]
^~~~~~~
/usr/lib64/perl5/vendor_perl/auto/DBI/DBIXS.h:379:39: note: in definition of macro ‘D_imp_from_child’
type name = (type)(DBIc_PARENT_COM(child))
^~~~
dbdimp.c:4981:3: note: in expansion of macro ‘D_imp_dbh_from_sth’
D_imp_dbh_from_sth;
^~~~~~
dbdimp.c: In function ‘syb_ct_data_info’:
dbdimp.c:5046:68: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 5 has type ‘CS_BYTE ’ {aka ‘unsigned char ’} [-Wformat=]
" ct_data_info(): ret = %d, total_txtlen = %d, textptr=%x, timestamp=%x, datatype=%d\n", ret, imp_dbh->iodesc.total_txtlen,
~^
%hhn
imp_dbh->iodesc.textptr, imp_dbh->iodesc.timestamp, imp_dbh->iodesc.datatype);
dbdimp.c:5046:82: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 6 has type ‘CS_BYTE *’ {aka ‘unsigned char *’} [-Wformat=]
ct_data_info(): ret = %d, total_txtlen = %d, textptr=%x, timestamp=%x, datatype=%d\n", ret, imp_dbh->iodesc.total_txtlen,
~^
%hhn
bh->iodesc.textptr, imp_dbh->iodesc.timestamp, imp_dbh->iodesc.datatype);
dbdimp.c: In function ‘_dbd_rebind_ph’: dbdimp.c:5735:45: warning: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘IV’ {aka ‘long int’} [-Wformat=] " bind %s <== '%.100s' (size %d, ok %d)\n", phs->name, ~^ %ld phs->sv_buf, phs->maxlen, SvOK(phs->sv) ? 1 : 0);
In file included from /usr/lib64/perl5/CORE/perl.h:3913,
from /usr/lib64/perl5/vendor_perl/auto/DBI/DBIXS.h:23,
from Sybase.h:16,
from dbdimp.c:10:
dbdimp.c: In function ‘syb_bind_ph’:
/usr/lib64/perl5/CORE/sv.h:1670:13: warning: operation on ‘lna’ may be undefined [-Wsequence-point]
? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
~~~~^~~~~~~~~~~~
/usr/lib64/perl5/CORE/sv.h:1664:30: note: in expansion of macro ‘SvPV_flags’
#define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
^~~~~~~~~~
dbdimp.c:5832:29: note: in expansion of macro ‘SvPV’
lna), attribs ? SvPV(attribs, lna) : "");
^~~~
dbdimp.c: In function ‘blkCleanUp’:
dbdimp.c:6303:40: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘CS_BLKDESC *’ {aka ‘struct _cs_blkdesc *’} [-Wformat=]
" blkCleanUp -> blk_drop(%d) = %d\n", imp_sth->bcp_desc,
~^ ~~~~~~~~~~~~~~~~~
At top level:
dbdimp.c:4281:12: warning: ‘fix_fbav’ defined but not used [-Wunused-function]
static int fix_fbav(imp_sth_t *imp_sth, int num_fields, AV *av) {
^~~~~~~~
dbdimp.c:191:29: warning: ‘cslibmsg_cb’ defined but not used [-Wunused-function]
static CS_RETCODE CS_PUBLIC cslibmsg_cb(CS_CONTEXT *context, CS_CLIENTMSG *errmsg) {
^~~~~~~~~~~
dbdimp.c: In function ‘syb_db_connect’:
dbdimp.c:1656:28: warning: ‘%s’ directive writing up to 259 bytes into a region of size 250 [-Wformat-overflow=]
sprintf(statement, "use [%s]", db);
^~
In file included from /usr/include/stdio.h:873,
from /usr/lib64/perl5/CORE/perlio.h:41,
from /usr/lib64/perl5/CORE/iperlsys.h:51,
from /usr/lib64/perl5/CORE/perl.h:3880,
from /usr/lib64/perl5/vendor_perl/auto/DBI/DBIXS.h:23,
from Sybase.h:16,
from dbdimp.c:10:
/usr/include/bits/stdio2.h:36:10: note: ‘__builtin___sprintf_chk’ output between 7 and 266 bytes into a destination of size 255
return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__glibc_objsize (__s), __fmt,
__va_arg_pack ());
~~~~~~~~~~~~~~~~~
rm -f blib/arch/auto/DBD/Sybase/Sybase.so gcc -L/db/ase/ase16/OCS-16_0//db/ase/ase16/OCS-16_0/lib -lpthread -shared -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/usr/local/lib -fstack-protector-strong Sybase.o dbdimp.o -o blib/arch/auto/DBD/Sybase/Sybase.so \ -L/db/ase/ase16/OCS-16_0/lib -lsybct64 -lsybcs64 -lsybtcl64 -lsybcomn64 -lsybintl64 -lsybblk64 -ldl -lm -lperl \
chmod 755 blib/arch/auto/DBD/Sybase/Sybase.so
Manifying 1 pod document
[sybase@hero DBD-Sybase-1.23]$ make test
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Sybase.bs blib/arch/auto/DBD/Sybase/Sybase.bs 644
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/.t
t/autocommit.t .. ok
t/base.t ........ ok
t/exec.t ........ ok
t/fail.t ........ ok
t/login.t ....... 1/6 DBD::Sybase::db ping failed: ct_cmd_alloc failed at t/login.t line 32.
t/login.t ....... ok
t/main.t ........ ok
t/multi_sth.t ... ok
t/nsql.t ........ ok
t/place.t ....... ok
t/thread.t ...... ok
t/utf8.t ........ ok
t/xblk.t ........ ok
t/xblob.t ....... ok
All tests successful.
Files=13, Tests=264, 6 wallclock secs ( 0.20 usr 0.04 sys + 2.39 cusr 0.45 csys = 3.08 CPU)
Result: PASS
[sybase@hero DBD-Sybase-1.23]$ sudo make install
[sudo] password for sybase:
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Sybase.bs blib/arch/auto/DBD/Sybase/Sybase.bs 644
Manifying 1 pod document
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/local/lib64/perl5/auto/DBD/Sybase/Sybase.so
Installing /usr/local/lib64/perl5/DBD/Sybase.pm
Installing /usr/local/share/man/man3/DBD::Sybase.3
Appending installation info to /usr/lib64/perl5/perllocal.pod
figured it out, the warnings can be silenced by using the PERL_UNUSED_VAR() macro etc., see following links for details: https://github.com/perl/perl5/issues/17536 https://github.com/dankogai/p5-encode/issues/140 https://github.com/dankogai/p5-encode/issues/143
Tested building DBD::Sybase against Perl 5.24, 5,26, 5.32 and 5.38. The warnings were gone only with Perl 5.38.
@mpeppler will these warnings lead to any issues for DBD::Sybase?
Hi
These warnings should be harmless.
Michael
Sent from my iPad
On 9 Jan 2024, at 01:25, sybpro @.***> wrote:
figured it out, the warnings can be silenced by using the PERL_UNUSED_VAR() macro etc., see following links for details: Perl/perl5#17536 dankogai/p5-encode#140 dankogai/p5-encode#143
Tested building DBD::Sybase against Perl 5.24, 5,26, 5.32 and 5.38. The warnings were gone only with Perl 5.38.
@mpeppler will these warnings lead to any issues for DBD::Sybase?
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.
set up SYBASE environment variables and tried to install DBD::Sybase
[sybase@hero DBD-Sybase-1.23]$ perl Makefile.PL Sybase OpenClient 16.0 SP03 PL13 found.
By default DBD::Sybase 1.05 and later use the 'CHAINED' mode (where available) when 'AutoCommit' is turned off. Versions 1.04 and older instead managed the transactions explicitly with a 'BEGIN TRAN' before the first DML statement. Using the 'CHAINED' mode is preferable as it is the way that Sybase implements AutoCommit handling for both its ODBC and JDBC drivers.
Use 'CHAINED' mode by default (Y/N) [Y]:
Running in threaded mode - looking for _r libraries...
NOTE There is an incompatibility between perl (5.8.x or later) built in threaded mode and Sybase's threaded libraries, which means that signals delivered to the perl process result in a segment violation.
I suggest building DBD::Sybase with the normal libraries in this case to get reasonable behavior for signal handling.
Use the threaded (lib..._r) libraries [N]:
OK - I'll use the normal libs
Running in 64bit mode - looking for '64' libraries... Found -lsybct64 for -lsybct Found -lsybcs64 for -lsybcs Found -lsybtcl64 for -lsybtcl Found -lsybcomn64 for -lsybcomn Found -lsybintl64 for -lsybintl Found -lsybblk64 for -lsybblk BLK api available - found: sybblk64 The DBD::Sybase module need access to a Sybase server to run the tests. To clear an entry please enter 'undef' Sybase server to use (default: SYBASE): DB1 User ID to log in to Sybase (default: sa): Password (default: undef): Sybase database to use on DB1 (default: undef): tempdb
Checking if your kit is complete... Warning: the following files are missing in your kit: dbd-sybase.pod Please inform the author. Using DBI 1.641 (for perl 5.026003 on x86_64-linux-thread-multi) installed in /usr/lib64/perl5/vendor_perl/auto/DBI/ Generating a Unix-style Makefile Writing Makefile for DBD::Sybase Writing MYMETA.yml and MYMETA.json