[Fluxus] compiling on Debian without recompiling racket

Claude Heiland-Allen claude at goto10.org
Thu Jun 7 13:02:34 PDT 2012


Hi Gabor,

On 07/06/12 13:21, gabor papp wrote:
> just curious, why do you need to build fluxus with static modules? it's
> much trickier and not frequently used.

I had a link error with racket that said I needed to recompile something 
within racket with -fPIC to make useable from a shared object, and I 
thought static compile of fluxus would be easier than rebuilding racket 
with -fPIC added somewhere.

--8<--
$ scons RacketPrefix=/usr Prefix=${HOME}/opt
...
g++ -o addons/video/fluxus-video_ss.so -rdynamic -pthread -shared 
addons/video/src/Video.os addons/video/src/FluxusVideo.os 
addons/video/src/ofVideoPlayer.os addons/video/src/ofVideoGrabber.os 
/usr/lib/racket/mzdyn3m.o addons/video/src/ofUCUtils.os 
-L/usr/lib/racket -L/usr/lib -L/usr/lib -Llibfluxus -lm -lpthread -ldl 
-ljpeg -ltiff -lfreetype -lz -lbz2 -lpng -lode -lsndfile -lfftw3 -llo 
-lGLEW -lracket3m -ljack -lGL -lGLU -lglut -lasound -lopenal 
-lgstvideo-0.10 -lunicap -lavformat -lswscale -lgstapp-0.10 
-lgstbase-0.10 -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 
-lgthread-2.0 -lrt -lxml2 -lglib-2.0
/usr/bin/ld: /usr/lib/libracket3m.a(salloc.o): relocation 
R_X86_64_TPOFF32 against `scheme_thread_locals' can not be used when 
making a shared object; recompile with -fPIC
/usr/lib/libracket3m.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
scons: *** [addons/video/fluxus-video_ss.so] Error 1
scons: building terminated because of errors.
$ apt-cache policy racket
racket:
   Installed: 5.2.1+dfsg1-5
   Candidate: 5.2.1+dfsg1-5
   Version table:
  *** 5.2.1+dfsg1-5 0
         500 http://ftp.uk.debian.org/debian/ wheezy/main amd64 Packages
         100 /var/lib/dpkg/status
--8<--

> i applied the static build patches to master. these were forgotten when
> we moved from plt scheme to racket.

Great/

>> to figure out then gave up as both -audio and -openal modules define a
>> same-named symbol 'Audio' with different types):
> would changing one of the 'Audio' symbol names solve this problem?

Probably!  Or even putting each symbol in a different C++ namespace 
might do the trick?


Claude



More information about the Fluxus mailing list