This file documents changes for QEMU releases 0.12 and earlier.
For changelog information for later releases, see
http://wiki.qemu-project.org/ChangeLog or look at the git history for
more detailed information.


version 0.12.0:

  - Update to SeaBIOS 0.5.0
  - e1000: fix device link status in Linux (Anthony Liguori)
  - monitor: fix QMP for balloon command (Luiz Capitulino)
  - QMP: Return an empty dict by default (Luiz Capitulino)
  - QMP: Only handle converted commands (Luiz Capitulino)
  - pci: support PCI based option rom loading (Gerd Hoffman/Anthony Liguori)
  - Fix backcompat for hotplug of SCSI controllers (Daniel P. Berrange)
  - fdc: fix migration from 0.11 (Juan Quintela)
  - vmware-vga: fix segv on cursor resize. (Dave Airlie)
  - vmware-vga: various fixes (Dave Airlie/Anthony Liguori)
  - qdev: improve property error reporting. (Gerd Hoffmann)
  - fix vga names in default_list (Gerd Hoffmann)
  - usb-host: check mon before using it. (Gerd Hoffmann)
  - usb-net: use qdev for -usbdevice (Gerd Hoffmann)
  - monitor: Catch printing to non-existent monitor (Luiz Capitulino)
  - Avoid permanently disabled QEMU monitor when UNIX migration fails (Daniel P. Berrange)
  - Fix loading of ELF multiboot kernels (Kevin Wolf)
  - qemu-io: Fix memory leak (Kevin Wolf)
  - Fix thinko in linuxboot.S (Paolo Bonzini)
  - target-i386: Fix evaluation of DR7 register (Jan Kiszka)
  - vnc: hextile: do not generate ForegroundSpecified and SubrectsColoured tiles (Anthony Liguori)
  - S390: Bail out without KVM (Alexander Graf)
  - S390: Don't tell guest we're updating config space (Alexander Graf)
  - target-s390: Fail on unknown instructions (Alexander Graf)
  - osdep: Fix runtime failure on older Linux kernels (Andre Przywara)
  - Fix a make -j race (Juergen Lock)
  - target-alpha: Fix generic ctz64. (Richard Henderson)
  - s390: Fix buggy assignment (Stefan Weil)
  - target-mips: fix user-mode emulation startup (Nathan Froyd)
  - target-i386: Update CPUID feature set for TCG (Andre Przywara)
  - s390: fix build on 32 bit host (Michael S. Tsirkin)
	
version 0.12.0-rc2:

  - v2: properly save kvm system time msr registers (Glauber Costa)
  - convert more monitor commands to qmp (Luiz Capitulino)
  - vnc: fix capslock tracking logic. (Gerd Hoffmann)
  - QemuOpts: allow larger option values. (Gerd Hoffmann)
  - scsi: fix drive hotplug. (Gerd Hoffmann)
  - pci: don't hw_error() when no slot is available. (Gerd Hoffmann)
  - pci: don't abort() when trying to hotplug with acpi off. (Gerd Hoffmann)
  - allow default devices to be implemented in config file (Gerd Hoffman)
  - vc: colorize chardev title line with blue background. (Gerd Hoffmann)
  - chardev: make chardevs specified in config file work. (Gerd Hoffmann)
  - qdev: also match bus name for global properties (Gerd Hoffmann)
  - qdev: add command line option to set global defaults for properties. (Gerd Hoffmann)
  - kvm: x86: Save/restore exception_index (Jan Kiszka)
  - qdev: Replace device names containing whitespace (Markus Armbruster)
  - fix rtc-td-hack on host without high-res timers (Gleb Natapov)
  - virtio: verify features on load (Michael S. Tsirkin)
  - vmware_vga: add rom file so that it boots. (Dave Airlie)
  - Do not abort on qemu_malloc(0) in production builds (Anthony Liguori)
  - Fix ARM userspace strex implementation. (Paul Brook)
  - qemu: delete rule target on error (Michael S. Tsirkin)
  - QMP: add human-readable description to error response (Markus Armbruster)
  - convert more monitor commands to QError (Markus Armbruster)
  - monitor: Fix double-prompt after "change vnc passwd BLA" (Markus Armbruster)
  - monitor: do_cont(): Don't ask for passwords (Luiz Capitulino)
  - monitor: Introduce 'block_passwd' command (Luiz Capitulino)
  - pci: interrupt disable bit support (Michael S. Tsirkin)
  - pci: interrupt status bit implementation (Michael S. Tsirkin)
  - pci: prepare irq code for interrupt state (Michael S. Tsirkin)
  - msix: function mask support (Michael S. Tsirkin)
  - msix: macro rename for function mask support (Michael S. Tsirkin)
  - cpuid: Fix multicore setup on Intel (Andre Przywara)
  - kvm: x86: Fix initial kvm_has_msr_star (Jan Kiszka)
  - Update OpenBIOS images to r640 (Aurelien Jarno)	

version 0.10.2:

  - fix savevm/loadvm (Anthony Liguori)
  - live migration: fix dirty tracking windows (Glauber Costa)
  - live migration: improve error propagation (Glauber Costa)
  - qcow2: fix image creation for > ~2TB images (Chris Wright)
  - hotplug: fix error handling for if= parameter (Eduardo Habkost)
  - qcow2: fix data corruption (Nolan Leake)
  - virtio: fix guest oops with 2.6.25 kernels (Rusty Russell)
  - SH4: add support for -kernel (Takashi Yoshii, Aurelien Jarno)
  - hotplug: fix closing of char devices (Jan Kiszka)
  - hotplug: remove incorrect check for device name (Eduardo Habkost)
  - enable -k on win32 (Herve Poussineau)
  - configure: use LANG=C for grep (Andreas Faerber)
  - fix VGA regression (malc)
	
version 0.10.1:

  - virtio-net: check right return size on sg list (Alex Williamson)
  - Make qemu_announce_self handle holes (live migration after hotplug)
    (Marcelo Tosatti)
  - Revert r6804-r6808 (qcow2 allocation info).  This series of changes added
    a high cost to startup for large qcow2 images (Anthony Liguori)
  - qemu-img: fix help message (Aurelien Jarno)
  - Fix build for non-default installs of SDL (Anthony Liguori)
  - Fix race condition in env->interrupt_request.  When using TCG and a dynticks
    host timer, this condition could cause TCG to get stuck in an infinite
    loop (Aurelien Jarno)
  - Fix reading encrypted hard disk passwords during early startup (Jan Kiszka)
  - Fix encrypted disk reporting in 'info block' (Jan Kiszka)
  - Fix console size with tiny displays (MusicPal) (Jan Kiszka)
  - Improve error handling in bdrv_open2 (Jan Kiszka)
  - Avoid leaking data in mux'ed character devices (Jan Kiszka)
  - Fix initial character device reset (no banner in monitor) (Jan Kiszka)
  - Fix cpuid KVM crash on i386 host (Lubomir Rintel)
  - Fix SLES10sp2 installation by adding ISTAT1 register to LSI SCSI emulation
    (Ryan Harper)

version 0.10.0:

  - TCG support (No longer requires GCC 3.x)
  - Kernel Virtual Machine acceleration support
  - BSD userspace emulation
  - Bluetooth emulation and host passthrough support
  - GDB XML register description support
  - Intel e1000 emulation
  - HPET emulation
  - VirtIO paravirtual device support
  - Marvell 88w8618 / MusicPal emulation
  - Nokia N-series tablet emulation / OMAP2 processor emulation
  - PCI hotplug support
  - Live migration and new save/restore formats
  - Curses display support
  - qemu-nbd utility to mount supported block formats
  - Altivec support in PPC emulation and new firmware (OpenBIOS)
  - Multiple VNC clients are now supported
  - TLS encryption is now supported in VNC
  - MIPS Magnum R4000 machine (Hervé Poussineau)
  - Braille support (Samuel Thibault)
  - Freecom MusicPal system emulation (Jan Kiszka)
  - OMAP242x and Nokia N800, N810 machines (Andrzej Zaborowski)
  - EsounD audio driver (Frederick Reeve)
  - Gravis Ultrasound GF1 sound card (Tibor "TS" Schütz)
  - Many, many, bug fixes and new features

version 0.9.1:

  - TFTP booting from host directory (Anthony Liguori, Erwan Velu)
  - Tap device emulation for Solaris (Sittichai Palanisong)
  - Monitor multiplexing to several I/O channels (Jason Wessel)
  - ds1225y nvram support (Herve Poussineau)
  - CPU model selection support (J. Mayer, Paul Brook, Herve Poussineau)
  - Several Sparc fixes (Aurelien Jarno, Blue Swirl, Robert Reif)
  - MIPS 64-bit FPU support (Thiemo Seufer)
  - Xscale PDA emulation (Andrzej Zaborowski)
  - ColdFire system emulation (Paul Brook)
  - Improved SH4 support (Magnus Damm)
  - MIPS64 support (Aurelien Jarno, Thiemo Seufer)
  - Preliminary Alpha guest support (J. Mayer)
  - Read-only support for Parallels disk images (Alex Beregszaszi)
  - SVM (x86 virtualization) support (Alexander Graf)
  - CRIS emulation (Edgar E. Iglesias)
  - SPARC32PLUS execution support (Blue Swirl)
  - MIPS mipssim pseudo machine (Thiemo Seufer)
  - Strace for Linux userland emulation (Stuart Anderson, Thayne Harbaugh)
  - OMAP310 MPU emulation plus Palm T|E machine (Andrzej Zaborowski)
  - ARM v6, v7, NEON SIMD and SMP emulation (Paul Brook/CodeSourcery)
  - Gumstix boards: connex and verdex emulation (Thorsten Zitterell)
  - Intel mainstone II board emulation (Armin Kuster)
  - VMware SVGA II graphics card support (Andrzej Zaborowski)

version 0.9.0:

  - Support for relative paths in backing files for disk images
  - Async file I/O API
  - New qcow2 disk image format
  - Support of multiple VM snapshots
  - Linux: specific host CDROM and floppy support
  - SMM support
  - Moved PCI init, MP table init and ACPI table init to Bochs BIOS
  - Support for MIPS32 Release 2 instruction set (Thiemo Seufer)
  - MIPS Malta system emulation (Aurelien Jarno, Stefan Weil)
  - Darwin userspace emulation (Pierre d'Herbemont)
  - m68k user support (Paul Brook)
  - several x86 and x86_64 emulation fixes
  - Mouse relative offset VNC extension (Anthony Liguori)
  - PXE boot support (Anthony Liguori)
  - '-daemonize' option (Anthony Liguori)

version 0.8.2:

  - ACPI support
  - PC VGA BIOS fixes
  - switch to OpenBios for SPARC targets (Blue Swirl)
  - VNC server fixes
  - MIPS FPU support (Marius Groeger)
  - Solaris/SPARC host support (Juergen Keil)
  - PPC breakpoints and single stepping (Jason Wessel)
  - USB updates (Paul Brook)
  - UDP/TCP/telnet character devices (Jason Wessel)
  - Windows sparse file support (Frediano Ziglio)
  - RTL8139 NIC TCP segmentation offloading (Igor Kovalenko)
  - PCNET NIC support (Antony T Curtis)
  - Support for variable frequency host CPUs
  - Workaround for win32 SMP hosts
  - Support for AMD Flash memories (Jocelyn Mayer)
  - Audio capture to WAV files support (malc)

version 0.8.1:

  - USB tablet support (Brad Campbell, Anthony Liguori)
  - win32 host serial support (Kazu)
  - PC speaker support (Joachim Henke)
  - IDE LBA48 support (Jens Axboe)
  - SSE3 support
  - Solaris port (Juergen Keil)
  - Preliminary SH4 target (Samuel Tardieu)
  - VNC server (Anthony Liguori)
  - slirp fixes (Ed Swierk et al.)
  - USB fixes
  - ARM Versatile Platform Baseboard emulation (Paul Brook)

version 0.8.0:

  - ARM system emulation: Arm Integrator/CP board with an arm1026ej-s
    cpu (Paul Brook)
  - SMP support
  - Mac OS X cocoa improvements (Mike Kronenberg)
  - Mac OS X CoreAudio driver (Mike Kronenberg)
  - DirectSound driver (malc)
  - ALSA audio driver (malc)
  - new audio options: '-soundhw' and '-audio-help' (malc)
  - ES1370 PCI audio device (malc)
  - Initial USB support
  - Linux host serial port access
  - Linux host low level parallel port access
  - New network emulation code supporting VLANs.
  - MIPS and MIPSel User Linux emulation
  - MIPS fixes to boot Linux (Daniel Jacobowitz)
  - NX bit support
  - Initial SPARC SMP support (Blue Swirl)
  - Major overhaul of the virtual FAT driver for read/write support
    (Johannes Schindelin)

version 0.7.2:

  - x86_64 fixes (Win2000 and Linux 2.6 boot in 32 bit)
  - merge self modifying code handling in dirty ram page mecanism.
  - MIPS fixes (Ralf Baechle)
  - better user net performances

version 0.7.1:

  - read-only Virtual FAT support (Johannes Schindelin)
  - Windows 2000 install disk full hack (original idea from Vladimir
    N. Oleynik)
  - VMDK disk image creation (Filip Navara)
  - SPARC64 progress (Blue Swirl)
  - initial MIPS support (Jocelyn mayer)
  - MIPS improvements (Ralf Baechle)
  - 64 bit fixes in user networking (initial patch by Gwenole Beauchesne)
  - IOAPIC support (Filip Navara)

version 0.7.0:

  - better BIOS translation and HDD geometry auto-detection
  - user mode networking bug fix
  - undocumented FPU ops support
  - Cirrus VGA: support for 1280x1024x[8,15,16] modes
  - 'pidfile' option
  - .dmg disk image format support (Johannes Schindelin)
  - keymaps support (initial patch by Johannes Schindelin)
  - big endian ARM support (Lennert Buytenhek)
  - added generic 64 bit target support
  - x86_64 target support
  - initial APIC support
  - MMX/SSE/SSE2/PNI support
  - PC parallel port support (Mark Jonckheere)
  - initial SPARC64 support (Blue Swirl)
  - SPARC target boots Linux (Blue Swirl)
  - armv5te user mode support (Paul Brook)
  - ARM VFP support (Paul Brook)
  - ARM "Angel" semihosting syscalls (Paul Brook)
  - user mode gdb stub support (Paul Brook)
  - Samba 3 support
  - initial Cocoa support (Pierre d'Herbemont)
  - generic FPU emulation code
  - Virtual PC read-only disk image support (Alex Beregszaszi)

version 0.6.1:

  - Mac OS X port (Pierre d'Herbemont)
  - Virtual console support
  - Better monitor line edition
  - New block device layer
  - New 'qcow' growable disk image support with AES encryption and
    transparent decompression
  - VMware 3 and 4 read-only disk image support (untested)
  - Support for up to 4 serial ports
  - TFTP server support (Magnus Damm)
  - Port redirection support in user mode networking
  - Support for not executable data sections
  - Compressed loop disk image support (Johannes Schindelin)
  - Level triggered IRQ fix (aka NE2000 PCI performance fix) (Steve
    Wormley)
  - Fixed Fedora Core 2 problems (now you can run qemu without any
    LD_ASSUME_KERNEL tricks on FC2)
  - DHCP fix for Windows (accept DHCPREQUEST alone)
  - SPARC system emulation (Blue Swirl)
  - Automatic Samba configuration for host file access from Windows.
  - '-loadvm' and '-full-screen' options
  - ne2000 savevm support (Johannes Schindelin)
  - Ctrl-Alt is now the default grab key. Ctrl-Alt-[0-9] switches to
    the virtual consoles.
  - BIOS floppy fix for NT4 (Mike Nordell, Derek Fawcus, Volker Ruppert)
  - Floppy fixes for NT4 and NT5 (Mike Nordell)
  - NT4 IDE fixes (Ben Pfaf, Mike Nordell)
  - SDL Audio support and SB16 fixes (malc)
  - ENTER instruction bug fix (initial patch by Stefan Kisdaroczi)
  - VGA font change fix
  - VGA read-only CRTC register fix

version 0.6.0:

  - minimalist FPU exception support (NetBSD FPU probe fix)
  - cr0.ET fix (Win95 boot)
  - *BSD port (Markus Niemisto)
  - I/O access fix (signaled by Mark Jonckheere)
  - IDE drives serial number fix (Mike Nordell)
  - int13 CDROM BIOS fix (aka Solaris x86 install CD fix)
  - int15, ah=86 BIOS fix (aka Solaris x86 hardware probe hang up fix)
  - BSR/BSF "undefined behaviour" fix
  - vmdk2raw: convert VMware disk images to raw images
  - PCI support
  - NE2K PCI support
  - dummy VGA PCI support
  - VGA font selection fix (Daniel Serpell)
  - PIC reset fix (Hidemi KAWAI)
  - PIC spurious irq support (aka Solaris install bug)
  - added '-localtime' option
  - Cirrus CL-GD54xx VGA support (initial patch by Makoto Suzuki (suzu))
  - APM and system shutdown support
  - Fixed system reset
  - Support for other PC BIOSes
  - Initial PowerMac hardware emulation
  - PowerMac/PREP OpenFirmware compatible BIOS (Jocelyn Mayer)
  - initial IDE BMDMA support (needed for Darwin x86)
  - Set the default memory size for PC emulation to 128 MB

version 0.5.5:

  - SDL full screen support (initial patch by malc)
  - VGA support on PowerPC PREP
  - VBE fixes (Matthew Mastracci)
  - PIT fixes (aka Win98 hardware probe and "VGA slowness" bug)
  - IDE master only fixes (aka Win98 CD-ROM probe bug)
  - ARM load/store half word fix (Ulrich Hecht)
  - FDC fixes for Win98

version 0.5.4:

  - qemu-fast fixes
  - BIOS area protection fix (aka EMM386.EXE fix) (Mike Nordell)
  - keyboard/mouse fix (Mike Nordell)
  - IDE fixes (Linux did not recognized slave drivers)
  - VM86 EIP masking fix (aka NT5 install fix) (Mike Nordell)
  - QEMU can now boot a PowerPC Linux kernel (Jocelyn Mayer)
  - User mode network stack
  - imul imm8 fix + 0x82 opcode support (Hidemi KAWAI)
  - precise self modifying code (aka BeOS install bug)

version 0.5.3:

  - added Bochs VESA VBE support
  - VGA memory map mode 3 access fix (OS/2 install fix)
  - IDE fixes (Jens Axboe)
  - CPU interrupt fixes
  - fixed various TLB invalidation cases (NT install)
  - fixed cr0.WP semantics (XP install)
  - direct chaining support for SPARC and PowerPC (faster)
  - ARM NWFPE support (initial patch by Ulrich Hecht)
  - added specific x86 to x86 translator (close to native performance
    in qemu-i386 and qemu-fast)
  - shm syscalls support (Paul McKerras)
  - added accurate CR0.MP/ME/TS emulation
  - fixed DMA memory write access (Win95 boot floppy fix)
  - graphical x86 linux loader
  - command line monitor
  - generic removable device support
  - support of CD-ROM change
  - multiple network interface support
  - initial x86-64 host support (Gwenole Beauchesne)
  - lret to outer privilege fix (OS/2 install fix)
  - task switch fixes (SkyOS boot)
  - VM save/restore commands
  - new timer API
  - more precise RTC emulation (periodic timers + time updates)
  - Win32 port (initial patch by Kazu)

version 0.5.2:

  - improved soft MMU speed (assembly functions and specializing)
  - improved multitasking speed by avoiding flushing TBs when
    switching tasks
  - improved qemu-fast speed
  - improved self modifying code handling (big performance gain in
    softmmu mode).
  - fixed IO checking
  - fixed CD-ROM detection (win98 install CD)
  - fixed addseg real mode bug (GRUB boot fix)
  - added ROM memory support (win98 boot)
  - fixed 'call Ev' in case of paging exception
  - updated the script 'qemu-binfmt-conf.sh' to use QEMU automagically
    when launching executables for the supported target CPUs.
  - PowerPC system emulation update (Jocelyn Mayer)
  - PC floppy emulation and DMA fixes (Jocelyn Mayer)
  - polled mode for PIC (Jocelyn Mayer)
  - fixed PTE dirty bit handling
  - fixed xadd same reg bug
  - fixed cmpxchg exception safeness
  - access to virtual memory in gdb stub
  - task gate and NT flag fixes
  - eflags optimisation fix for string operations

version 0.5.1:

  - float access fixes when using soft mmu
  - PC emulation support on PowerPC
  - A20 support
  - IDE CD-ROM emulation
  - ARM fixes (Ulrich Hecht)
  - SB16 emulation (malc)
  - IRET and INT fixes in VM86 mode with IOPL=3
  - Port I/Os use TSS io map
  - Full task switching/task gate support
  - added verr, verw, arpl, fcmovxx
  - PowerPC target support (Jocelyn Mayer)
  - Major SPARC target fixes (dynamically linked programs begin to work)

version 0.5.0:

  - full hardware level VGA emulation
  - graphical display with SDL
  - added PS/2 mouse and keyboard emulation
  - popw (%esp) fix
  - mov to/from segment data width fix
  - added real mode support
  - added Bochs BIOS and LGPL'ed VGA BIOS loader in qemu
  - m68k host port (Richard Zidlicky)
  - partial soft MMU support for memory mapped I/Os
  - multi-target build
  - fixed: no error code in hardware interrupts
  - fixed: pop ss, mov ss, x and sti disable hardware irqs for the next insn
  - correct single stepping through string operations
  - preliminary SPARC target support (Thomas M. Ogrisegg)
  - tun-fd option (Rusty Russell)
  - automatic IDE geometry detection
  - renamed 'vl' to qemu[-fast] and user qemu to qemu-{cpu}.
  - added man page
  - added full soft mmu mode to launch unpatched OSes.

version 0.4.3:

  - x86 exception fix in case of nop instruction.
  - gcc 3.2.2 bug workaround (RedHat 9 fix)
  - sparc and Alpha host fixes
  - many ARM target fixes: 'ls' and 'bash' can be launched.

version 0.4.2:

 - many exception handling fixes (can compile a Linux kernel inside vl)
 - IDE emulation support
 - initial GDB stub support
 - deferred update support for disk images (Rusty Russell)
 - accept User Mode Linux Copy On Write disk images
 - SMP kernels can at least be booted

version 0.4.1:

 - more accurate timer support in vl.
 - more reliable NE2000 probe in vl.
 - added 2.5.66 kernel in vl-test.
 - added VLTMPDIR environment variable in vl.

version 0.4:

 - initial support for ring 0 x86 processor emulation
 - fixed signal handling for correct dosemu DPMI emulation
 - fast x86 MMU emulation with mmap()
 - fixed popl (%esp) case
 - Linux kernel can be executed by QEMU with the 'vl' command.

version 0.3:

 - initial support for ARM emulation
 - added fnsave, frstor, fnstenv, fldenv FPU instructions
 - added FPU register save in signal emulation
 - initial ARM port
 - Sparc and Alpha ports work on the regression test
 - generic ioctl number conversion
 - fixed ioctl type conversion

version 0.2:

 - PowerPC disassembly and ELF symbols output (Rusty Russell)
 - flock support (Rusty Russell)
 - ugetrlimit support (Rusty Russell)
 - fstat64 fix (Rusty Russell)
 - initial Alpha port (Falk Hueffner)
 - initial IA64 port (Matt Wilson)
 - initial Sparc and Sparc64 port (David S. Miller)
 - added HLT instruction
 - LRET instruction fix.
 - added GPF generation for I/Os.
 - added INT3 and TF flag support.
 - SHL instruction C flag fix.
 - mmap emulation for host page size > 4KB
 - self-modifying code support
 - better VM86 support (dosemu works on non trivial programs)
 - precise exception support (EIP is computed correctly in most cases)
 - more precise LDT/GDT/IDT emulation
 - faster segment load in vm86 mode
 - direct chaining of basic blocks (faster emulation)

version 0.1.6:

 - automatic library search system. QEMU can now work with unpatched
   ELF dynamic loader and libc (Rusty Russell).
 - ISO C warning fixes (Alistair Strachan)
 - first self-virtualizable version (works only as long as the
   translation cache is not flushed)
 - RH9 fixes

version 0.1.5:

 - ppc64 support + personality() patch (Rusty Russell)
 - first Alpha CPU patches (Falk Hueffner)
 - removed bfd.h dependency
 - fixed shrd, shld, idivl and divl on PowerPC.
 - fixed buggy glibc PowerPC rint() function (test-i386 passes now on PowerPC).

version 0.1.4:

 - more accurate VM86 emulation (can launch small DOS 16 bit
   executables in wine).
 - fixed push/pop fs/gs
 - added iret instruction.
 - added times() syscall and SIOCATMARK ioctl.

version 0.1.3:

 - S390 support (Ulrich Weigand)
 - glibc 2.3.x compile fix (Ulrich Weigand)
 - socketcall endian fix (Ulrich Weigand)
 - struct sockaddr endian fix (Ulrich Weigand)
 - sendmsg/recvmsg endian fix (Ulrich Weigand)
 - execve endian fix (Ulrich Weigand)
 - fdset endian fix (Ulrich Weigand)
 - partial setsockopt syscall support (Ulrich Weigand)
 - more accurate pushf/popf emulation
 - first partial vm86() syscall support (can be used with runcom example).
 - added bound, cmpxchg8b, cpuid instructions
 - added 16 bit addressing support/override for string operations
 - poll() fix

version 0.1.2:

 - compile fixes
 - xlat instruction
 - xchg instruction memory lock
 - added simple vm86 example (not working with QEMU yet). The 54 byte
   DOS executable 'pi_10.com' program was released by Bertram
   Felgenhauer (more information at http://www.boo.net/~jasonp/pipage.html).

version 0.1.1:

 - glibc 2.2 compilation fixes
 - added -s and -L options
 - binary distribution of x86 glibc and wine
 - big endian fixes in ELF loader and getdents.

version 0.1:

 - initial public release.
