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