Solaris 32 bit build broken in revision 1085

Bug #394932 reported by Lee Bieber
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Drizzle
Fix Released
Critical
Padraig O'Sullivan

Bug Description

http://gorf.tangent.org/hudson/job/Drizzle-norbye-32bit.org/12/console

mkdir plugin/myisam/.libs
 CC -DHAVE_CONFIG_H -I. -I. -I./gnulib -I./gnulib -I/opt/drizzle/include -I/opt/google/include -I/home/hudson/build/libdrizzle/include -I/home/hudson/build/gearman/include -I/home/hudson/build/libmemcached/include +w +w2 -xport64 -errtags=yes -erroff=attrskipunsup,doubunder,reftotemp,inllargeuse,truncwarn1,signextwarn,inllargeint -errwarn=%all -xO3 -xlibmil -xdepend -xbuiltin -lmopt -xlang=c99 -g -mt -compat=5 -library=stlport4 -template=no%extdef -c plugin/myisam/ha_myisam.cc -KPIC -DPIC -o plugin/myisam/.libs/plugin_libmyisam_plugin_la-ha_myisam.o
"plugin/myisam/ha_myisam.cc", line 1505: Error, truncwarn: Conversion of 64 bit type value to "unsigned long" causes truncation.
1 Error(s) detected.
gmake[2]: *** [plugin/myisam/plugin_libmyisam_plugin_la-ha_myisam.lo] Error 1
gmake[2]: Leaving directory `http://gorf.tangent.org/hudson/job/Drizzle-norbye-32bit.org/ws/'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `http://gorf.tangent.org/hudson/job/Drizzle-norbye-32bit.org/ws/'
gmake: *** [all] Error 2

Related branches

Revision history for this message
Lee Bieber (kalebral-deactivatedaccount) wrote :

reassigning per message from Monty

Changed in drizzle:
assignee: nobody → Monty Taylor (mordred)
importance: Undecided → Critical
milestone: none → aloha
status: New → Confirmed
assignee: Monty Taylor (mordred) → Padraig O'Sullivan (posulliv)
Revision history for this message
Trond Norbye (trond-norbye) wrote :

If we look at the datatypes here we have:

bitset &= uint64_t

bitset contains the following constructor: bitset(unsigned long val); so we create a temporary bitset object and use the &= operator. The problem is that in 32 bit builds unsigned long is 32 bit, so we don't have a constructor for a uint64_t.

I would suggest that we cast the uint64_t to a size_t, because that would strip off the upper 32 bits on 32 bit builds, but leave the value intact on 64 bit builds. I don't think this is a clean solution, but this is the myisam plugin ;-)

Revision history for this message
Trond Norbye (trond-norbye) wrote :

Ah... I just looked in the linked branch and noticed that the problem was solved :-)

Changed in drizzle:
status: Confirmed → Fix Committed
Changed in drizzle:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.