[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