{"id":441,"date":"2026-02-13T09:59:15","date_gmt":"2026-02-13T17:59:15","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/go\/?p=441"},"modified":"2026-02-13T09:59:15","modified_gmt":"2026-02-13T17:59:15","slug":"go-1-26-0-1-microsoft-build-now-available","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/go\/go-1-26-0-1-microsoft-build-now-available\/","title":{"rendered":"Go 1.26.0-1 Microsoft build now available"},"content":{"rendered":"<p>A new release of the Microsoft build of Go is now <a href=\"https:\/\/github.com\/microsoft\/go#download-and-install\">available for download<\/a>.\nFor more information about this release and the changes included, see the table below:<\/p>\n<table>\n<thead>\n<tr>\n<th>Microsoft Release<\/th>\n<th>Upstream Tag<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=\"https:\/\/github.com\/microsoft\/go\/releases\/tag\/v1.26.0-1\">v1.26.0-1<\/a><\/td>\n<td>go1.26.0 <a href=\"https:\/\/go.dev\/doc\/devel\/release#go1.26.0\">release notes<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>As of this release, Go 1.24 is no longer supported, per the <a href=\"https:\/\/go.dev\/doc\/devel\/release\">Go release policy<\/a>.<\/p>\n<h2>Changes in the Microsoft build of Go 1.26<\/h2>\n<p>The 1.26.0-1 release is a major version update, and it includes a few experimental features we are eager to get feedback on.\nSpecifically, if you get a chance, please try to:<\/p>\n<ul>\n<li>Disable cgo and use the <code>GOEXPERIMENT<\/code> <code>ms_nocgo_opensslcrypto<\/code>.<\/li>\n<li>Use the Microsoft build of Go version rather than the upstream version in your programs. Our version is formatted in a way that we expect to be parsed correctly by existing tools, but let us know if this causes any problems. To do this:\n<ul>\n<li>Use <code>-ldflags=\"-ms_upstreamversion=0\"<\/code> in your <code>go build<\/code> command. When you run <code>go version &lt;your-program&gt;<\/code>, you should see our toolset&#8217;s version.<\/li>\n<li>Add <code>ms_version=1<\/code> to the <code>GODEBUG<\/code> environment variable at runtime or configure this setting in your <code>go.mod<\/code> for compile time. This configures <code>runtime.Version()<\/code> to return the Microsoft build of Go version string.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>As always, please <a href=\"https:\/\/github.com\/microsoft\/go\/issues\/new\/choose\">let us know if you encounter a problem or have a question by filing an issue<\/a>.\nIf you have access to Microsoft internal sites, you can alternatively use one of the channels listed in <a href=\"https:\/\/eng.ms\/docs\/more\/languages-at-microsoft\/go\/articles\/support\">our internal support documentation<\/a> such as the <a href=\"https:\/\/teams.microsoft.com\/l\/team\/19%3A5ff9d842c25641cc9d2d25517d9aca70%40thread.skype\/conversations?groupId=53f277ec-635a-409d-b821-1f53c67f1cd9&amp;tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47\">Golang Friends group in Teams<\/a>.<\/p>\n<p>The following is a summary of the Microsoft build of Go 1.26 release notes, emphasizing important changes.\nTo see the canonical release notes doc, visit <a href=\"https:\/\/github.com\/microsoft\/go\/blob\/microsoft\/release-branch.go1.26\/docs\/go1.26.md\">the full go1.26 release notes Markdown file<\/a>.<\/p>\n<h2>Toolchain<\/h2>\n<p>The <code>GOCACHE<\/code> environment variable now defaults to <code>os.UserCacheDir()\/ms-go-build<\/code> instead of <code>os.UserCacheDir()\/go-build<\/code>.\nThis change removes the possibility of encountering cache conflicts between the Microsoft build of Go and other Go toolchains installed on the same machine.<\/p>\n<p>The <a href=\"https:\/\/pkg.go.dev\/debug\/buildinfo\">buildinfo<\/a> embedded at build time now includes Microsoft-specific version information in a new <code>microsoft_toolset_version<\/code> setting.\nThis allows all binaries built by the Microsoft build of Go to be easily identified, including the toolset&#8217;s binaries themselves.\nAlong the same lines, we introduced a new GODEBUG runtime setting called <code>ms_version<\/code> and build-time linker flag <code>-ms_upstreamversion<\/code> that allow you to use the Microsoft-specific version string in your programs.\nFor more information, see <a href=\"https:\/\/github.com\/microsoft\/go\/blob\/microsoft\/main\/eng\/doc\/AdditionalFeatures.md#version-string-changes-to-identify-the-microsoft-build-of-go\">the Additional Features document<\/a>.<\/p>\n<h2>Systemcrypto<\/h2>\n<h3>Configuration<\/h3>\n<p>You can disable <code>systemcrypto<\/code> at build time by setting the environment variable <code>MS_GO_NOSYSTEMCRYPTO<\/code> to <code>1<\/code>.\nIt&#8217;s now the recommended method for disabling systemcrypto when necessary.\nThis feature was backported to 1.25.2-1, so it&#8217;s now available in all supported versions of the Microsoft build of Go.<\/p>\n<h3>Backends<\/h3>\n<h4>Windows<\/h4>\n<p>Setting the FIPS preference to enabled will no longer cause a panic when the Windows FIPS policy is disabled.\nThe underlying crypto primitives on Windows are always FIPS compliant regardless of FIPS policy, so the panic is unnecessary and has been removed for compatibility with more scenarios.<\/p>\n<h4>OpenSSL<\/h4>\n<p>Linux binaries compliant with Microsoft internal cryptography policies can now be built <strong>without using cgo<\/strong> by setting <code>GOEXPERIMENT=ms_nocgo_opensslcrypto<\/code>.\n\ud83c\udf89\nThis much-anticipated feature removes a significant limitation the Microsoft internal cryptography policies have historically placed on compliant Go programs.\nFor more information, see <a href=\"https:\/\/github.com\/microsoft\/go\/blob\/microsoft\/main\/eng\/doc\/NocgoOpenSSL.md\">No-cgo OpenSSL Backend<\/a>.<\/p>\n<p>Improved support for the Fedora OpenSSL FIPS provider.\nSee <a href=\"https:\/\/github.com\/golang-fips\/openssl\/issues\/266\">golang-fips\/openssl#266<\/a>.<\/p>\n<h4>Darwin<\/h4>\n<p>The macOS crypto backend is no longer in preview and is now fully supported.\nIt is enabled by default for builds targeting macOS.<\/p>\n<p>Unlike preview versions of macOS backend support, using this backend doesn&#8217;t require cgo.<\/p>\n<h3>Supported algorithms<\/h3>\n<p>The systemcrypto backends now support many new cryptographic algorithms, curves, key sizes, and TLS groups and suites.\nSee <a href=\"https:\/\/github.com\/microsoft\/go\/blob\/microsoft\/release-branch.go1.26\/docs\/go1.26.md\">the full go1.26 release notes Markdown file<\/a> for the list.<\/p>\n<h2>TLS settings<\/h2>\n<p>The TLS curves X25519 and X25519MLKEM768 can be disabled using the GODEBUG setting <code>ms_tlsx25519=0<\/code>.\nThis setting may help comply with certain cryptographic policies.<\/p>\n<p>The TLS default settings are now aligned with Microsoft TLS internal policies.\nThis behavior can be disabled using the GODEBUG setting <code>ms_tlsprofile=off<\/code>.\nThe changes from standard Go TLS default settings are:<\/p>\n<ul>\n<li>TLS cipher suites using AES-256 are now preferred over those using AES-128.<\/li>\n<li>TLS cipher suites using CHACHA20_POLY1305 are no longer preferred over AES-GCM cipher suites when the client or server supports hardware acceleration for AES.<\/li>\n<li>TLS groups supported by the systemcrypto backends are now preferred over those that are not.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A new release of the Microsoft build of Go is now available for download.<\/p>\n","protected":false},"author":162502,"featured_media":433,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[4,5],"class_list":["post-441","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-go","tag-go","tag-release"],"acf":[],"blog_post_summary":"<p>A new release of the Microsoft build of Go is now available for download.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/posts\/441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/users\/162502"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/comments?post=441"}],"version-history":[{"count":1,"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/posts\/441\/revisions"}],"predecessor-version":[{"id":446,"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/posts\/441\/revisions\/446"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/media\/433"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/media?parent=441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/categories?post=441"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/tags?post=441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}