[fluxus] 0.12b1 + cvs merge

Claude Heiland-Allen claudiusmaximus at goto10.org
Thu Jan 11 06:30:10 PST 2007


Dave Griffiths wrote:
> I'm confused - is this because it's using the gentoo version of plt which
> hasn't been built with --enable-shared?

claude at maximus ~ $ more /usr/lib/drscheme/lib/buildinfo
CC=i686-pc-linux-gnu-gcc
CFLAGS=-O2 -march=athlon-xp -pipe
OPTIONS=
MZOPTIONS=
LDFLAGS=
LIBS=-ldl -lm  -rdynamic
CXX=i686-pc-linux-gnu-g++
CXXFLAGS=-O2 -march=athlon-xp -pipe
MROPTIONS= -DOPERATOR_NEW_ARRAY -DUSE_GL -DWX_USE_XRENDER -DWX_USE_XFT 
-DWX_USE_
CAIRO -DWX_USE_LIBPNG -DWX_USE_LIBJPEG
X_CFLAGS= -I/usr/include/freetype2   -I/usr/include/cairo
X_LIB=
MRLIBS=-lSM -lICE -lXaw -lXmu -lXt -lX11 -lXext  -lGL -lXrender -lXft 
-lXrender
-lfontconfig -lexpat -lfreetype -lz -lX11   -lcairo   -lpng -lz -ljpeg 
-ldl -lm
  -rdynamic
MRLDFLAGS=


The -ldl and -rdynmic make me pretty sure it's built with --enable-shared.


>> claude at maximus ~ $ gdb ~/bin/fluxus-0.12
>> (gdb) run
>> Starting program: /home/claude/bin/fluxus-0.12
>> [Thread debugging using libthread_db enabled]
>> [New Thread -1216420160 (LWP 18122)]
>>
>> ODE INTERNAL ERROR: matrix *, mismatched sizes
> 
> interesting.... I'm not sure what version of ode I'm using - I'll check
> later and upgrade and see if I get that too.

I just noticed that this is from libode.so

#4  0xb7e8deba in dMatrix::operator* () from /usr/lib/libode.so

http://opende.sourceforge.net/wiki/index.php/FAQ#Why_is_dVector3_the_same_size_as_dVector4.3F_Why_is_a_dMatrix_not_3x3.3F

But, dada.cpp defines a different dMatrix it seems, and the crash is here:

dMatrix &dMatrix::translate(float x, float y, float z)
{
     dMatrix t;
     t.m[3][0]=x;
     t.m[3][1]=y;
     t.m[3][2]=z;
     *this=*this*t;  // this line
     return *this;

}

So my guess is that libode.so 's dMatrix::operator*() is overriding 
dada.cpp's dMatrix in precisely the wrong place :-/

I guessed wildly (knowing how weird C++ overloading can be) that:

dMatrix operator*(dMatrix const &rhs);

in dada.h should be:

dMatrix operator*(dMatrix const &rhs) const;

and similarly for a number of other declarations (and their 
corresponding implementations in dada.cpp), and it seemed to work:

Now I get:

$ ~/bin/fluxus-0.12
standard-module-name-resolver: collection not found: "mzlib" in any of: 
(#<path:/home/claude/lib/plt/collects>)

So I need to add "/usr/lib/drscheme/collects/" to the path somehow.  Any 
ideas?


Claude




More information about the Fluxus mailing list