From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:43717) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QWwgG-0002KU-3j for qemu-devel@nongnu.org; Wed, 15 Jun 2011 16:27:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QWwgE-0006Us-HG for qemu-devel@nongnu.org; Wed, 15 Jun 2011 16:27:15 -0400 Received: from mail-qy0-f180.google.com ([209.85.216.180]:38807) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QWwgE-0006Uh-5q for qemu-devel@nongnu.org; Wed, 15 Jun 2011 16:27:14 -0400 Received: by qyk10 with SMTP id 10so470833qyk.4 for ; Wed, 15 Jun 2011 13:27:13 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <1307037486-8209-1-git-send-email-andreas.faerber@web.de> References: <20101011092342.GA3752@stefan-thinkpad.transitives.com> <1307037486-8209-1-git-send-email-andreas.faerber@web.de> From: Blue Swirl Date: Wed, 15 Jun 2011 23:26:53 +0300 Message-ID: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v3] Introduce format string for pid_t List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?Q?Andreas_F=C3=A4rber?= Cc: Stefan Hajnoczi , haikuports-devs@lists.ports.haiku-files.org, Ingo Weinhold , qemu-devel@nongnu.org, Gleb Natapov Thanks, applied. On Thu, Jun 2, 2011 at 8:58 PM, Andreas F=C3=A4rber wrote: > BeOS and Haiku on i386 use long for 32-bit types, including pid_t. > Using %d with pid_t therefore results in a warning. > > Unfortunately POSIX:2008 does not define a PRId* string for pid_t. > > In some places pid_t was previously casted to long and %ld hardcoded. > The predecessor of this patch added another upcast for the simpletrace > filename but was not applied to date. > > Since new uses of pid_t with %d keep creeping in, let's instead define > an OS-dependent format string and use that consistently. > > Cc: Stefan Hajnoczi > Cc: Blue Swirl > Cc: Ingo Weinhold > Cc: Gleb Natapov > Signed-off-by: Andreas F=C3=A4rber > --- > =C2=A0v2: Use %ld and long instead of %lu for Haiku for x86_64 compatibil= ity. > > =C2=A0configure =C2=A0| =C2=A0 =C2=A02 +- > =C2=A0os-posix.c | =C2=A0 =C2=A02 +- > =C2=A0os-win32.c | =C2=A0 =C2=A02 +- > =C2=A0osdep.h =C2=A0 =C2=A0| =C2=A0 =C2=A06 ++++++ > =C2=A0vl.c =C2=A0 =C2=A0 =C2=A0 | =C2=A0 =C2=A02 +- > =C2=A05 files changed, 10 insertions(+), 4 deletions(-) > > diff --git a/configure b/configure > index a318d37..0f2b6bf 100755 > --- a/configure > +++ b/configure > @@ -3037,7 +3037,7 @@ if test "$trace_backend" =3D "simple"; then > =C2=A0fi > =C2=A0# Set the appropriate trace file. > =C2=A0if test "$trace_backend" =3D "simple"; then > - =C2=A0trace_file=3D"\"$trace_file-%u\"" > + =C2=A0trace_file=3D"\"$trace_file-\" FMT_pid" > =C2=A0fi > =C2=A0if test "$trace_backend" =3D "dtrace" -a "$trace_backend_stap" =3D = "yes" ; then > =C2=A0 echo "CONFIG_SYSTEMTAP_TRACE=3Dy" >> $config_host_mak > diff --git a/os-posix.c b/os-posix.c > index 3204197..7dfb278 100644 > --- a/os-posix.c > +++ b/os-posix.c > @@ -368,7 +368,7 @@ int qemu_create_pidfile(const char *filename) > =C2=A0 =C2=A0 if (lockf(fd, F_TLOCK, 0) =3D=3D -1) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 return -1; > =C2=A0 =C2=A0 } > - =C2=A0 =C2=A0len =3D snprintf(buffer, sizeof(buffer), "%ld\n", (long)ge= tpid()); > + =C2=A0 =C2=A0len =3D snprintf(buffer, sizeof(buffer), FMT_pid "\n", get= pid()); > =C2=A0 =C2=A0 if (write(fd, buffer, len) !=3D len) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 return -1; > =C2=A0 =C2=A0 } > diff --git a/os-win32.c b/os-win32.c > index d6d54c6..b6652af 100644 > --- a/os-win32.c > +++ b/os-win32.c > @@ -258,7 +258,7 @@ int qemu_create_pidfile(const char *filename) > =C2=A0 =C2=A0 if (file =3D=3D INVALID_HANDLE_VALUE) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 return -1; > =C2=A0 =C2=A0 } > - =C2=A0 =C2=A0len =3D snprintf(buffer, sizeof(buffer), "%ld\n", (long)ge= tpid()); > + =C2=A0 =C2=A0len =3D snprintf(buffer, sizeof(buffer), FMT_pid "\n", get= pid()); > =C2=A0 =C2=A0 ret =3D WriteFileEx(file, (LPCVOID)buffer, (DWORD)len, > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0&overlap, NULL); > =C2=A0 =C2=A0 if (ret =3D=3D 0) { > diff --git a/osdep.h b/osdep.h > index 970d767..97d167a 100644 > --- a/osdep.h > +++ b/osdep.h > @@ -127,6 +127,12 @@ void qemu_vfree(void *ptr); > > =C2=A0int qemu_madvise(void *addr, size_t len, int advice); > > +#if defined(__HAIKU__) && defined(__i386__) > +#define FMT_pid "%ld" > +#else > +#define FMT_pid "%d" > +#endif > + > =C2=A0int qemu_create_pidfile(const char *filename); > =C2=A0int qemu_get_thread_id(void); > > diff --git a/vl.c b/vl.c > index b362871..b7b98f0 100644 > --- a/vl.c > +++ b/vl.c > @@ -1191,7 +1191,7 @@ void qemu_kill_report(void) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/ > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 fputc('\n', stderr); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 } else { > - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0fprintf(stderr, " from pid %d\= n", shutdown_pid); > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0fprintf(stderr, " from pid " F= MT_pid "\n", shutdown_pid); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 } > =C2=A0 =C2=A0 =C2=A0 =C2=A0 shutdown_signal =3D -1; > =C2=A0 =C2=A0 } > -- > 1.7.5.2.317.g391b14 > >