diff options
Diffstat (limited to 'src/cmd/6l/pass.c')
| -rw-r--r-- | src/cmd/6l/pass.c | 6 | 
1 files changed, 5 insertions, 1 deletions
| diff --git a/src/cmd/6l/pass.c b/src/cmd/6l/pass.c index fcce23971..913ff728b 100644 --- a/src/cmd/6l/pass.c +++ b/src/cmd/6l/pass.c @@ -73,7 +73,7 @@ dodata(void)  		if(s->type != SBSS)  			continue;  		t = s->value; -		if(t == 0) { +		if(t == 0 && s->name[0] != '.') {  			diag("%s: no size", s->name);  			t = 1;  		} @@ -83,6 +83,7 @@ dodata(void)  			continue;  		if(t >= 8)  			datsize = rnd(datsize, 8); +		s->size = t;  		s->value = datsize;  		datsize += t;  		s->type = SDATA1; @@ -101,6 +102,7 @@ dodata(void)  		t = s->value;  		if(t >= 8)  			datsize = rnd(datsize, 8); +		s->size = t;  		s->value = datsize;  		datsize += t;  	} @@ -124,6 +126,7 @@ dodata(void)  			if(t > u)  				continue;  			u -= t; +			s->size = t;  			s->value = datsize;  			s->type = SDATA;  			datsize += t; @@ -148,6 +151,7 @@ dobss(void)  		if(s->type != SBSS)  			continue;  		t = s->value; +		s->size = t;  		if(t >= 8)  			bsssize = rnd(bsssize, 8);  		s->value = bsssize + datsize; | 
