summaryrefslogtreecommitdiff
path: root/src/cmd/8l/asm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/8l/asm.c')
-rw-r--r--src/cmd/8l/asm.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/cmd/8l/asm.c b/src/cmd/8l/asm.c
index 1e760d89e..b9bd0dae9 100644
--- a/src/cmd/8l/asm.c
+++ b/src/cmd/8l/asm.c
@@ -307,6 +307,7 @@ elfsetupplt(void)
int
archreloc(Reloc *r, Sym *s, vlong *val)
{
+ USED(s);
switch(r->type) {
case D_CONST:
*val = r->add;
@@ -644,7 +645,7 @@ asmb(void)
{
int32 v, magic;
int a, dynsym;
- uint32 va, fo, w, symo, startva, machlink;
+ uint32 symo, startva, machlink;
ElfEhdr *eh;
ElfPhdr *ph, *pph;
ElfShdr *sh;
@@ -776,7 +777,6 @@ asmb(void)
lputb(0L);
lputb(~0L); /* gp value ?? */
break;
- lputl(0); /* x */
case Hunixcoff: /* unix coff */
/*
* file header
@@ -892,13 +892,10 @@ asmb(void)
debug['d'] = 1;
eh = getElfEhdr();
- fo = HEADR;
startva = INITTEXT - HEADR;
- va = startva + fo;
- w = segtext.filelen;
/* This null SHdr must appear before all others */
- sh = newElfShdr(elfstr[ElfStrEmpty]);
+ newElfShdr(elfstr[ElfStrEmpty]);
/* program header info */
pph = newElfPhdr();
@@ -1158,6 +1155,8 @@ genasmsym(void (*put)(Sym*, char*, int, vlong, vlong, int, Sym*))
for(h=0; h<NHASH; h++) {
for(s=hash[h]; s!=S; s=s->hash) {
+ if(s->hide)
+ continue;
switch(s->type&~SSUB) {
case SCONST:
case SRODATA:
@@ -1165,6 +1164,9 @@ genasmsym(void (*put)(Sym*, char*, int, vlong, vlong, int, Sym*))
case SELFDATA:
case SMACHO:
case SMACHOGOT:
+ case STYPE:
+ case SSTRING:
+ case SGOSTRING:
case SWINDOWS:
if(!s->reachable)
continue;
@@ -1209,6 +1211,6 @@ genasmsym(void (*put)(Sym*, char*, int, vlong, vlong, int, Sym*))
put(nil, a->asym->name, 'p', a->aoffset, 0, 0, a->gotype);
}
if(debug['v'] || debug['n'])
- Bprint(&bso, "symsize = %ud\n", symsize);
+ Bprint(&bso, "symsize = %uld\n", symsize);
Bflush(&bso);
}