[yocto] Recursions problem with pre-built versioned libraries and oe_soinstall

ChenQi Qi.Chen at windriver.com
Fri Jun 28 02:47:25 PDT 2019


Hi John,

When you have problems regarding yocto, please send email to this 
mailing list.

Regards,
Chen Qi

On 06/28/2019 12:53 AM, John McCabe wrote:
> Hi,
>
> (Sorry for the long post, but....)
>
> I'm new to Yocto etc and I'm struggling with configuring a recipe to 
> install some library files that I've built. The libraries in question 
> are part of OpenDDS, which I've cross-compiled for a Zynq-7000 target. 
> At this point I don't want to include the build of the libraries in 
> the Yocto (actually PetaLinux) configuration as it takes hours to 
> build, so I just want to add the shared libraries that are needed into 
> the image. However I haven't managed to get this to work in hours, if 
> not days, of trying. Despite multiple attempts at an opendds.bb file, 
> I continue to get issues with:
>
> ===
> Exception: OSError: [Errno 40] too much recursions while resolving 
> '<project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds/usr/lib/libTAO_PI_Server.so.2.2a_p15'; 
> loop in 
> '<project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds/usr/lib/libTAO_PI_Server.so.2.2a_p15'
> ===
>
> Essentially there are a set of binaries and a set of shared libraries 
> that I want to go into the image. If you look at the current version 
> of the opendds.bb file I'm using, below, you should see a list of the 
> files in question.
>
> ===
> #
> # This file is the OpenDDS libraries recipe.
> #
>
> SUMMARY = "OpenDDS Libraries"
> SECTION = "PETALINUX/apps"
> LICENSE = "MIT"
> LIC_FILES_CHKSUM = 
> "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
>
> SRC_URI = "file://DCPSInfoRepo \
> file://tao_cosnaming \
> file://tao_imr \
> file://tao_imr_activator \
> file://tao_imr_locator \
> file://tao_nsadd \
> file://tao_nsdel \
> file://tao_nslist \
> file://libACE.so.6.2a_p15 \
> file://libACEXML.so.6.2a_p15 \
> file://libACEXML_Parser.so.6.2a_p15 \
> file://libOpenDDS_Dcps.so.3.13.2 \
> file://libOpenDDS_FACE.so.3.13.2 \
> file://libOpenDDS_Federator.so.3.13.2 \
> file://libOpenDDS_InfoRepoDiscovery.so.3.13.2 \
> file://libOpenDDS_InfoRepoLib.so.3.13.2 \
> file://libOpenDDS_InfoRepoServ.so.3.13.2 \
> file://libOpenDDS_Model.so.3.13.2 \
> file://libOpenDDS_Multicast.so.3.13.2 \
> file://libOpenDDS_Rtps.so.3.13.2 \
> file://libOpenDDS_Rtps_Udp.so.3.13.2 \
> file://libOpenDDS_Shmem.so.3.13.2 \
> file://libOpenDDS_Tcp.so.3.13.2 \
> file://libOpenDDS_Udp.so.3.13.2 \
> file://libOpenDDS_monitor.so.3.13.2 \
> file://libTAO.so.2.2a_p15 \
> file://libTAO_AnyTypeCode.so.2.2a_p15 \
> file://libTAO_Async_IORTable.so.2.2a_p15 \
> file://libTAO_Async_ImR_Client_IDL.so.2.2a_p15 \
> file://libTAO_BiDirGIOP.so.2.2a_p15 \
> file://libTAO_CSD_Framework.so.2.2a_p15 \
> file://libTAO_CSD_ThreadPool.so.2.2a_p15 \
> file://libTAO_CodecFactory.so.2.2a_p15 \
> file://libTAO_Codeset.so.2.2a_p15 \
> file://libTAO_CosNaming.so.2.2a_p15 \
> file://libTAO_CosNaming_Serv.so.2.2a_p15 \
> file://libTAO_CosNaming_Skel.so.2.2a_p15 \
> file://libTAO_DynamicInterface.so.2.2a_p15 \
> file://libTAO_FTORB_Utils.so.2.2a_p15 \
> file://libTAO_FT_ClientORB.so.2.2a_p15 \
> file://libTAO_FT_ServerORB.so.2.2a_p15 \
> file://libTAO_IDL_FE.so.2.2a_p15 \
> file://libTAO_IORManip.so.2.2a_p15 \
> file://libTAO_IORTable.so.2.2a_p15 \
> file://libTAO_ImR_Activator.so.2.2a_p15 \
> file://libTAO_ImR_Activator_IDL.so.2.2a_p15 \
> file://libTAO_ImR_Client.so.2.2a_p15 \
> file://libTAO_ImR_Locator.so.2.2a_p15 \
> file://libTAO_ImR_Locator_IDL.so.2.2a_p15 \
> file://libTAO_Messaging.so.2.2a_p15 \
> file://libTAO_PI.so.2.2a_p15 \
> file://libTAO_PI_Server.so.2.2a_p15 \
> file://libTAO_PortableGroup.so.2.2a_p15 \
> file://libTAO_PortableServer.so.2.2a_p15 \
> file://libTAO_Strategies.so.2.2a_p15 \
> file://libTAO_Svc_Utils.so.2.2a_p15 \
> file://libTAO_Valuetype.so.2.2a_p15 \
> "
>
> S = "${WORKDIR}"
>
> do_install() {
> install -d ${D}${bindir}
> install -d ${D}${libdir}
> install -m 0755 DCPSInfoRepo ${D}${bindir}
> install -m 0755 tao_cosnaming ${D}${bindir}
> install -m 0755 tao_imr ${D}${bindir}
> install -m 0755 tao_imr_activator ${D}${bindir}
> install -m 0755 tao_imr_locator ${D}${bindir}
> install -m 0755 tao_nsadd ${D}${bindir}
> install -m 0755 tao_nsdel ${D}${bindir}
> install -m 0755 tao_nslist ${D}${bindir}
> oe_soinstall libACE.so.6.2a_p15 ${D}${libdir}
> oe_soinstall libACEXML.so.6.2a_p15 ${D}${libdir}
> oe_soinstall libACEXML_Parser.so.6.2a_p15 ${D}${libdir}
> oe_soinstall libOpenDDS_Dcps.so.3.13.2 ${D}${libdir}
> oe_soinstall libOpenDDS_FACE.so.3.13.2 ${D}${libdir}
> oe_soinstall libOpenDDS_Federator.so.3.13.2 ${D}${libdir}
> oe_soinstall libOpenDDS_InfoRepoDiscovery.so.3.13.2 ${D}${libdir}
> oe_soinstall libOpenDDS_InfoRepoLib.so.3.13.2 ${D}${libdir}
> oe_soinstall libOpenDDS_InfoRepoServ.so.3.13.2 ${D}${libdir}
> oe_soinstall libOpenDDS_Model.so.3.13.2 ${D}${libdir}
> oe_soinstall libOpenDDS_Multicast.so.3.13.2 ${D}${libdir}
> oe_soinstall libOpenDDS_Rtps.so.3.13.2 ${D}${libdir}
> oe_soinstall libOpenDDS_Rtps_Udp.so.3.13.2 ${D}${libdir}
> oe_soinstall libOpenDDS_Shmem.so.3.13.2 ${D}${libdir}
> oe_soinstall libOpenDDS_Tcp.so.3.13.2 ${D}${libdir}
> oe_soinstall libOpenDDS_Udp.so.3.13.2 ${D}${libdir}
> oe_soinstall libOpenDDS_monitor.so.3.13.2 ${D}${libdir}
> oe_soinstall libTAO.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_AnyTypeCode.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_Async_IORTable.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_Async_ImR_Client_IDL.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_BiDirGIOP.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_CSD_Framework.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_CSD_ThreadPool.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_CodecFactory.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_Codeset.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_CosNaming.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_CosNaming_Serv.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_CosNaming_Skel.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_DynamicInterface.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_FTORB_Utils.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_FT_ClientORB.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_FT_ServerORB.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_IDL_FE.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_IORManip.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_IORTable.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_ImR_Activator.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_ImR_Activator_IDL.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_ImR_Client.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_ImR_Locator.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_ImR_Locator_IDL.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_Messaging.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_PI.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_PI_Server.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_PortableGroup.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_PortableServer.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_Strategies.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_Svc_Utils.so.2.2a_p15 ${D}${libdir}
> oe_soinstall libTAO_Valuetype.so.2.2a_p15 ${D}${libdir}
> }
>
> # Don't bother trying to build the debug package, at least for now!
> INHIBIT_PACKAGE_STRIP = "1"
> INHIBIT_SYSROOT_STRIP = "1"
> INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
>
> # Inhibit warnings about files being stripped
> INSANE_SKIP_${PN} = "ldflags"
> INSANE_SKIP_${PN} = "already-stripped"
>
> # No .h files to be packaged, so only list .so stuff
> FILES_${PN} = "${bindir}/* ${libdir}/*.so.*"
> FILES_${PN}-dev = "${bindir}/* ${libdir}/*.so"
> ===
>
> The files were all built in another folder but I've copied them into 
> the project-spec/meta-user/recipes-apps/opendds/files folder so that 
> they can be picked up ok. I uses the normal install to do the 
> binaries, and oe_soinstall to work with the versioned shared 
> libraries, as described in various places.
>
> I added a print statement into package.bbclass at line 1233 (see 
> below) to try to get a bit more information into the log file about 
> the point where it's breaking). The log then shows this below (I 
> presume that the stderr output being in the middle of that lot is just 
> some sequencing effect):
>
> ===
> DEBUG: Executing python function package_fixsymlinks
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_Svc_Utils.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_FT_ClientORB.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_CSD_Framework.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libOpenDDS_Rtps_Udp.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libOpenDDS_Rtps.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_Async_ImR_Client_IDL.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_DynamicInterface.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_AnyTypeCode.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libOpenDDS_Tcp.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_ImR_Activator_IDL.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libOpenDDS_InfoRepoDiscovery.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libOpenDDS_InfoRepoLib.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libACEXML.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_Valuetype.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_BiDirGIOP.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_Messaging.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_IORManip.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_CosNaming_Serv.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_PortableServer.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_ImR_Activator.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_Async_IORTable.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_IDL_FE.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libACEXML_Parser.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libOpenDDS_monitor.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libOpenDDS_Multicast.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_PI_Server.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_Strategies.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libOpenDDS_Federator.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libOpenDDS_Shmem.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libOpenDDS_Model.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_PI.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_CodecFactory.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_FT_ServerORB.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_ImR_Locator.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libACE.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_CosNaming.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libOpenDDS_Dcps.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_IORTable.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_CosNaming_Skel.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_ImR_Locator_IDL.so, 
> pkg: opendds-devERROR: Error executing a python function in 
> exec_python_func() autogenerated:
>
> The stack trace of python calls that resulted in this 
> exception/failure was:
> File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
> 0001:
> *** 0002:package_fixsymlinks(d)
> 0003:
> File: 
> '/opt/pkg/petalinux/components/yocto/source/arm/layers/core/meta/classes/package.bbclass', 
> lineno: 1236, function: package_fixsymlinks
> 1232: for path in pkgfiles[pkg]:
> 1233: print('path: %s, pkg: %s' % (path, pkg))
> 1234: rpath = path[len(inst_root):]
> 1235: pkg_files[pkg].append(rpath)
> *** 1236: rtarget = cpath.realpath(path, inst_root, True, assume_dir = 
> True)
> 1237: if not cpath.lexists(rtarget):
> 1238: 
> dangling_links[pkg].append(os.path.normpath(rtarget[len(inst_root):]))
> 1239:
> 1240: newrdepends = {}
> File: 
> '/opt/pkg/petalinux/components/yocto/source/arm/layers/core/meta/lib/oe/cachedpath.py', 
> lineno: 229, function: realpath
> 0225: # be printed a backtrace with 100s of OSError exceptions
> 0226: # else
> 0227: raise OSError(errno.ELOOP,
> 0228: "too much recursions while resolving '%s'; loop in '%s'" %
> *** 0229: (file, e.strerror))
> 0230:
> 0231: raise
> 0232:
> 0233: return file
> Exception: OSError: [Errno 40] too much recursions while resolving 
> '<project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds/usr/lib/libTAO_PI_Server.so.2.2a_p15'; 
> loop in 
> '<project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds/usr/lib/libTAO_PI_Server.so.2.2a_p15'
>
> DEBUG: Python function package_fixsymlinks finished
> DEBUG: Python function do_package finished
> ERROR: Function failed: package_fixsymlinks
>
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libOpenDDS_InfoRepoServ.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_CSD_ThreadPool.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_FTORB_Utils.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_PortableGroup.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_ImR_Client.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libOpenDDS_FACE.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libTAO_Codeset.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/lib/libOpenDDS_Udp.so, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/bin/tao_imr_locator, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/bin/tao_cosnaming, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/bin/tao_nsdel, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/bin/tao_nsadd, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/bin/tao_nslist, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/bin/tao_imr_activator, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/bin/DCPSInfoRepo, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds-dev/usr/bin/tao_imr, 
> pkg: opendds-dev
> path: 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/packages-split/opendds/usr/lib/libTAO_PI_Server.so.2.2a_p15, 
> pkg: opendds
> ===
>
> In addition, I get a batch of the following messages coming out:
>
> ===
> 1: opendds-1.0-r0 do_package - 0s (pid 23258)
> link recursion too deep, not expanding path 
> '<project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/package/usr/lib/libTAO_Svc_Utils.so.2.2a_p15'.
> link recursion too deep, not expanding path 
> '<project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/package/usr/lib/libTAO_PI_Server.so.2.2a_p15'.
> link recursion too deep, not expanding path 
> '<project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/opendds/1.0-r0/package/usr/lib/libTAO_PI.so.2.2a_p15'.
> ===
>
> And, when I go into the lib folder and list the contents, I see:
>
> ===
> :
> lrwxrwxrwx 1 jmccabe jmccabe 28 Jun 27 17:38 libTAO_PI_Server.so -> 
> libTAO_PI_Server.so.2.2a_p15
> lrwxrwxrwx 1 jmccabe jmccabe 28 Jun 27 17:38 
> libTAO_PI_Server.so.2.2a_p15 -> libTAO_PI_Server.so.2.2a_p15
> :
> ===
>
> With (on Ubuntu), all the filenames in red with a grey (or black?) 
> background, i.e. broken links.
>
> I have a couple of questions about all this:
>
> 1) The oe_soinstall function (see here - 
> https://git.yoctoproject.org/cgit.cgi/poky/plain/meta/classes/utils.bbclass) 
> includes a line that installs (using "install") the xxx.so.x.y file, 
> which causes a copy of the file from ${WORKDIR} to go into the 
> <project-base>/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi.opendds/1.0-r0/image/usr/lib 
> directory. It then generates sonamelink and solink from the library 
> details and creates symbolic links that point back to the copies of 
> the library files in ${WORKDIR}. In doing that, the copy of the file 
> that was placed there by the install line is overwritten with the 
> symbolic link; is that normal? (I presume it must be otherwise no one 
> would be getting oe_soinstall to work!).
>
> 2) Is there anything in the shared library filenames' version part 
> that could be causing something to get confused? I've seen mention of 
> zzz.so.a.b.c etc where a, b and c are normally numeric, which is 
> different to the version information in the DDS files, but...
>
> 3) I can understand why there could be a recursion issue detected, but 
> it's not met who's putting those weird links into the package/usr/lib 
> folder. Is there something in the .bb file that I need to change to 
> make that work properly?
>
> 4) Can anyone see whether I'm just simply doing something wrong and 
> clarify what I need to do to put it right?
>
> Any help will be very, very gratefully appreciated. As I said, I'm new 
> to Yocto and have spent hours looking for help/example of the use of 
> oe_soinstall. Each time round the loop of updating my .bb file and 
> building it takes quite a long time so...
>
> Many thanks,
> John
> 	
> John McCabe​
> Principal Software Engineer
> Kirintec Ltd
>
> 		
> 	
>
> 	+44 (0) 1989 568350
>
> 	
> 	
>
> 	*JMcCabe at kirintec.com* <mailto:JMcCabe at kirintec.com>
>
> 	
>
> 	*www.kirintec.com* <http://www.kirintec.com/>
>
> Follow us: 	
> <https://en-gb.facebook.com/Kirintec/>
>
> 	
> <https://uk.linkedin.com/company/kirintec>
>
> 	
> <https://twitter.com/KirintecLtd>
>
>
>>>
> <https://www.kirintec.com/>
> Receipt of this e-mail is subject to conditions, view our 
> email disclaimer. Kirintec Limited of Ross-on-Wye HR9 5PB 
> is ​registered in England and Wales with the company number 6699502.
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190628/b68db71d/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 10433 bytes
Desc: not available
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190628/b68db71d/attachment-0007.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 341 bytes
Desc: not available
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190628/b68db71d/attachment-0008.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 370 bytes
Desc: not available
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190628/b68db71d/attachment-0009.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 490 bytes
Desc: not available
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190628/b68db71d/attachment-0010.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 641 bytes
Desc: not available
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190628/b68db71d/attachment-0011.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 642 bytes
Desc: not available
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190628/b68db71d/attachment-0012.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 675 bytes
Desc: not available
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190628/b68db71d/attachment-0013.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 85123 bytes
Desc: not available
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190628/b68db71d/attachment-0001.jpe>


More information about the yocto mailing list