On Fri, 2010-06-25 at 13:02 -0400, Jes Sorensen wrote: > On 06/25/10 18:41, Frank Arnold wrote: > > On Thu, 2010-06-10 at 05:42 -0400, jes.soren...@redhat.com wrote: > >> diff --git a/os-posix.c b/os-posix.c > >> index 6417d16..1672e06 100644 > >> --- a/os-posix.c > >> +++ b/os-posix.c > >> @@ -160,6 +162,9 @@ void os_parse_cmd_args(int index, const char *optarg) > >> case QEMU_OPTION_chroot: > >> chroot_dir = optarg; > >> break; > >> + case QEMU_OPTION_daemonize: > >> + daemonize = 1; > >> + break; > >> } > >> return; > >> } > > > > This move broke the -daemonize option for us. We are using the qemu-kvm > > tree. > > > > The issue is that the QEMU_OPTION_* enumeration between vl.c and > > os-posix.c is out of sync. In our case MAP_POPULATE is defined in vl.c > > but is not in os-posix.c. This excludes the option -mem-prealloc in > > os-posix.c, see qemu-options.def for the ifdef statement. All subsequent > > options are off by one in comparison to vl.c. > > > > Just including sys/mman.h in os-posix.c fixes the issue for me. But I'm > > not sure if there is a more generic fix to that problem. > > Thanks for the update. What do you mean that it changes the numbering, > do you get a compile time error or are you saying that it is the order > of parsing the options that change? > > Are you building on Linux or another OS?
We are doing KVM testing, so it is Linux. What I did is putting lines like this somewhere into vl.c and os-posix.c: fprintf(stderr, "os: QEMU_OPTION_daemonize: %i", QEMU_OPTION_daemonize); fprintf(stderr, "vl: QEMU_OPTION_daemonize: %i", QEMU_OPTION_daemonize); Resulting in the following output on stderr: os: QEMU_OPTION_daemonize: 85 vl: QEMU_OPTION_daemonize: 86 No compile time errors. The preprocessing of qemu-options.h is done separately for both files. This results in a missing option definition for os-posix.c and discrepancy in the option enumeration. -- Frank Arnold Systems Design Technician, Software Test AMD Operating System Research Center Dresden, Germany Tel: +49 351 448 356702 Legal Information: Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach b. München Geschäftsführer: Alberto Bozzo, Andrew Bowd Sitz: Dornach, Gemeinde Aschheim, Landkreis München Registergericht München, HRB Nr. 43632