Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,10 @@ cross-compilation may be necessary.
* `linux_armv6l`
* `linux_arm64`
* `windows_amd64`
* `darwin_amd64`
* `darwin_arm64`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are still preview, right?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


For detailed platform support information across different Go versions, see [SUPPORTED_PLATFORMS.md](SUPPORTED_PLATFORMS.md).

The following sections list the ways to get a build of the Microsoft fork of Go.

Expand Down
62 changes: 62 additions & 0 deletions SUPPORTED_PLATFORMS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Supported Platforms
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a particular reason to put this in the root dir rather than eng/doc?


This document outlines the platform support matrix for different versions of the Microsoft build of Go.

"Support" in this context means that Microsoft actively tests these platforms and will accept bug reports for them. Platforms outside this scope are provided support on a best-effort basis with no guarantees.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test in what sense? That the toolset works, or that it works at runtime? It seems like this doc is only be about runtime behavior (it lists Windows arm64, which we can target but we don't ship a prebuilt toolset for).

Do we really test Windows arm64 and Linux armv6l?

Does a listing on this page imply that there's a supported platform-provided crypto backend?


## Platform Support Matrix

| Platform | Architecture | Status | Notes |
|----------|-------------|--------|-------|
| Linux | amd64 | ✅ Supported | Azure Linux 3.0+, CBL-Mariner 2.0, Ubuntu 22.04+ |
| Linux | arm64 | ✅ Supported | Azure Linux 3.0+, CBL-Mariner 2.0, Ubuntu 22.04+ |
| Linux | armv6l | ✅ Supported | Modern Linux distributions |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unclear what Modern Linux distributions actually exist on armv6l, and would we actually support them? (All of them?)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one I'm not sure about, what was the original customer request for armv6l? Do we know what platform they required?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Forwarded you the original email thread.

| Windows | amd64 | ✅ Supported | Windows Server 2016+, Windows 10+ |
| Windows | arm64 | ✅ Supported | Windows Server 2016+, Windows 10+ |
| macOS (Darwin) | amd64 | 🔄 Preview | macOS 13+, not for production |
| macOS (Darwin) | arm64 | 🔄 Preview | macOS 13+, not for production |

## Platform Support History

### Go 1.24
- Added macOS (Darwin) amd64 and arm64 support in preview mode

### Go 1.23
- macOS (Darwin) platforms not available

Comment on lines +24 to +26
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So... they were available in 1.22? 😄

Suggested change
### Go 1.23
- macOS (Darwin) platforms not available

## Platform-Specific Notes

### Linux
- **linux-amd64**: Fully supported and tested. This is the primary development and testing platform.
- **linux-arm64**: Fully supported for ARM64-based systems.
- **linux-armv6l**: Supported for ARM v6 systems, including Raspberry Pi devices.
- **Minimum supported distributions**:
- Azure Linux 3.0 (recommended)
- Ubuntu 22.04 and later
- CBL-Mariner 2.0
Comment on lines +33 to +36
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this a duplicate of the table?

I'm not sure a table is necessary, if we want to provide more details with more platform-specific context anyway.

- **OpenSSL Requirements**:
- OpenSSL 1.1.1 (supported)
- OpenSSL 3.x (supported)
- Built-in providers are supported
- SymCrypt provider v1.6.0 or higher is supported

### Windows
- **windows-amd64**: Fully supported on Windows Server 2016 and later, Windows 10 and later.
- **Minimum supported versions**:
- Windows 10 (any version)
- Windows Server 2016 and later
- Windows Server Core 2016 and later

### macOS (Darwin) - Preview Status
- **darwin-amd64** and **darwin-arm64**: Available in preview mode.
- **Minimum supported versions**: macOS 11 (Big Sur) and later
- ⚠️ **Not recommended for production use** - these builds are experimental.
- `systemcrypto` support is also in preview status.
- Please [open an issue](https://github.com/microsoft/go/issues/new) if you encounter problems.

## Getting Help

If you need support for an additional platform or encounter issues with a supported platform:

1. Check existing issues with the [Area-Acquisition](https://github.com/microsoft/go/labels/Area-Acquisition) label
2. [File a new issue](https://github.com/microsoft/go/issues/new/choose) if your platform or issue isn't already covered
Loading