QEMU on OS X (macOS) hosts
While QEMU's main host platform is Linux, it is also supported on operating systems for Apple's Mac computers (known as OS X or macOS).
Please note that less developers work on QEMU for Mac hosts, so it might be less stable (but I don't think it is).
Some system emulations on Linux use KVM, a special emulation mode which claims to reach nearly native speed. KVM is mainly used for x86 (32 and 64 bit) emulation on x86 hosts running Linux. There exists a port of QEMU to Hypervisor.framework (a kernel module from Apple which is similar in spirit to KVM), but unfortunately it is not included in upstream QEMU.
qemu-system-i386 version 1.6.2
- CPU: PowerPC G5
- Operating System: Mac OS 10.4 or higher
Building QEMU for OS X
The system requirements are:
- OS X 10.5 or higher
- The clang compiler shipped with Xcode 4.2 or higher, or GCC 4.3 or higher
Additional build requirements are:
After downloading the QEMU source code, double-click it to expand it.
Then configure and make QEMU. The target-list option is used to build only the machine or machines you want. If you don't specify it, all machines would be built. Probably not what you want.
./configure --target-list=<list of machines here> make
This way doesn't require you to wait for the configure command to complete:
./configure --target-list=<list of machines here> && make
If your system has the 'say' command, you can use it to tell you when QEMU is done
./configure --target-list=i386-softmmu,ppc-softmmu && make ; say "I'm all done compiling QEMU"
You can use './configure --help' to see a full list of options.
Here are all the currently available machines:
If you have a recent version of Mac OS X (OS X 10.7 or better with Xcode 4.2 or better) we recommend building QEMU with the -default compiler provided by Apple, for your version of Mac OS X (which will be 'clang'). The configure script will automatically pick this.
Errors on old compilers
Note: If after the configure step you see a message like this:
ERROR: Your compiler does not support the __thread specifier for Thread-Local Storage (TLS). Please upgrade to a version that does.
You can have several versions of GCC on your system. To specify a certain version, use the --cc and --cxx options.
./configure --cxx=<path of your c++ compiler> --cc=<path of your c compiler> <other options>
If there are any issues with this web page, please let me know.