diff options
Diffstat (limited to 'android/main.c')
-rw-r--r-- | android/main.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/android/main.c b/android/main.c index c366a9e..f0029f4 100644 --- a/android/main.c +++ b/android/main.c @@ -2085,6 +2085,11 @@ int main(int argc, char **argv) } } + /* the purpose of -no-audio is to disable sound output from the emulator, + * not to disable Audio emulation. So simply force the 'none' backends */ + if (opts->no_audio) + opts->audio = "none"; + if (opts->audio) { if (opts->audio_in || opts->audio_out) { derror( "you can't use -audio with -audio-in or -audio-out\n" ); @@ -2430,10 +2435,6 @@ int main(int argc, char **argv) opts->memory = qemu_strdup(tmp); } - if (opts->no_audio) { - args[n++] = "-noaudio"; - } - if (opts->trace) { args[n++] = "-trace"; args[n++] = opts->trace; @@ -2815,7 +2816,16 @@ void android_emulation_setup( void ) D( "ping command: %s %s", comspec, args ); #else - int pid = fork(); + int pid; + + /* disable SIGALRM for the fork(), the periodic signal seems to + * interefere badly with the fork() implementation on Linux running + * under VMWare. + */ + BEGIN_NOSIGALRM + pid = fork(); + END_NOSIGALRM + if (pid == 0) { int fd = open("/dev/null", O_WRONLY); dup2(fd, 1); |