aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2011-01-06 16:37:05 -0800
committerIan Lance Taylor <iant@golang.org>2011-01-06 16:37:05 -0800
commit1b2d5b4c9389aecc56a4547a9770d0c73925b248 (patch)
tree441f61277c6b9d33c3e181142f039c09d74e7318
parent4cd31e8a28b84a467bbcbe74e3f2044872472fbc (diff)
downloadgo-1b2d5b4c9389aecc56a4547a9770d0c73925b248.tar.gz
go-1b2d5b4c9389aecc56a4547a9770d0c73925b248.zip
ld: Permit an ELF symbol to be exported in the dynamic symbol table.
This permits exporting crosscall2 from the runtime/cgo package. R=rsc CC=golang-dev https://golang.org/cl/3885041
-rw-r--r--src/cmd/ld/ldelf.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cmd/ld/ldelf.c b/src/cmd/ld/ldelf.c
index ccf6a412f7..44bbe68ee0 100644
--- a/src/cmd/ld/ldelf.c
+++ b/src/cmd/ld/ldelf.c
@@ -641,8 +641,10 @@ ldelf(Biobuf *f, char *pkg, int64 len, char *pn)
s->sub = sect->sym->sub;
sect->sym->sub = s;
s->type = sect->sym->type | SSUB;
- s->dynimplib = nil; // satisfy dynimport
- s->dynimpname = nil; // satisfy dynimport
+ if(!s->dynexport) {
+ s->dynimplib = nil; // satisfy dynimport
+ s->dynimpname = nil; // satisfy dynimport
+ }
s->value = sym.value;
s->size = sym.size;
s->outer = sect->sym;