diff options
author | Russ Cox <rsc@golang.org> | 2009-01-20 15:36:43 -0800 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2009-01-20 15:36:43 -0800 |
commit | be323cab54e32b56ff7c58ce0828a486bb328d3f (patch) | |
tree | d32b7a674c46e005de789ff680eec98f5e729fca /src/cmd/6l/l.h | |
parent | 8498cd2641a58da02b38cab7a7ea9efb1064f243 (diff) | |
download | golang-be323cab54e32b56ff7c58ce0828a486bb328d3f.tar.gz |
6l: do not link in objects from an archive just for init functions.
(makes go libraries behave more like c libraries.)
R=r
DELTA=85 (67 added, 12 deleted, 6 changed)
OCL=23133
CL=23139
Diffstat (limited to 'src/cmd/6l/l.h')
-rw-r--r-- | src/cmd/6l/l.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/cmd/6l/l.h b/src/cmd/6l/l.h index e6ce0e7b2..4a2c456f2 100644 --- a/src/cmd/6l/l.h +++ b/src/cmd/6l/l.h @@ -112,12 +112,14 @@ struct Sym short version; short become; short frame; + ushort file; uchar subtype; uchar dupok; - ushort file; + uchar reachable; vlong value; int32 sig; Sym* link; + Prog* text; }; struct Optab { @@ -146,6 +148,7 @@ enum SFILE, SCONST, SUNDEF, + SOPT, SIMPORT, SEXPORT, @@ -381,8 +384,10 @@ void ckoff(Sym*, int32); Prog* copyp(Prog*); double cputime(void); void datblk(int32, int32); +void ignoreoptfuncs(void); void definetypestrings(void); void definetypesigs(void); +void deadcode(void); void diag(char*, ...); void dodata(void); void doinit(void); @@ -415,6 +420,7 @@ void main(int, char*[]); void mkfwd(void); void* mysbrk(uint32); Prog* newdata(Sym*, int, int, int); +Prog* newtext(Prog*, Sym*); void nuxiinit(void); void objfile(char*); int opsize(Prog*); @@ -434,6 +440,7 @@ void xdefine(char*, int, vlong); void xfol(Prog*); void zaddr(Biobuf*, Adr*, Sym*[]); void zerosig(char*); +int isinitfunc(Sym*); void machseg(char*, vlong, vlong, vlong, vlong, uint32, uint32, uint32, uint32); void machsymseg(uint32, uint32); |