From patchwork Tue Dec 16 10:16:22 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: kim.hansen@prevas.dk X-Patchwork-Id: 421840 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from hugin.dotsrc.org (hugin.dotsrc.org [IPv6:2001:878:346::102]) by ozlabs.org (Postfix) with ESMTP id 0B519140082 for ; Tue, 16 Dec 2014 21:16:29 +1100 (AEDT) Received: from hugin.dotsrc.org (localhost [127.0.0.1]) by hugin.dotsrc.org (Postfix) with ESMTP id 206453FA3B for ; Tue, 16 Dec 2014 11:16:25 +0100 (CET) X-Original-To: dev@oe-lite.org Delivered-To: dev@oe-lite.org Received: from mail02.prevas.se (mail02.prevas.se [62.95.78.10]) by hugin.dotsrc.org (Postfix) with ESMTPS id B2C9D3FA3B for ; Tue, 16 Dec 2014 11:16:23 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=prevas.dk; i=@prevas.dk; l=8717; q=dns/txt; s=ironport2; t=1418724985; x=1450260985; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=2YA3mCYy8zBKxV4649IS5ohQeOAGz/Ii24m5MChTI74=; b=Tg2rcf3KeiK9pxeGtvNfJBYk2n/czn6ho7YI/x75BJi3AlJmjCblyZqu XCpc6KwGudBLJb03HmmdMPR+qzfLR4uk4Y1XLuKeZ08jY1lLX1CsaTCbb IuD8cDQK08/yxH4mT/rzf8pG2ecfu80vz0DufsPjlbqZLkaH7UORpP7NF M=; X-IronPort-AV: E=Sophos;i="5.07,585,1413237600"; d="scan'208";a="1384895" Received: from vmprevas4.prevas.se (HELO smtp.prevas.se) ([172.16.8.104]) by ironport2.prevas.se with ESMTP/TLS/AES128-SHA; 16 Dec 2014 11:16:25 +0100 Received: from VMPREVAS1.prevas.se ([fe80::d582:e193:281c:3bc9]) by VMPREVAS4.prevas.se ([172.16.8.104]) with mapi id 14.02.0387.000; Tue, 16 Dec 2014 11:16:23 +0100 From: =?iso-8859-1?Q?Kim_H=F8jgaard-Hansen?= To: =?iso-8859-1?Q?Kim_B=F8ndergaard_Poulsen?= , "dev@oe-lite.org" Subject: SV: [PATCH 1/6] dbus: Add configure check for mq_getattr in librt Thread-Topic: [PATCH 1/6] dbus: Add configure check for mq_getattr in librt Thread-Index: AQHPw4UY264wjRe+m0inYRry2jnH6JyN8coigAL5A4CAAb9OCg== Date: Tue, 16 Dec 2014 10:16:22 +0000 Message-ID: References: , , , <4014368E77617E44944113A4A656BD68BCCFEC22@VMPREVAS1.prevas.se> In-Reply-To: <4014368E77617E44944113A4A656BD68BCCFEC22@VMPREVAS1.prevas.se> Accept-Language: da-DK, sv-SE, en-US Content-Language: da-DK X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.16.11.37] MIME-Version: 1.0 Cc: Esben Haabendal X-BeenThere: dev@oe-lite.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: OE-lite development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dev-bounces@oe-lite.org Errors-To: dev-bounces@oe-lite.org So, we managed to figure out what this is about. The patch itself makes sense, but only on an older version of dbus, where there is no D_DAEMON_DISABLE_MQ define in: sd-daemon.c sd_is_mq(). This result in a build failure: make[2]: Entering directory `/home/buildbot/slave/build/oe-lite/tmp/work/machine/arm-cortexa8neon-linux-gnueabi/dbus-1.7.0/build/bus' CCLD dbus-daemon CCLD dbus-daemon-launch-helper ../dbus/.libs/libdbus-internal.a(libdbus_internal_la-sd-daemon.o): In function `sd_is_mq': sd-daemon.c:(.text+0x7bc): undefined reference to `mq_getattr' collect2: error: ld returned 1 exit status make[2]: *** [dbus-daemon-launch-helper] Error 1 So at least for dbus-1.7.0 For dbus-1.7.10 which we currently have on both meta/base[master] and [3.3] , this define is now included in the code, and set by dbus/Makefile.in: ------snip------ # On Linux with glibc 2.17, sd-daemon.c support for POSIX message queues # results in an otherwise unnecessary dependency on librt. Disable it. AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) $(SYSTEMD_CFLAGS) \ $(VALGRIND_CFLAGS) -DDBUS_COMPILATION \ -DDBUS_MACHINE_UUID_FILE=\""$(localstatedir)/lib/dbus/machine-id"\" \ -DDBUS_SYSTEM_CONFIG_FILE=\""$(configdir)/system.conf"\" \ -DDBUS_SESSION_CONFIG_FILE=\""$(configdir)/session.conf"\" \ $(NULL) -DSD_DAEMON_DISABLE_MQ ------- snip ------ So, I am not going to add this, since it is fixed in the versions we care about. /Kim diff --git a/recipes/dbus/dbus-1.7.0/dbus-configure-mq_getattr.patch b/recipes/dbus/dbus-1.7.0/dbus-configure-mq_getattr.patch new file mode 100644 index 0000000..e0de1a4 --- /dev/null +++ b/recipes/dbus/dbus-1.7.0/dbus-configure-mq_getattr.patch @@ -0,0 +1,87 @@ +diff -U 5 dbus~orig/configure dbus/configure +--- dbus~orig/configure 2014-03-05 14:57:28.550768162 +0100 ++++ dbus/configure 2014-03-05 14:57:28.549768148 +0100 +@@ -19741,10 +19741,67 @@ + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + THREAD_LIBS="$LIBS" + fi + + ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mq_getattr" >&5 ++$as_echo_n "checking for library containing mq_getattr... " >&6; } ++if ${ac_cv_search_mq_getattr+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_func_search_save_LIBS=$LIBS ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char mq_getattr (); ++int ++main () ++{ ++return mq_getattr (); ++ ; ++ return 0; ++} ++_ACEOF ++for ac_lib in '' rt; do ++ if test -z "$ac_lib"; then ++ ac_res="none required" ++ else ++ ac_res=-l$ac_lib ++ LIBS="-l$ac_lib $ac_func_search_save_LIBS" ++ fi ++ if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_search_mq_getattr=$ac_res ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext ++ if ${ac_cv_search_mq_getattr+:} false; then : ++ break ++fi ++done ++if ${ac_cv_search_mq_getattr+:} false; then : ++ ++else ++ ac_cv_search_mq_getattr=no ++fi ++rm conftest.$ac_ext ++LIBS=$ac_func_search_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mq_getattr" >&5 ++$as_echo "$ac_cv_search_mq_getattr" >&6; } ++ac_res=$ac_cv_search_mq_getattr ++if test "$ac_res" != no; then : ++ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" ++ THREAD_LIBS="$LIBS" ++fi ++ ++ + if test "x$ac_cv_search_pthread_condattr_setclock" != xno; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_getres" >&5 + $as_echo_n "checking for library containing clock_getres... " >&6; } + if ${ac_cv_search_clock_getres+:} false; then : +diff -U 5 dbus~orig/configure.ac dbus/configure.ac +--- dbus~orig/configure.ac 2014-03-05 14:57:28.549768148 +0100 ++++ dbus/configure.ac 2014-03-05 14:57:28.549768148 +0100 +@@ -949,10 +949,12 @@ + # is non-fatal if we don't find it. + AC_SEARCH_LIBS([pthread_condattr_setclock], + [pthread], + [THREAD_LIBS="$LIBS"]) + ++ AC_SEARCH_LIBS([mq_getattr], [rt], [THREAD_LIBS="$LIBS"]) ++ + AS_IF([test "x$ac_cv_search_pthread_condattr_setclock" != xno], + [ + AC_SEARCH_LIBS([clock_getres], [rt], [THREAD_LIBS="$LIBS"]) + AC_MSG_CHECKING([for CLOCK_MONOTONIC]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM( diff --git a/recipes/dbus/dbus_1.7.10.oe b/recipes/dbus/dbus_1.7.10.oe index 2fa5020..b556d3f 100644 --- a/recipes/dbus/dbus_1.7.10.oe +++ b/recipes/dbus/dbus_1.7.10.oe @@ -2,6 +2,7 @@ include dbus.inc SRC_URI += "file://tmpdir.patch" +SRC_URI += "file://dbus-configure-mq_getattr.patch" SRC_URI:>HOST_LIBC_mingw = " file://libtool-bindir.patch" export sharedlibdir