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

John McCabe JMcCabe at kirintec.com
Thu Jun 27 09:53:33 PDT 2019


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
  
www.kirintec.com
Follow us: 

​
​

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/20190627/8322bfbb/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image584022.png
Type: image/png
Size: 10433 bytes
Desc: image584022.png
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190627/8322bfbb/attachment-0007.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image743201.png
Type: image/png
Size: 341 bytes
Desc: image743201.png
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190627/8322bfbb/attachment-0008.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image289906.png
Type: image/png
Size: 370 bytes
Desc: image289906.png
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190627/8322bfbb/attachment-0009.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image885432.png
Type: image/png
Size: 490 bytes
Desc: image885432.png
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190627/8322bfbb/attachment-0010.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image679662.png
Type: image/png
Size: 641 bytes
Desc: image679662.png
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190627/8322bfbb/attachment-0011.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image231032.png
Type: image/png
Size: 642 bytes
Desc: image231032.png
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190627/8322bfbb/attachment-0012.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image469003.png
Type: image/png
Size: 675 bytes
Desc: image469003.png
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190627/8322bfbb/attachment-0013.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image018193.jpg
Type: image/jpeg
Size: 85123 bytes
Desc: image018193.jpg
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190627/8322bfbb/attachment-0001.jpg>


More information about the yocto mailing list