1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-18 18:49:51 +00:00
Files
poky/meta/recipes-bsp/pciutils/pciutils_3.13.0.bb
T
Ross Burton c05046519c pciutils: work around pseudo symlink creation race
Richard managed to reproduce a pseudo bug that pciutils in a minimal
test case[1] which confirmed that it was the symlink creation causing
issues.

The pciutils Makefile has several installation targets:
- install: binaries, manpages, shared library
- install-lib: headers, library symlinks, shared library

We need to run both targets to install the full set of files we want to
be installed, but notably they both create the .so symlink and as they're
running in parallel this is what triggers the bug in pseudo.

Until the bug has been resolved (or the Makefiles don't duplicate rules),
just run the two targets separately.

[ YOCTO #14957 ]

[1] https://lore.kernel.org/openembedded-core/20250319133457.806384-1-richard.purdie@linuxfoundation.org/T/#u

(From OE-Core rev: a5fc49fafe910a25be7372c82bfbd7876871ce3f)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-03-20 11:29:04 +00:00

56 lines
2.1 KiB
BlitzBasic

SUMMARY = "PCI utilities"
DESCRIPTION = 'The PCI Utilities package contains a library for portable access \
to PCI bus configuration space and several utilities based on this library.'
HOMEPAGE = "https://mj.ucw.cz/sw/pciutils/"
SECTION = "console/utils"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
# Can drop make-native when all systems have make 4.3
# https://git.savannah.gnu.org/cgit/make.git/commit/?id=b90fabc8d6f34fb37d428dc0fb1b8b1951a9fbed
# causes space issues in lib/libpci.pc
DEPENDS = "make-native"
SRC_URI = "${KERNELORG_MIRROR}/software/utils/pciutils/pciutils-${PV}.tar.xz"
SRC_URI[sha256sum] = "77f11f78298502634d1af50308f15a5788629f6cf45cba376f5009aea4cb4926"
inherit multilib_header pkgconfig update-alternatives
PACKAGECONFIG ??= "hwdb kmod zlib"
PACKAGECONFIG[hwdb] = "HWDB=yes,HWDB=no,udev"
PACKAGECONFIG[kmod] = "LIBKMOD=yes,LIBKMOD=no,kmod"
PACKAGECONFIG[zlib] = "ZLIB=yes,ZLIB=no,zlib"
# Configuration options
EXTRA_OEMAKE += "${PACKAGECONFIG_CONFARGS} DNS=yes SHARED=yes"
# Construct a HOST that matches what lib/configure expects
EXTRA_OEMAKE += "HOST="${HOST_ARCH}-${HOST_OS}""
# Toolchain. We need to pass CFLAGS via CC as this is the only variable
# available to the caller without clobbering assignments (notably, -fPIC)
EXTRA_OEMAKE += "CC="${CC} ${CFLAGS}" AR="${AR}" STRIP= LDFLAGS="${LDFLAGS}""
# Paths
EXTRA_OEMAKE += "PREFIX=${prefix} LIBDIR=${libdir} SBINDIR=${sbindir} SHAREDIR=${datadir} MANDIR=${mandir}"
do_install () {
# Do these in separate calls as they expose a race in pseudo when creating
# symlinks when ran in parallel.
oe_runmake DESTDIR=${D} install
oe_runmake DESTDIR=${D} install-lib
install -d ${D}${bindir}
oe_multilib_header pci/config.h
}
PACKAGES =+ "${PN}-ids libpci"
FILES:${PN}-ids = "${datadir}/pci.ids*"
SUMMARY:${PN}-ids = "PCI utilities - device ID database"
DESCRIPTION:${PN}-ids = "Package providing the PCI device ID database for pciutils."
RDEPENDS:${PN} += "${PN}-ids"
FILES:libpci = "${libdir}/libpci.so.*"
ALTERNATIVE:${PN} = "lspci"
ALTERNATIVE_PRIORITY = "100"