From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46600) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VpaR2-0002g3-6j for qemu-devel@nongnu.org; Sun, 08 Dec 2013 04:14:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VpaQx-0001Zl-Tt for qemu-devel@nongnu.org; Sun, 08 Dec 2013 04:13:56 -0500 Received: from mx1.redhat.com ([209.132.183.28]:39663) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VpaQx-0001ZV-M6 for qemu-devel@nongnu.org; Sun, 08 Dec 2013 04:13:51 -0500 Message-ID: <52A43847.7030001@redhat.com> Date: Sun, 08 Dec 2013 11:13:43 +0200 From: Alon Levy MIME-Version: 1.0 References: <1386268888-31920-1-git-send-email-sw@weilnetz.de> In-Reply-To: <1386268888-31920-1-git-send-email-sw@weilnetz.de> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2] libcacard: Fix compilation for older versions of glib (bug #1258168) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Weil , Anthony Liguori Cc: Laurent Desnogues , =?UTF-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= , qemu-devel , Don Slutz On 12/05/2013 08:41 PM, Stefan Weil wrote: > See https://bugs.launchpad.net/bugs/1258168 > > libcacard/vscclient.c: In function 'do_socket_read': > libcacard/vscclient.c:410: warning: implicit declaration of function 'g_warn_if_reached' > libcacard/vscclient.c:410: warning: nested extern declaration of 'g_warn_if_reached' > libcacard/vscclient.c: In function 'main': > libcacard/vscclient.c:763: warning: implicit declaration of function 'g_byte_array_unref' > libcacard/vscclient.c:763: warning: nested extern declaration of 'g_byte_array_unref' > ... > libcacard/vscclient.o: In function `do_socket_read': > libcacard/vscclient.c:410: undefined reference to `g_warn_if_reached' > libcacard/vscclient.o: In function `main': > libcacard/vscclient.c:763: undefined reference to `g_byte_array_unref' > > g_warn_if_reached was added in glib 2.16, and g_byte_array_unref is > supported since glib 2.22. QEMU requires glib 2.12, so both names must > not be used. > > Instead of showing a warning for code which should not be reached, QEMU > better stops running, so g_warn_if_reached is not useful for QEMU. Just note that this fix is in vscclient, so this code is not part of qemu executable. If you are using QEMU (all caps) as the whole project, the commit message is ok, but it should clarify this is about the separate vscclient executable. Other then that ACK, I can send a pull request with the commit message fixed as I suggested. > > In libcacard/vsclient.c, g_byte_array_unref can be replaced by > g_byte_array_free. This is not generally true, so adding a compatibility > layer in include/glib-compat.h is no option here. > > Reported-by: Laurent Desnogues > Reported-by: Don Slutz > Signed-off-by: Stefan Weil > --- > > v2: Fix commit message and add missing parameter for g_byte_array_free. > > libcacard/vscclient.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libcacard/vscclient.c b/libcacard/vscclient.c > index a3cb776..f1d46d3 100644 > --- a/libcacard/vscclient.c > +++ b/libcacard/vscclient.c > @@ -407,7 +407,7 @@ do_socket_read(GIOChannel *source, > } > break; > default: > - g_warn_if_reached(); > + g_assert_not_reached(); > return FALSE; > } > > @@ -760,7 +760,7 @@ main( > > g_io_channel_unref(channel_stdin); > g_io_channel_unref(channel_socket); > - g_byte_array_unref(socket_to_send); > + g_byte_array_free(socket_to_send, TRUE); > > closesocket(sock); > return 0; >