On 01/22/2014 12:14 AM, Michael Haberler wrote: > > Am 20.01.2014 um 15:53 schrieb Sebastian Kuzminsky <s...@highlab.com>: > >> On 01/20/2014 07:47 AM, Michael Haberler wrote: >>> >>> Am 20.01.2014 um 09:47 schrieb Sebastian Kuzminsky <s...@highlab.com>: >>> >>>> On 01/20/2014 01:23 AM, Michael Haberler wrote: >>>>> >>>>> Seb: can you see what chrpath -l says? this should give a clue: >>>>> >>>>> $ chrpath -l bin/halcmd >>>>> bin/halcmd: RPATH=/bighome/mah/emc2-rtos/lib >>>> >>>> Here's what i get on the rip build and the packaged version: >>>> >>>>> 1 02:45:52 seb@precise-rtai-x86 /home/seb/linuxcnc.git> chrpath >>>>> /usr/bin/halcmd >>>>> /usr/bin/halcmd: no rpath or runpath tag found. >>>>> 2 02:45:55 seb@precise-rtai-x86 /home/seb/linuxcnc.git> chrpath -l >>>>> bin/halcmd >>>>> bin/halcmd: RPATH=/home/seb/linuxcnc.git/lib > > The RIP runpaths are ok, the non-RIP ones are off insofar as none are set. > > looks like the cause is your commit 4b75c00e in src/Makefile: > > 6a0031c6 320 ifeq ($(RUN_IN_PLACE),yes) > ac9c1f70 321 LDFLAGS := -L$(LIB_DIR) -Wl,-rpath,$(LIB_DIR) > 7c64e012 322 else > 4b75c00e 323 LDFLAGS := -Wl,-rpath-link,../lib > 6a0031c6 324 endif > > The non-RIP LDFLAGS evidently need another -Wl,-rpath,$(<wherever linuxcnc > libs eventually go>), in which case the rpath is set accordingly. Otherwise > this will work only if the LD_LIBRARY_PATH happens to hit the right > directories by accident, which might be why this worked so far.
Before ubc, all .so files were installed in directories that are included in the standard search path: > 0 08:48:30 seb@precise-rtai-x86 /home/seb> dpkg -L linuxcnc | egrep '\.so' > /usr/lib/libcanterp.so.0 > /usr/lib/libnml.so.0 > /usr/lib/libposemath.so.0 > /usr/lib/libpyplugin.so.0 > /usr/lib/liblinuxcnchal.so.0 > /usr/lib/liblinuxcncini.so.0 > /usr/lib/tcltk/linuxcnc/linuxcnc.so > /usr/lib/tcltk/linuxcnc/hal.so > /usr/lib/pyshared/python2.7/_hal.so > /usr/lib/pyshared/python2.7/linuxcnc.so > /usr/lib/pyshared/python2.7/minigl.so > /usr/lib/pyshared/python2.7/_togl.so > /usr/lib/pyshared/python2.7/gcode.so > /usr/lib/librs274.so.0 > 0 08:48:33 seb@precise-rtai-x86 /home/seb> dpkg -s linuxcnc | grep Vers > Version: 1:2.6.0~pre0.5134.g60f248b So I stand by that commit in our main line. However, in ubc new .so files get installed in application-specific places, so we need to deal with that somehow. Either by setting the rpath, or by passing a path to dlopen, as appropriate. The posix flavor's rtapi_app_posix uses rpath to find the components: > 0 09:16:13 seb@precise-rtai-x86 /home/seb> dpkg -s linuxcnc-posix | grep Vers > Version: 1:2.6.0~pre~seb.ubc3.deb~07e9d60 > 0 09:17:05 seb@precise-rtai-x86 /home/seb> dpkg -L linuxcnc-posix | grep > rtapi_app > /usr/libexec/linuxcnc/rtapi_app_posix > 0 09:17:15 seb@precise-rtai-x86 /home/seb> chrpath > /usr/libexec/linuxcnc/rtapi_app_posix > /usr/libexec/linuxcnc/rtapi_app_posix: RPATH=/usr/lib/linuxcnc/posix > 0 09:17:23 seb@precise-rtai-x86 /home/seb> I think either method is fine, i don't have a strong preference either way. I slightly prefer giving dlopen() a full path because it makes it clear when reading the code what's happening, whereas with the rpath method you have to decode our buildsystem to learn what's going on. I'm fine with dropping my commit "give dlopen the path to the ulapi library", and using rpath for that binary instead. Whatever is deemed more appropriate by y'all. > debian/configure -r still breaks with xenomai running, works with rt-preempt: Yeah, i have not made the xenomai flavor packages yet, because the xenomai kernel & dev packages are not available in the linuxcnc.org deb archive yet. I've been using John Morris's excellent xenomai kernel builder system to recompile all the packages we need, i'll put them up when they're ready and add the xenomai flavor debs. -- Sebastian Kuzminsky ------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers