]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.15] cmd/link: avoid exporting all symbols on windows buildmode=pie
authorQuim Muntal <quimmuntal@gmail.com>
Thu, 22 Oct 2020 20:32:20 +0000 (22:32 +0200)
committerDmitri Shuralyov <dmitshur@golang.org>
Wed, 31 Mar 2021 21:39:47 +0000 (21:39 +0000)
commit82f9c6cac1bcc6bc80f17d1415ac3f62c0afa6c5
tree085a8f22ae2d11d1feb6c5c495b41786fccbaa1d
parent5055314a5749664ab66a24beed8158552e276959
[release-branch.go1.15] cmd/link: avoid exporting all symbols on windows buildmode=pie

Marking one functions with __declspec(dllexport) forces mingw to
create .reloc section without having to export all symbols.

See https://insights.sei.cmu.edu/cert/2018/08/when-aslr-is-not-really-aslr---the-case-of-incorrect-assumptions-and-bad-defaults.html for more info.

This change cuts 73kb of a "hello world" pie binary.

Updates #6853.
Updates #40795.
Fixes #43592.

Change-Id: I3cc57c3b64f61187550bc8751dfa085f106c8475
Reviewed-on: https://go-review.googlesource.com/c/go/+/264459
Trust: Alex Brainman <alex.brainman@gmail.com>
Run-TryBot: Alex Brainman <alex.brainman@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
Reviewed-by: Austin Clements <austin@google.com>
Reviewed-on: https://go-review.googlesource.com/c/go/+/300692
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: David Chase <drchase@google.com>
misc/cgo/testcshared/cshared_test.go
src/cmd/go/go_test.go
src/cmd/link/internal/ld/lib.go
src/runtime/cgo/gcc_windows_386.c
src/runtime/cgo/gcc_windows_amd64.c
src/runtime/cgo/libcgo_windows.h [new file with mode: 0644]