From 3f4fb3936edbf42b6e94b71e0f243acd6c56b132 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Mon, 4 Jan 2016 10:08:42 +0800 Subject: dbus: support large-file for stat64 While starting dbus-daemon on a 32-bit linux host and it invokes fstat to load /etc/dbus-1/system.conf through NFS. If system.conf was created with a large indoe number on 64-bit host. The above fstat invoking failed. Here is the log of strace: ............ $ ls -i /etc/dbus-1/system.conf 53778558109 /etc/dbus-1/system.conf $ strace /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation |open("/etc/dbus-1/system.conf", O_RDONLY) = 4 |fstat64(4, {st_mode=S_IFREG|0644, st_size=3340, ...}) = 0 |close(4) = 0 |close(3) = 0 |write(2, "Failed to start message bus: Fai"..., 109Failed to start message bus: Failed to stat "/etc/dbus-1/system.conf": Value too large for defined data type |) = 109 |exit_group(1) = ? |+++ exited with 1 +++ ............ In this situation, we should support large-file for stat64. Add marco AC_SYS_LARGEFILE to do the detection at configure time. It can be disabled by configuring with the `--disable-largefile' option. [YOCTO: #8863] (From OE-Core rev: 33a7a9b3efafc35ed1409fdfa8ab8f544f1babc3) Signed-off-by: Hongxu Jia Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- ...onfigure.ac-support-large-file-for-stat64.patch | 53 ++++++++++++++++++++++ meta/recipes-core/dbus/dbus_1.8.20.bb | 3 ++ 2 files changed, 56 insertions(+) create mode 100644 meta/recipes-core/dbus/dbus/0001-configure.ac-support-large-file-for-stat64.patch diff --git a/meta/recipes-core/dbus/dbus/0001-configure.ac-support-large-file-for-stat64.patch b/meta/recipes-core/dbus/dbus/0001-configure.ac-support-large-file-for-stat64.patch new file mode 100644 index 0000000000..bb73288609 --- /dev/null +++ b/meta/recipes-core/dbus/dbus/0001-configure.ac-support-large-file-for-stat64.patch @@ -0,0 +1,53 @@ +From e18bd3a571be716d90bedc835a014472470ae7bd Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 30 Dec 2015 10:58:39 +0800 +Subject: [PATCH] configure.ac: support large-file for stat64 + +While starting dbus-daemon on a 32-bit linux host and it invokes +fstat to load /etc/dbus-1/system.conf through NFS. If system.conf +was created with a large indoe number on 64-bit host. The above +fstat invoking failed. Here is the log of strace: +............ +$ ls -i /etc/dbus-1/system.conf +53778558109 /etc/dbus-1/system.conf + +$ strace /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation +|open("/etc/dbus-1/system.conf", O_RDONLY) = 4 +|fstat64(4, {st_mode=S_IFREG|0644, st_size=3340, ...}) = 0 +|close(4) = 0 +|close(3) = 0 +|write(2, "Failed to start message bus: Fai"..., 109Failed to start message bus: +Failed to stat "/etc/dbus-1/system.conf": Value too large for defined data type +|) = 109 +|exit_group(1) = ? +|+++ exited with 1 +++ +............ + +In this situation, we should support large-file for stat64. Add marco +AC_SYS_LARGEFILE to do the detection at configure time. It can be disabled +by configuring with the `--disable-largefile' option. + +Upstream-Status: Submitted + +Bug: https://bugs.freedesktop.org/show_bug.cgi?id=93545 +https://bugs.freedesktop.org/attachment.cgi?id=120747 +Signed-off-by: Hongxu Jia +--- + configure.ac | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure.ac b/configure.ac +index 82806ba..cb5a60b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -64,6 +64,7 @@ AC_SUBST(DBUS_VERSION) + AC_PROG_CC + AM_PROG_CC_C_O + AC_PROG_CXX ++AC_SYS_LARGEFILE + AC_USE_SYSTEM_EXTENSIONS + AC_ISC_POSIX + AC_HEADER_STDC +-- +1.9.1 + diff --git a/meta/recipes-core/dbus/dbus_1.8.20.bb b/meta/recipes-core/dbus/dbus_1.8.20.bb index c0ad48b33c..0c7f6b1a21 100644 --- a/meta/recipes-core/dbus/dbus_1.8.20.bb +++ b/meta/recipes-core/dbus/dbus_1.8.20.bb @@ -17,6 +17,7 @@ SRC_URI = "http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \ file://dbus-1.init \ file://os-test.patch \ file://clear-guid_from_server-if-send_negotiate_unix_f.patch \ + file://0001-configure.ac-support-large-file-for-stat64.patch \ " SRC_URI[md5sum] = "b49890bbabedab3a1c3f4f73c7ff8b2b" @@ -92,6 +93,7 @@ EXTRA_OECONF = "--disable-tests \ EXTRA_OECONF_append_class-native = " --disable-selinux" PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', 'largefile', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" PACKAGECONFIG_class-native = "" PACKAGECONFIG_class-nativesdk = "" @@ -100,6 +102,7 @@ PACKAGECONFIG_class-nativesdk = "" # systemd<->dbus PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir" PACKAGECONFIG[x11] = "--with-x --enable-x11-autolaunch,--without-x --disable-x11-autolaunch, virtual/libx11 libsm" +PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,," do_install() { autotools_do_install -- cgit 1.2.3-korg