pbxt doesn't build on debian ppc 32bit
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Drizzle |
Won't Fix
|
High
|
Paul McCullagh | ||
Cherry |
Fix Released
|
High
|
Paul McCullagh |
Bug Description
See the complete log at http://
g++ -DHAVE_CONFIG_H -I. -I. -ggdb3 -pipe -mno-fused-madd -std=gnu++0x -O3 -Werror -pedantic -Wall -Wundef -Wshadow -fdiagnostics-
cc1plus: warnings being treated as errors
plugin/
plugin/
Related branches
- Drizzle Developers: Pending requested
-
Diff: 133 lines (+19/-25)6 files modifiedplugin/pbxt/src/filesys_xt.cc (+0/-6)
plugin/pbxt/src/filesys_xt.h (+7/-7)
plugin/pbxt/src/index_xt.h (+3/-3)
plugin/pbxt/src/tabcache_xt.h (+3/-3)
plugin/pbxt/src/table_xt.h (+3/-3)
plugin/pbxt/src/thread_xt.h (+3/-3)
Changed in drizzle: | |
milestone: | 2010-05-10 → 2010-05-24 |
Changed in drizzle: | |
status: | Confirmed → Won't Fix |
milestone: | 2010-05-24 → none |
The problem with this function:
xtPublic void xt_ind_ release_ handle( XTIndHandlePtr handle, xtBool have_lock, XTThreadPtr thread)
is that 'thread' is not used if atomic ops are not used(i.e. if the global XT_NO_ATOMICS is defined).
In cache_xt.cc, we see:
#ifdef XT_NO_ATOMICS USE_PTHREAD_ RW USE_PTHREAD_ RW
#define IDX_CAC_
#else
//#define IDX_CAC_
#define IDX_CAC_USE_XSMUTEX
//#define IDX_USE_SPINXSLOCK
#endif
#if defined( IDX_CAC_ USE_PTHREAD_ RW) INIT_LOCK( s, i) xt_init_ rwlock_ with_autoname( s, &(i)->cs_lock) FREE_LOCK( s, i) xt_free_ rwlock( &(i)->cs_ lock) READ_LOCK( i, o) xt_slock_ rwlock_ ns(&(i) ->cs_lock) WRITE_LOCK( i, o) xt_xlock_ rwlock_ ns(&(i) ->cs_lock) rwlock_ ns(&(i) ->cs_lock) IDX_CAC_ USE_XSMUTEX)
#define IDX_CAC_LOCK_TYPE xt_rwlock_type
#define IDX_CAC_
#define IDX_CAC_
#define IDX_CAC_
#define IDX_CAC_
#define IDX_CAC_UNLOCK(i, o) xt_unlock_
#elif defined(
....
So the macro IDX_CAC_ READ_LOCK( i, o) ignores the thread parameter (o) in the case of XT_NO_ATOMICS.
So the solution may be as follows:
#define IDX_CAC_ READ_LOCK( i, o) xt_slock_ rwlock_ ns(&(i) ->cs_lock) ; (void) (o);
or even better:
#define IDX_CAC_ READ_LOCK( i, o) do { xt_slock_ rwlock_ ns(&(i) ->cs_lock) ; (void) (o); } where (0)
This should also solve the second warning: plugin/ pbxt/src/ cache_xt. cc:829: error: unused parameter ‘ot’