diff --git a/configure b/configure index 4c4aa92198eef5134f0e08ec98baf4166897e6b7..44c092a292a974a39d03942b02129cebfecb2baf 100755 --- 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 diff --git a/os-posix.c b/os-posix.c index 320419793a5c95d62be0f4a1fbc91b710f1bb30f..7dfb27836bb798f0fef550ef67a0540274f9565e 100644 --- a/os-posix.c +++ b/os-posix.c @@ -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; } diff --git a/os-win32.c b/os-win32.c index d6d54c60b9f1d0f30785fc8d1a9bd3eed70f5a47..b6652af7f3fb596217828d7786fea6a6005d774f 100644 --- a/os-win32.c +++ b/os-win32.c @@ -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 --- 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 --- 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; }