diff options
| author | Michael Stapelberg <stapelberg@debian.org> | 2013-05-14 18:39:35 +0200 |
|---|---|---|
| committer | Michael Stapelberg <michael@stapelberg.de> | 2013-05-14 18:39:35 +0200 |
| commit | efcc50dfdc94c82ee0292bf71992ecb7c0123061 (patch) | |
| tree | 17dca99d1dc7fc4e9fe49c2cf6a99d337d4c039f /src/cmd/ld/ldmacho.c | |
| parent | 04b08da9af0c450d645ab7389d1467308cfc2db8 (diff) | |
| download | golang-efcc50dfdc94c82ee0292bf71992ecb7c0123061.tar.gz | |
Imported Upstream version 1.1upstream/1.1
Diffstat (limited to 'src/cmd/ld/ldmacho.c')
| -rw-r--r-- | src/cmd/ld/ldmacho.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/cmd/ld/ldmacho.c b/src/cmd/ld/ldmacho.c index 41852f17c..d384a5094 100644 --- a/src/cmd/ld/ldmacho.c +++ b/src/cmd/ld/ldmacho.c @@ -639,10 +639,8 @@ ldmacho(Biobuf *f, char *pkg, int64 len, char *pn) s->size = (sym+1)->value - sym->value; else s->size = sect->addr + sect->size - sym->value; - if(!s->dynexport) { + if(!(s->cgoexport & CgoExportDynamic)) s->dynimplib = nil; // satisfy dynimport - s->dynimpname = nil; // satisfy dynimport - } if(outer->type == STEXT) { Prog *p; @@ -806,9 +804,9 @@ ldmacho(Biobuf *f, char *pkg, int64 len, char *pn) // // [For future reference, see Darwin's /usr/include/mach-o/x86_64/reloc.h] secaddr = c->seg.sect[rel->symnum-1].addr; - rp->add = e->e32(s->p+rp->off) + rp->off + 4 - secaddr; + rp->add = (int32)e->e32(s->p+rp->off) + rp->off + 4 - secaddr; } else - rp->add = e->e32(s->p+rp->off); + rp->add = (int32)e->e32(s->p+rp->off); // For i386 Mach-O PC-relative, the addend is written such that // it *is* the PC being subtracted. Use that to make |
