Skip Menu |

This queue is for tickets about the DBD-mysql CPAN distribution.

Report information
The Basics
Id: 118835
Status: resolved
Priority: 0/
Queue: DBD-mysql

People
Owner: MICHIELB [...] cpan.org
Requestors: vlmarek [...] volny.cz
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 4.038
Fixed in: (no value)



Subject: Broken sparc support
Hi, The version 4.038 broke sparc (big endian?) support I went through the list of changes, and found that if I revert according to attached diff all works for me again. The diff has two parts. If I delete the first part, the results are: -t/40server_prepare.t .................... ok + +# Failed test at t/40server_prepare.t line 66. +# Structures begin differing at: +# $got->[0][0] = '0' +# $expected->[0][0] = '101' +# Looks like you failed 1 test of 27. +t/40server_prepare.t .................... +Dubious, test returned 1 (wstat 256, 0x100) +Failed 1/27 subtests If I delete the second part, the results are -t/40server_prepare.t .................... ok + +# Failed test at t/40server_prepare.t line 66. +# Structures begin differing at: +# $got->[0][0] = '433791696896' +# $expected->[0][0] = '101' + +# Failed test at t/40server_prepare.t line 79. +# Structures begin differing at: +# $got->[0][0] = '4294967296' +# $expected->[0][0] = '1' +# Looks like you failed 2 tests of 27. +t/40server_prepare.t .................... +Dubious, test returned 2 (wstat 512, 0x200) +Failed 2/27 subtests ... -t/rt88006-bit-prepare.t ................. ok + +# Failed test 'id test contents' +# at t/rt88006-bit-prepare.t line 46. +# got: '4294967296' +# expected: '1' + +# Failed test 'id test contents' +# at t/rt88006-bit-prepare.t line 53. +# got: '12884901888' +# expected: '3' + +# Failed test 'id test contents' +# at t/rt88006-bit-prepare.t line 60. +# got: '17179869184' +# expected: '4' + +# Failed test 'id test contents' +# at t/rt88006-bit-prepare.t line 67. +# got: '4294967296' +# expected: '1' + +# Failed test 'id test contents' +# at t/rt88006-bit-prepare.t line 73. +# got: '12884901888' +# expected: '3' + +# Failed test 'id test contents' +# at t/rt88006-bit-prepare.t line 79. +# got: '17179869184' +# expected: '4' +# Looks like you failed 6 tests of 84. +t/rt88006-bit-prepare.t ................. +Dubious, test returned 6 (wstat 1536, 0x600) I did no more investigation yet. Does this make any sense? 4.0.39 is of course the same. Thank you! __ Vlad
Subject: fix_sparc.patch
--- DBD-mysql-4.038/dbdimp.h 2016-10-30 12:17:48.509313109 +0100 +++ DBD-mysql-4.038/dbdimp.h 2016-10-30 12:17:38.792387510 +0100 @@ -213,7 +213,7 @@ typedef struct imp_sth_ph_st { typedef struct imp_sth_phb_st { union { - IV lval; + int32_t lval; double dval; } numeric_val; unsigned long length; @@ -234,7 +234,7 @@ typedef struct imp_sth_fbh_st { char *data; int charsetnr; double ddata; - IV ldata; + int32_t ldata; #if MYSQL_VERSION_ID < FIELD_CHARSETNR_VERSION unsigned int flags; #endif
It's fixed in https://github.com/perl5-dbi/DBD-mysql/commit/b2dcab35a4575ef754aea583bbc0ec4a1a162dfe and released as version 4.040 which is on CPAN now. -- Michiel