diff options
| author | Russ Cox <rsc@golang.org> | 2012-02-07 16:46:33 -0500 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2012-02-07 16:46:33 -0500 |
| commit | e3755434b8790288a1d48ae3ebf9f4e49c881849 (patch) | |
| tree | 808cb138d20a3bcac7d95702de005cfeb2dee5e2 /src/cmd/ld/data.c | |
| parent | 2cc58e93d6f663af52bcdd4974d319ebe843f764 (diff) | |
| download | go-e3755434b8790288a1d48ae3ebf9f4e49c881849.tar.xz | |
5l, 6l, 8l: implement -X flag
R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/5643050
Diffstat (limited to 'src/cmd/ld/data.c')
| -rw-r--r-- | src/cmd/ld/data.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/cmd/ld/data.c b/src/cmd/ld/data.c index d34d23c770..b5f1b99312 100644 --- a/src/cmd/ld/data.c +++ b/src/cmd/ld/data.c @@ -589,6 +589,25 @@ strnput(char *s, int n) } } +void +addstrdata(char *name, char *value) +{ + Sym *s, *sp; + char *p; + + p = smprint("%s.str", name); + sp = lookup(p, 0); + free(p); + addstring(sp, value); + + s = lookup(name, 0); + s->dupok = 1; + addaddr(s, sp); + adduint32(s, strlen(value)); + if(PtrSize == 8) + adduint32(s, 0); // round struct to pointer width +} + vlong addstring(Sym *s, char *str) { |
