]> Cypherpunks repositories - gostls13.git/commit
liblink, runtime: preliminary support for plan9/amd64
authorAram Hăvărneanu <aram@mgk.ro>
Wed, 2 Jul 2014 11:04:10 +0000 (21:04 +1000)
committerDave Cheney <dave@cheney.net>
Wed, 2 Jul 2014 11:04:10 +0000 (21:04 +1000)
commitdecd810945e22642df5db99a616af3cc5d53bf8d
tree6e00d4d3dd2f395c7ec89bf945481c81206325a2
parentd7b678b2ca26928390078c29e3f71868e867a182
liblink, runtime: preliminary support for plan9/amd64

A TLS slot is reserved by _rt0_.*_plan9 as an automatic and
its address (which is static on Plan 9) is saved in the
global _privates symbol. The startup linkage now is exactly
like that from Plan 9 libc, and the way we access g is
exactly as if we'd have used privalloc(2).

Aside from making the code more standard, this change
drastically simplifies it, both for 386 and for amd64, and
makes the Plan 9 code in liblink common for both 386 and
amd64.

The amd64 runtime code was cleared of nxm assumptions, and
now runs on the standard Plan 9 kernel.

Note handling fixes will follow in a separate CL.

LGTM=rsc
R=golang-codereviews, rsc, bradfitz, dave
CC=0intro, ality, golang-codereviews, jas, minux.ma, mischief
https://golang.org/cl/101510049
15 files changed:
include/link.h
src/liblink/asm6.c
src/liblink/asm8.c
src/liblink/obj6.c
src/liblink/obj8.c
src/liblink/sym.c
src/pkg/runtime/arch_amd64.h
src/pkg/runtime/defs_plan9_amd64.h
src/pkg/runtime/memclr_plan9_amd64.s
src/pkg/runtime/os_plan9.c
src/pkg/runtime/rt0_plan9_386.s
src/pkg/runtime/rt0_plan9_amd64.s
src/pkg/runtime/sys_plan9_386.s
src/pkg/runtime/sys_plan9_amd64.s
src/pkg/runtime/time_plan9_386.c [deleted file]