Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Go after 1.10 and support of Windows XP

Tags:

go

windows-xp

First of all: I know that Windows XP is end of life, insanely insecure, a big risk and that everyone still using it will be doomed for ever. Nonetheless I have to provide an application that can also run on Windows XP and I do so using Go. In 1.10 it was announced that XP will no longer be supported and 1.11 confirms this in the release notes:

As announced in the Go 1.10 release notes, Go 1.11 now requires OpenBSD 6.2 or later, macOS 10.10 Yosemite or later, or Windows 7 or later; support for previous versions of these operating systems has been removed.

I compiled my application with 1.11 and tried to execute it on a Windows XP SP3 virtual machine. It could be executed successfully ! Then I thought that the revoked support for Windows XP only applies to the development toolchain but even that can still be executed on Windows XP: enter image description here

As you can see the main go binary still runs on XP too. Is it already known when it will no longer be possible to run golang compiled exes on Windows XP because of technical limitations or if certain methods will fail because they can no longer work because of missing APIs on XP ?

like image 911
Marged Avatar asked Sep 02 '18 12:09

Marged


1 Answers

Issue #23380 is the relevant discussion.

In short:

Note that even if 1.10 is the last version to support XP, you'd get bugfix backports until 1.11 is out, and security backports until 1.12 is out. That means until January 2019 <…>


As to supporting Windows XP, there are both technical and non-technical reasons. Supporting a platform requires:

  • Someone who has access to it, and an incentive to work on it (either paid or unpaid).

    The most active Go-on-Windows developer, Alex Brainman, seems to have no interest in XP anymore.

  • This platform must be supported on autobuilders which are part of the Go release / QA process.

    An autobuilder must be supported by someone.

  • Bugs specific to a platform must be fixed and tested.

    For instance, that issue refers to #23375 which happens only on Windows XP (SP3). But even if a bug was specific to Windows in general—as opposed to Windows XP, a fix for it would have to be tested on XP anyway.

Hence, unfortunately, if there is no interest in supported Go on Windows XP coming from some "powerful entities"—such as corporations—the best you can do is to actually work towards still supporting this by yourself, FWIW.


Also note that even after the support is officially ended, you still might have success building newer Go releases from the source (which is reasonably simple since Go 1.5 as Go is now built using (an older release of) Go).

Hence a real show-stopper would be the Go team hitting some roadblock which would just require some kernel feature not present in Windows XP. A good example was some difficulty with SEH handling on Windows 2000 which eventually led to dropping support for that OS.

like image 96
kostix Avatar answered Sep 20 '22 21:09

kostix