summaryrefslogtreecommitdiff
path: root/src/cmd/6l/span.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-10-03 10:37:12 -0700
committerRuss Cox <rsc@golang.org>2009-10-03 10:37:12 -0700
commit1bb8f19f5e9016a9eb118b8aba2b5689b4505812 (patch)
tree7b69b0974f4999bac76d11abed2071a2dc9e97aa /src/cmd/6l/span.c
parent6b7539d607f26a1b1cd3eda71fc123ad4d52a133 (diff)
downloadgolang-1bb8f19f5e9016a9eb118b8aba2b5689b4505812.tar.gz
8c, 8l dynamic loading support.
better mach binaries. cgo working on darwin+linux amd64+386. eliminated context switches - pi is 30x faster. add libcgo to build. on snow leopard: - non-cgo binaries work; all tests pass. - cgo binaries work on amd64 but not 386. R=r DELTA=2031 (1316 added, 626 deleted, 89 changed) OCL=35264 CL=35304
Diffstat (limited to 'src/cmd/6l/span.c')
-rw-r--r--src/cmd/6l/span.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/cmd/6l/span.c b/src/cmd/6l/span.c
index f1eafff00..18bf8cc0c 100644
--- a/src/cmd/6l/span.c
+++ b/src/cmd/6l/span.c
@@ -237,6 +237,12 @@ asmsym(void)
putsymb(s->name, 'D', s->value+INITDAT, s->version, s->gotype);
continue;
+ case SMACHO:
+ if(!s->reachable)
+ continue;
+ putsymb(s->name, 'D', s->value+INITDAT+datsize+bsssize, s->version, s->gotype);
+ continue;
+
case SBSS:
if(!s->reachable)
continue;
@@ -715,6 +721,11 @@ vaddr(Adr *a)
v += INITTEXT; /* TO DO */
v += s->value;
break;
+ case SMACHO:
+ if(!s->reachable)
+ sysfatal("unreachable symbol in vaddr - %s", s->name);
+ v += INITDAT + datsize + s->value;
+ break;
default:
if(!s->reachable)
diag("unreachable symbol in vaddr - %s", s->name);