Vorapol Rinsatitnon 98c5110178 Update to go1.25.1
2025-09-08 17:34:02 +07:00
2025-08-26 15:11:19 +07:00
2025-08-13 21:50:03 +07:00
2025-08-13 21:50:03 +07:00
2025-08-13 21:50:03 +07:00
2025-08-13 21:50:03 +07:00
2025-08-26 15:29:17 +07:00
2025-09-08 17:34:02 +07:00
2025-08-13 21:50:03 +07:00
2025-02-14 12:42:07 +07:00
2025-08-13 21:50:03 +07:00
2024-09-21 23:49:08 +10:00
2025-02-14 12:42:07 +07:00
2024-09-21 23:49:08 +10:00
2025-08-26 16:03:58 +07:00
2025-09-08 17:34:02 +07:00

The Go Programming Language

go-legacy-win7 is a fork of the Go programming language that maintains support for Windows 7 and Windows Server 2008 R2, and allows for deprecated go get behaviour. This project aims to provide a stable Go environment for users who need to support legacy Windows systems or prefer the traditional Go workflow.

Gopher image Gopher image by Renee French, licensed under Creative Commons 4.0 Attribution licence.

Differences from Upstream Go

  1. Windows 7 and Windows Server 2008 R2 Support
    While the official Go project has dropped support for Windows 7 and Windows Server 2008 R2, this fork maintains compatibility with these legacy Windows systems.

    Tested on Windows7 RTM (build7600) — no updates required — through Windows1124H2

  2. Classic go get Behaviour
    This fork allows for the deprecated go get behaviour when GO111MODULE is set to "off" or "auto". This means:

    • In GOPATH/src, go get and go install can operate in GOPATH mode.
    • Outside of GOPATH/src, these commands can use module-aware mode when appropriate.
  3. Compatibility Notes
    Please be aware that some newer Go features may not be fully compatible with Windows 7 or Windows Server 2008 R2. We try to maintain as much functionality as possible, but some limitations may exist.

Changes in Each Release

Every release includes the following modifications:

  • Switched back to RtlGenRandom from ProcessPrng, which breaks Win7/2008R2 (reverted 693def1)
  • Added back LoadLibraryA fallback to load system libraries (reverted a17d959)
  • Added back sysSocket fallback for socket syscalls (reverted 7c1157f)
  • Added back Windows 7 console handle workaround (reverted 48042aa)
  • Added back 5ms sleep on Windows 7/8 in (*Process).Wait (reverted f0894a0)
  • Restored deprecated go get behavior for use outside modules (reverted de4d503)
  • Reverted to the previous removeall_noat variant for Windows (fixed issue #2)
  • Includes all improvements and bug fixes from the corresponding upstream Go release

The Windows binary provided here also supports Windows 7 and Windows Server 2008 R2

Download and Install

Binary Distributions

OS Architecture Filename SHA256 Hash
macOS Intel (amd64) go-legacy-win7-1.25.0-2.darwin_amd64.tar.gz 2f3d1089b1770f2ea5f803cb95841da7a08a7f4b8f5c8cbe8889372fd29ca7fa
macOS Apple (ARM64) go-legacy-win7-1.25.0-2.darwin_arm64.tar.gz f56f5bf1dc7e41aa7af16cdfa6829292ce46a1ed32b3d481528670a9fafd78d7
Linux x86 (386) go-legacy-win7-1.25.0-2.linux_386.tar.gz 6fceeb092e1f30661bf50f20a7c671e893b3cd6de5aa566a4a4ef672fd12c5b0
Linux x64 (amd64) go-legacy-win7-1.25.0-2.linux_amd64.tar.gz 21546d98267d4650096d9ec447480b516e0242bcec8de95a18b0f28ed53e393e
Linux ARM (32bit) go-legacy-win7-1.25.0-2.linux_arm.tar.gz 3b5465afa3cd011926b7168dd4abe5d75c55ef03ce165c7b88e07a79b3dca6cc
Linux ARM64 go-legacy-win7-1.25.0-2.linux_arm64.tar.gz b103720b046a88e826df741bc979daa3343c95d734f36b8d556897a5acda1c84
Windows x86 (386) go-legacy-win7-1.25.0-2.windows_386.zip 0f0a8f4e68ffbadb99ee60779efed148e629410208633ff59bfc2bf7de988aa8
Windows x64 (amd64) go-legacy-win7-1.25.0-2.windows_amd64.zip ce54380d04fc395ed0eeaec49ebcad049d92d4d274d23d1d192cb7e897ad4be2
Windows ARM64 go-legacy-win7-1.25.0-2.windows_arm64.zip 35fdd7d381377d34e019d66795574379b4da8634a5ce3d226e0d8d2a5d9d101c

Before you begin

To avoid PATH/GOROOT conflicts and mixed toolchains, uninstall any existing Go installation first.

Windows Installation

  1. Download the go-legacy-win7-<version>.windows_<arch>.zip file.
  2. Extract the ZIP to C:\ (or any preferred location). This will create a go-legacy-win7 folder.
  3. Add the following to your system environment variables:
    • Add C:\go-legacy-win7\bin (or your chosen path) to the system PATH.
    • Set GOROOT to C:\go-legacy-win7 (or your chosen path).
  4. Add the following to your user environment variables:
    • Add %USERPROFILE%\go\bin to the user PATH.
    • Set GOPATH to %USERPROFILE%\go.

macOS and Linux Installation

  1. Download the appropriate go-legacy-win7-<version>.<os>_<arch>.tar.gz file.

    • For macOS: go-legacy-win7-<version>.darwin_<arch>.tar.gz
    • For Linux: go-legacy-win7-<version>.linux_<arch>.tar.gz
  2. Extract the archive to /usr/local:

    sudo tar -C /usr/local -xzf go-legacy-win7-<version>.<os>_<arch>.tar.gz
    
  3. Add the following to your shell configuration file:

    • For bash, add to ~/.bash_profile or ~/.bashrc
    • For zsh, add to ~/.zshrc
    export GOROOT=/usr/local/go-legacy-win7
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
    
  4. Apply the changes:

    • For bash: source ~/.bash_profile or source ~/.bashrc
    • For zsh: source ~/.zshrc

    Note:

    • On macOS Catalina and later, zsh is the default shell.
    • On most Linux distributions, bash is the default shell.

After installation, verify the installation by opening a new terminal and running:

go version

Install From Source

To install from source, please follow the steps on the official website.

Contributing

Feedback and issue reports are welcome, and we encourage you to open pull requests to contribute to the project. We appreciate your help!

Note that the Go project uses the issue tracker for bug reports and proposals only. See https://go.dev/wiki/Questions for a list of places to ask questions about the Go language.

Description
Go programming language with Windows 7/Windows Server 2008 R2 support* plus classic go get behaviour
Readme BSD-3-Clause 44 MiB
Languages
Go 94.3%
Assembly 5.2%
C 0.2%
Shell 0.1%