]> Cypherpunks repositories - gostls13.git/commit
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)
committerAustin Clements <austin@google.com>
Mon, 2 Nov 2020 00:46:44 +0000 (00:46 +0000)
commite463c28cc116fb1f40a4e203bddf93b6ef52c8d9
treec95ad0a618c0fd9882d4e2cc9914ec5cc7c73813
parent333d2010ec98aaea244b65b7bc4d7d80c71e21b1
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
Fixes #40795

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>
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]