Patchwork [meta-fsl-ppc,2/2] qemu: configure properly check if -lrt is needed

login
register
mail settings
Submitter Ting Liu
Date March 6, 2013, 8:11 a.m.
Message ID <1362557507-29974-2-git-send-email-b28495@freescale.com>
Download mbox | patch
Permalink /patch/45595/
State Superseded
Delegated to: Otavio Salvador
Headers show

Comments

Ting Liu - March 6, 2013, 8:11 a.m.
From: Ting Liu <b28495@freescale.com>

-lrt is needed to avoid the error "undefined reference to
`timer_settime'". add the check in configure.

Backport from http://git.qemu.org/?p=qemu.git
commit: 8bacde8d86a09699207d85d4bab06162aed18dc4

Fix the below build issue:
| ../qemu-timer.o: In function `dynticks_rearm_timer':
| .../qemu/1.0+fsl-r2/git/qemu-timer.c:597: undefined reference to `timer_gettime'
| .../qemu/1.0+fsl-r2/git/qemu-timer.c:610: undefined reference to `timer_settime'
| ../qemu-timer.o: In function `dynticks_stop_timer':
| .../qemu/1.0+fsl-r2/git/qemu-timer.c:583: undefined reference to `timer_delete'
| ../qemu-timer.o: In function `dynticks_start_timer':
| .../qemu/1.0+fsl-r2/git/qemu-timer.c:565: undefined reference to `timer_create'
| ivshmem.o: In function `pci_ivshmem_init':
| .../qemu/1.0+fsl-r2/git/hw/ivshmem.c:720: undefined reference to `shm_open'
| .../qemu/1.0+fsl-r2/git/hw/ivshmem.c:727: undefined reference to `shm_open'
| collect2: error: ld returned 1 exit status
| make[1]: *** [qemu-system-ppc] Error 1
| make: *** [subdir-ppc-softmmu] Error 2
| ERROR: oe_runmake failed
| ERROR: Function failed: do_compile

Yocto 1.4_M4 uses qemu 1.3.1 which includes this fix. So
this issue only appeared to us.

Signed-off-by: Ting Liu <b28495@freescale.com>
---
 ...configure-properly-check-if-lrt-is-needed.patch |   43 ++++++++++++++++++++
 recipes-devtools/qemu/qemu_1.0.bb                  |    6 ++-
 2 files changed, 47 insertions(+), 2 deletions(-)
 create mode 100644 recipes-devtools/qemu/files/0001-configure-properly-check-if-lrt-is-needed.patch

Patch

diff --git a/recipes-devtools/qemu/files/0001-configure-properly-check-if-lrt-is-needed.patch b/recipes-devtools/qemu/files/0001-configure-properly-check-if-lrt-is-needed.patch
new file mode 100644
index 0000000..d74ddb9
--- /dev/null
+++ b/recipes-devtools/qemu/files/0001-configure-properly-check-if-lrt-is-needed.patch
@@ -0,0 +1,43 @@ 
+From e5906138d8042817cc3b49872dd181c66a11abdf Mon Sep 17 00:00:00 2001
+From: Ting Liu <b28495@freescale.com>
+Date: Wed, 6 Mar 2013 01:56:35 -0600
+Subject: [PATCH] configure: properly check if -lrt is needed
+
+Upstream-Status: Backport
+commit  8bacde8d86a09699207d85d4bab06162aed18dc4
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
+Signed-off-by: Ting Liu <b28495@freescale.com>
+---
+ configure |    9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/configure b/configure
+index 999375a..29b3e30 100755
+--- a/configure
++++ b/configure
+@@ -2444,13 +2444,18 @@ fi
+ cat > $TMPC <<EOF
+ #include <signal.h>
+ #include <time.h>
+-int main(void) { clockid_t id; return clock_gettime(id, NULL); }
++int main(void) {
++  timer_create(CLOCK_REALTIME, NULL, NULL);
++  return clock_gettime(CLOCK_REALTIME, NULL);
++}
+ EOF
+ 
+ if compile_prog "" "" ; then
+   :
+-elif compile_prog "" "-lrt" ; then
++# we need pthread for static linking. use previous pthread test result
++elif compile_prog "" "-lrt $pthread_lib" ; then
+   LIBS="-lrt $LIBS"
++  libs_qga="-lrt $libs_qga"
+ fi
+ 
+ if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \
+-- 
+1.7.9.7
+
diff --git a/recipes-devtools/qemu/qemu_1.0.bb b/recipes-devtools/qemu/qemu_1.0.bb
index ff4afde..19efd9f 100644
--- a/recipes-devtools/qemu/qemu_1.0.bb
+++ b/recipes-devtools/qemu/qemu_1.0.bb
@@ -5,11 +5,13 @@  LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
 
 # This means v1.0 with FSL specific patches applied
 PV = "1.0+fsl"
-PR = "r2"
+PR = "r3"
 
 DEPENDS += "dtc"
 
-SRC_URI = "git://git.freescale.com/ppc/sdk/qemu.git"
+SRC_URI = "git://git.freescale.com/ppc/sdk/qemu.git \
+            file://0001-configure-properly-check-if-lrt-is-needed.patch \
+"
 SRCREV = "7feabd47a814214dc4bebfd97d0eaf30dc50a68f"
 
 S = "${WORKDIR}/git"