Hosts/Mac: Difference between revisions

From QEMU
m (Improve built command info)
(Add example)
Line 40: Line 40:
If your system has the 'say' command, you can use it to tell you when QEMU is done
If your system has the 'say' command, you can use it to tell you when QEMU is done


   ./configure --target-list=<list of machines here> && make ; say "I'm all done compiling QEMU"
   ./configure --target-list=i386-softmmu,ppc-softmmu && make ; say "I'm all done compiling QEMU"


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.
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.

Revision as of 16:59, 23 November 2016

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.

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:

You may find it easiest to get these from a third-party packager such as Homebrew, Macports, or Fink.

After downloading the QEMU source code, double-click it to expand it.

Then configure and make QEMU:

./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"

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 may have to install your own version of gcc. You can build it from source (expect that to take several hours) or obtain third party binaries of gcc available from Homebrew or MacPorts.

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>