From c2c7ee2736b5032a5e35577b3da54030ed8d3f63 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 25 Apr 2011 13:57:52 -0400 Subject: [PATCH] ld: fix 6l -d on Mac, diagnose invalid use of -d R=r CC=golang-dev https://golang.org/cl/4430064 --- src/cmd/ld/go.c | 8 +++++++- src/cmd/ld/macho.c | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/cmd/ld/go.c b/src/cmd/ld/go.c index 055163d089..b50b1a7a57 100644 --- a/src/cmd/ld/go.c +++ b/src/cmd/ld/go.c @@ -445,6 +445,12 @@ loaddynimport(char *file, char *pkg, char *p, int n) *strchr(name, ' ') = 0; *strchr(def, ' ') = 0; + if(debug['d']) { + fprint(2, "%s: %s: cannot use dynamic imports with -d flag\n", argv0, file); + nerrors++; + return; + } + if(strcmp(name, "_") == 0 && strcmp(def, "_") == 0) { // allow #pragma dynimport _ _ "foo.so" // to force a link of foo.so. @@ -463,7 +469,7 @@ loaddynimport(char *file, char *pkg, char *p, int n) return; err: - fprint(2, "%s: invalid dynimport line: %s\n", argv0, p0); + fprint(2, "%s: %s: invalid dynimport line: %s\n", argv0, file, p0); nerrors++; } diff --git a/src/cmd/ld/macho.c b/src/cmd/ld/macho.c index a1abbbc56a..01349bb10a 100644 --- a/src/cmd/ld/macho.c +++ b/src/cmd/ld/macho.c @@ -349,11 +349,13 @@ asmbmacho(void) msect = newMachoSect(ms, "__data"); msect->addr = va+v; - msect->size = symaddr(lookup(".got", 0)) - msect->addr; msect->off = v; + msect->size = segdata.filelen; s = lookup(".got", 0); if(s->size > 0) { + msect->size = symaddr(s) - msect->addr; + msect = newMachoSect(ms, "__nl_symbol_ptr"); msect->addr = symaddr(s); msect->size = s->size; -- 2.50.0