This patchset disabels all use of SO_REUSEADDR on Windows. On Windows systems the default behavior is equivalent to SO_REUSEADDR on other operating systems. SO_REUSEADDR can still be set but results in undesired bahvior instead. It may even lead to situations were system behavior is unspecified. More information on this can be found at: http://msdn.microsoft.com/en-us/library/windows/desktop/ms740621.aspx
I originally encountered this issue when accidentally launching two QEMU instances with identical GDB ports at the same time. In which case QEMU won't fail as one might expect. I am sending this as RFC as I A) only checked that this fixes issues for the GDB server and B) am not sure if this is the correct format for this patchset. gdbstub: do not set SO_REUSEADDR on Windows net: do not set SO_REUSEADDR on Windows slirp: do not set SO_REUSEADDR on Windows util: do not set SO_REUSEADDR on Windows gdbstub.c | 2 ++ net/socket.c | 6 ++++++ slirp/misc.c | 2 ++ slirp/tcp_subr.c | 4 ++++ slirp/udp.c | 2 ++ util/qemu-sockets.c | 7 ++++++- 6 files changed, 22 insertions(+), 1 deletion(-)