コマンドプロンプトの実行中のウインドウの左上のアイコンを差し替えるパッケージ:go-windows-consoleicon で

という警告が来ていたので、ライブラリをアップデートしようとしたのだけれども
> go1.20.14.exe get -u go: upgraded golang.org/x/sys v0.0.0-20210910150752-751e447fb3d0 => v0.31.0 > go1.20.14.exe mod tidy > go1.20.14.exe build golang.org/x/sys/windows: cannot compile Go 1.23 code
というエラーになってしまった。golang.org/x/sys の go.mod の履歴を確認したところ、2025年2月14日のコミット分(v0.31.0)から Go 1.23 が必須になったようだ。このパッケージは Windows 7, 8 でも動くことを保証したいので、1.20 でビルドしたいんだ。

Go言語本体の "syscall" パッケージを使うことも考えたが、"syscall" には NewLazyDLL はあっても、 NewLazySystemDLL がない。NewLazyDLL はDLLプリロード攻撃に対する脆弱性があるので、システム系のDLLに対しては使うべきではないと言われている。
仕方がないので、v0.30 の golang.org/x/sys を使うよりなさそうだ。
> go1.20.14.exe get golang.org/x/sys/windows@v0.30.0 go: upgraded golang.org/x/sys v0.0.0-20210910150752-751e447fb3d0 => v0.30.0 > go1.20.14.exe mod tidy > go1.20.14.exe build
こちらだとエラーはでない。だが、もうそろそろ限界が近くなってきたようだ。