[fluxus] 0.12b1 + cvs merge

Dave Griffiths dave at pawfal.org
Thu Jan 11 04:52:03 PST 2007


> Dave Griffiths wrote:
> It might be easier to compile with mzc than gcc directly?  I think you
> can pass compiler flags along, and specify the compiler name directly,
> so it should work with C++ too.  Might take a little fiddling, but it
> will solve a lot of headaches in the long run when dealing with
> different distributions' layouts (I hope).

I'd like that, I just stopped short of writing a scons builder for mzc -
is there a simpler way to do it? I think mainly this would simplify a
windows build. It's a pain having two different ways to do crossplatform
building :)

>> change COLLECTS_LOCATION at the top of main.cpp
>
> Re: the comment just above that line:
>
> ----8<----
> claude at maximus ~/test $ more main.c
> #include <stdio.h>
> int main(void) {
>      printf("%s\n", TESTSTRING);
>      return 0;
> }
> claude at maximus ~/test $ gcc -DTESTSTRING="\"testing\"" -o main main.c
> claude at maximus ~/test $ ./main
> testing
> claude at maximus ~/test $
> ----8<----

ah thankyou! I was at wits end trying to remember how to do that :)

> I hardcoded the change in main.cpp for now.
>
>  > I think I'll put this in the fluxus startup file to make it easier to
> change.
>
> That would be ace.

sooo - I think it would be better to pass the collects location from the
SConstruct into the main.cpp, so then everything yucky and platform
dependant can be dealt with in the SConstruct. we can still override it in
the startup script if we need to then.

> "scons --clean && scons --clean install && scons && scons install"
>
> Now I get:
>
> claude at maximus ~ $ ~/bin/fluxus-0.12
> load-extension: couldn't open
> "/home/claude/lib/plt/collects/fluxus-0.12/compiled/native/i386-linux/fluxus-engine.so"
> (/home/claude/lib/plt/collects/fluxus-0.12/compiled/native/i386-linux/fluxus-engine.so:
> undefined symbol: scheme_make_prim_w_arity)
>
> But:
>
> claude at maximus ~ $ ld --trace-symbol=scheme_make_prim_w_arity
> ~/bin/fluxus-0.12 /home/claude/bin/fluxus-0.12: definition of
> scheme_make_prim_w_arity
>
> Googling turned up this:
>
> http://www.cs.utah.edu/plt/mailarch/plt-scheme-2000/msg00555.html
>
> "Add -rdynamic to the end of your linking command for the MzScheme
> embedding. That causes the linker to export global symbols for use by
> shared libraries (i.e., extensions)."

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

> if env['PLATFORM'] == 'darwin':
> 	env.Replace(LINK = "macos/libtool --mode=link g++")
> 	env.Prepend(LINKFLAGS = ["-static"])
> else:
> 	env.Prepend(LINKFLAGS = ["-rdynamic"])   ###### added this
> 	LibList += [["X11", "X11/Xlib.h"],
>
>
>
> "scons --clean && scons --clean install && scons && scons install"
>
> claude at maximus ~ $ ~/bin/fluxus-0.12
>
> ODE INTERNAL ERROR: matrix *, mismatched sizes
> Aborted
>
> Google turns up nothing relevant :(  Have a gdb trace:
>
>
> 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.

cheers,

dave




More information about the Fluxus mailing list