summaryrefslogtreecommitdiff
path: root/src/cmd/6l/l.h
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-01-20 15:36:43 -0800
committerRuss Cox <rsc@golang.org>2009-01-20 15:36:43 -0800
commitbe323cab54e32b56ff7c58ce0828a486bb328d3f (patch)
treed32b7a674c46e005de789ff680eec98f5e729fca /src/cmd/6l/l.h
parent8498cd2641a58da02b38cab7a7ea9efb1064f243 (diff)
downloadgolang-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.h9
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);