diff options
author | Kai Kang <kai.kang@windriver.com> | 2022-04-15 22:38:03 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-04-19 14:14:12 +0100 |
commit | 72bb57ed0ba0b2c0e6ebf4b14289fdef8e4d05c2 (patch) | |
tree | 43953a9b88b199b794eb99aaf64f9c7d3f4bfcc6 /meta | |
parent | 73cdd40c9e3c70e91b6140362bc9a92713ffd707 (diff) | |
download | poky-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.bb | 5 | ||||
-rw-r--r-- | meta/recipes-core/udev/eudev_3.2.10.bb | 4 |
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 | ||
60 | do_install:prepend:class-target () { | 56 | do_install:prepend:class-target () { |