]> Cypherpunks repositories - gostls13.git/commitdiff
ld: fix 6l -d on Mac, diagnose invalid use of -d
authorRuss Cox <rsc@golang.org>
Mon, 25 Apr 2011 17:57:52 +0000 (13:57 -0400)
committerRuss Cox <rsc@golang.org>
Mon, 25 Apr 2011 17:57:52 +0000 (13:57 -0400)
R=r
CC=golang-dev
https://golang.org/cl/4430064

src/cmd/ld/go.c
src/cmd/ld/macho.c

index 055163d08931ef5f9af64d43f073a85386fbe295..b50b1a7a5704f711d4b0c100e97d87c1b9e3006c 100644 (file)
@@ -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++;
 }
 
index a1abbbc56ad70be10cc6f12a37747dbb51a05478..01349bb10a59668fe03f49072764b1df9b584c5b 100644 (file)
@@ -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;