]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
Introduce format string for pid_t
authorAndreas Färber <andreas.faerber@web.de>
Thu, 2 Jun 2011 17:58:06 +0000 (19:58 +0200)
committerBlue Swirl <blauwirbel@gmail.com>
Wed, 15 Jun 2011 19:58:48 +0000 (19:58 +0000)
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 <stefanha@gmail.com>
Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Ingo Weinhold <ingo_weinhold@gmx.de>
Cc: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
configure
os-posix.c
os-win32.c
osdep.h
vl.c

index 4c4aa92198eef5134f0e08ec98baf4166897e6b7..44c092a292a974a39d03942b02129cebfecb2baf 100755 (executable)
--- a/configure
+++ b/configure
@@ -3041,7 +3041,7 @@ if test "$trace_backend" = "simple"; then
 fi
 # Set the appropriate trace file.
 if test "$trace_backend" = "simple"; then
-  trace_file="\"$trace_file-%u\""
+  trace_file="\"$trace_file-\" FMT_pid"
 fi
 if test "$trace_backend" = "dtrace" -a "$trace_backend_stap" = "yes" ; then
   echo "CONFIG_SYSTEMTAP_TRACE=y" >> $config_host_mak
index 320419793a5c95d62be0f4a1fbc91b710f1bb30f..7dfb27836bb798f0fef550ef67a0540274f9565e 100644 (file)
@@ -368,7 +368,7 @@ int qemu_create_pidfile(const char *filename)
     if (lockf(fd, F_TLOCK, 0) == -1) {
         return -1;
     }
-    len = snprintf(buffer, sizeof(buffer), "%ld\n", (long)getpid());
+    len = snprintf(buffer, sizeof(buffer), FMT_pid "\n", getpid());
     if (write(fd, buffer, len) != len) {
         return -1;
     }
index d6d54c60b9f1d0f30785fc8d1a9bd3eed70f5a47..b6652af7f3fb596217828d7786fea6a6005d774f 100644 (file)
@@ -258,7 +258,7 @@ int qemu_create_pidfile(const char *filename)
     if (file == INVALID_HANDLE_VALUE) {
         return -1;
     }
-    len = snprintf(buffer, sizeof(buffer), "%ld\n", (long)getpid());
+    len = snprintf(buffer, sizeof(buffer), FMT_pid "\n", getpid());
     ret = WriteFileEx(file, (LPCVOID)buffer, (DWORD)len,
                      &overlap, NULL);
     if (ret == 0) {
diff --git a/osdep.h b/osdep.h
index 6eb9a49ec8b75a4814a74c9af765d0ed1c51b33e..a81701749aabd096df6b8bee1261026c7e9b3cdd 100644 (file)
--- a/osdep.h
+++ b/osdep.h
@@ -128,6 +128,12 @@ void qemu_vfree(void *ptr);
 
 int qemu_madvise(void *addr, size_t len, int advice);
 
+#if defined(__HAIKU__) && defined(__i386__)
+#define FMT_pid "%ld"
+#else
+#define FMT_pid "%d"
+#endif
+
 int qemu_create_pidfile(const char *filename);
 int qemu_get_thread_id(void);
 
diff --git a/vl.c b/vl.c
index 7b83c43e735517cd973e8764bf8a1c18497ec825..dbdec7199a3e7cb827bec03809eadaf082cdf6f5 100644 (file)
--- a/vl.c
+++ b/vl.c
@@ -1197,7 +1197,7 @@ void qemu_kill_report(void)
              */
             fputc('\n', stderr);
         } else {
-            fprintf(stderr, " from pid %d\n", shutdown_pid);
+            fprintf(stderr, " from pid " FMT_pid "\n", shutdown_pid);
         }
         shutdown_signal = -1;
     }