1
0
mirror of https://github.com/golang/go synced 2024-11-12 07:50:23 -07:00
go/src
Russ Cox cd94cabad6 cmd/ld: external linking fixes for linux/386
The sticking point on 386 has been the "PC relative" relocations
used to point the garbage collection metadata at the type info.
These aren't in the code segment, and I don't trust that the linker
isn't doing something special that would be okay in code but
not when interpreting the pointers as data (for example, a PLT
jump table would be terrible).

Solve the problem in two steps:

1. Handle "PC relative" relocations within a section internally,
so that the external linker never sees them.

2. Move the gcdata and gcbss tables into the rodata section,
where the type information lives, so that the relocations can
be handled internally.

(To answer the obvious question, we make the gc->type
references relative so that they need not be relocated
individually when generating a shared object file.)

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/7629043
2013-03-08 20:22:38 -08:00
..
cmd cmd/ld: external linking fixes for linux/386 2013-03-08 20:22:38 -08:00
lib9 lib9: fix windows build (don't use runesmprint) 2013-03-07 14:38:49 -05:00
libbio
libmach libmach: fix amd64 pe handling 2013-03-06 15:14:07 -05:00
pkg text/template: revert minor change to Name method 2013-03-08 16:39:54 -08:00
all.bash build: restore PATH before "dist banner" 2012-06-06 20:19:16 +08:00
all.bat src/all.bat: fix banner 2012-09-20 00:58:34 +08:00
all.rc build: do not set GOBIN on Plan 9 2013-02-26 09:25:46 -08:00
clean.bash
clean.bat
clean.rc
make.bash make.bash,bat: add -tags gotypes to the build 2013-03-06 13:16:43 -08:00
make.bat make.bash,bat: add -tags gotypes to the build 2013-03-06 13:16:43 -08:00
Make.dist
make.rc build: do not set GOBIN on Plan 9 2013-02-26 09:25:46 -08:00
race.bash src: add race.bash 2013-01-28 21:05:25 +11:00
race.bat src: add race.bat 2013-02-03 00:49:37 +08:00
run.bash runtime/cgo: fix arm build, re-enable test 2013-03-01 16:24:23 -05:00
run.bat runtime,misc/cgo/test: disable broken tests so we can test the rest 2013-03-06 15:19:01 -05:00
run.rc build: do not set GOBIN on Plan 9 2013-02-26 09:25:46 -08:00
sudo.bash sudo.bash: diagnose when the go tool is not in $PATH 2012-11-15 10:42:39 -08:00