summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorKai Kang <kai.kang@windriver.com>2022-04-15 22:38:03 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-04-19 14:14:12 +0100
commit72bb57ed0ba0b2c0e6ebf4b14289fdef8e4d05c2 (patch)
tree43953a9b88b199b794eb99aaf64f9c7d3f4bfcc6 /meta
parent73cdd40c9e3c70e91b6140362bc9a92713ffd707 (diff)
downloadpoky-72bb57ed0ba0b2c0e6ebf4b14289fdef8e4d05c2.tar.gz
update_udev_hwdb: fix multilib issue with systemd
It duplicates udevadm in systemd recipe to make it could run update_udev_hwdb with multilib enabled. Since systemd last update, it deploys a shared library libsystemd-shared-250.so in /lib/systemd/. The library will be overwritten when multilib enabled. Then if both udev-hwdb and lib32-udev-hwdb are installed, it fails to run the multilib version postinstall intercept update_udev_hwdb: | /path/to/build/tmp-glibc/work/intel_x86_64-wrs-linux/wrlinux-image-small/1.0-r1/rootfs/usr/libexec/lib32-udevadm: error while loading shared libraries: libsystemd-shared-250.so: wrong ELF class: ELFCLASS64 `udevadm hwdb --update` just concatenates .hwdb files in dirs /etc/udev/hwdb.d and /lib/udev/hwdb.d. The output file hwdb.bin is identical with the one created by lib32-udevadm. So do NOT duplicate lib32-udevadm in systemd and eudev. And update intercept script update_udev_hwdb that re-run udevadm with same arch qemuwrapper if run ${binprefix}qemuwrapper failed. (From OE-Core rev: 3dba872a42c2be7d0865a30118984ab013850292) Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-core/systemd/systemd_250.4.bb5
-rw-r--r--meta/recipes-core/udev/eudev_3.2.10.bb4
2 files changed, 0 insertions, 9 deletions
diff --git a/meta/recipes-core/systemd/systemd_250.4.bb b/meta/recipes-core/systemd/systemd_250.4.bb
index 2b346113b5..15e2185dff 100644
--- a/meta/recipes-core/systemd/systemd_250.4.bb
+++ b/meta/recipes-core/systemd/systemd_250.4.bb
@@ -337,10 +337,6 @@ do_install() {
337 # create link for existing udev rules 337 # create link for existing udev rules
338 ln -s ${base_bindir}/udevadm ${D}${base_sbindir}/udevadm 338 ln -s ${base_bindir}/udevadm ${D}${base_sbindir}/udevadm
339 339
340 # duplicate udevadm for postinst script
341 install -d ${D}${libexecdir}
342 ln ${D}${base_bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm
343
344 # install default policy for presets 340 # install default policy for presets
345 # https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto 341 # https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto
346 install -Dm 0644 ${WORKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset 342 install -Dm 0644 ${WORKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset
@@ -718,7 +714,6 @@ FILES:udev += "${base_sbindir}/udevd \
718 ${base_bindir}/systemd-hwdb \ 714 ${base_bindir}/systemd-hwdb \
719 ${base_bindir}/udevadm \ 715 ${base_bindir}/udevadm \
720 ${base_sbindir}/udevadm \ 716 ${base_sbindir}/udevadm \
721 ${libexecdir}/${MLPREFIX}udevadm \
722 ${datadir}/bash-completion/completions/udevadm \ 717 ${datadir}/bash-completion/completions/udevadm \
723 ${systemd_system_unitdir}/systemd-hwdb-update.service \ 718 ${systemd_system_unitdir}/systemd-hwdb-update.service \
724 " 719 "
diff --git a/meta/recipes-core/udev/eudev_3.2.10.bb b/meta/recipes-core/udev/eudev_3.2.10.bb
index dec16be046..ccc66ae131 100644
--- a/meta/recipes-core/udev/eudev_3.2.10.bb
+++ b/meta/recipes-core/udev/eudev_3.2.10.bb
@@ -51,10 +51,6 @@ do_install:append() {
51 51
52 # hid2hci has moved to bluez4. removed in udev as of version 169 52 # hid2hci has moved to bluez4. removed in udev as of version 169
53 rm -f ${D}${base_libdir}/udev/hid2hci 53 rm -f ${D}${base_libdir}/udev/hid2hci
54
55 # duplicate udevadm for postinst script
56 install -d ${D}${libexecdir}
57 ln ${D}${bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm
58} 54}
59 55
60do_install:prepend:class-target () { 56do_install:prepend:class-target () {