[Developers] tpl2rem -dll broken
Arni Magnusson
arnima at hafro.is
Thu May 21 18:21:42 PDT 2009
On Thu, 21 May 2009, dave fournier wrote:
> Actually I gave up on the dll sutff as there seemed to be some kind of
> subtle error and the R (and Gauss) people didn't seem to give a shit
> about the effort anyway. So it was never extrended to tpl2rem.
Well, wasn't glmmADMB
(http://otter-rsch.com/admbre/examples/nbmm/nbmm.dll) created with
tpl2rem, though? And Microsoft Visual C++, as far as I can tell. Does
anyone know whether seddf1b2dll and seddf1b3dll existed back then, or was
the mechanism different?
I think DLLs are worthwhile. ADMB-IDE provides a GUI option to create DLL,
and does so successfully for plain (non-RE) models in Windows. It loads
and runs smoothly in R, so I haven't noticed the subtle error that Dave
mentioned, but maybe that's because I'm only using the minimalistic
simpdll.tpl example.
I have not been able to build a working simpdll.so in Linux, on the other
hand. The current version of ADMB is not built with -fPIC, so the linker
complains about libadmod.a:
$ g++ -s -shared -L$ADMB_HOME/lib simpdll.o -ldf1b2stub -ladmod -ladt
-lado -ldf1b2stub -ladmod -ladt -lado -o simpdll.so
/usr/bin/ld: /home/arnima/admb/lib/libadmod.a(admodel.obj): relocation
R_X86_64_32 against `a local symbol' can not be used when making a shared
object; recompile with -fPIC
/home/arnima/admb/lib/libadmod.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
If I rebuild ADMB after inserting -fPIC into the makefiles, I can build
the simpdll.so, but R can't load it:
> dyn.load("~/simpdll/simpdll.so")
Error in dyn.load("~/simpdll/simpdll.so") :
unable to load shared library '/home/arnima/simpdll/simpdll.so':
/home/arnima/simpdll/simpdll.so: undefined symbol:
_ZN7ad_comm21get_slave_assignmentsEv
All the best,
Arni
More information about the Developers
mailing list