]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/ld: permit sym to be both cgo_export_static and cgo_export_dynamic
authorIan Lance Taylor <iant@golang.org>
Mon, 25 Mar 2013 22:37:54 +0000 (15:37 -0700)
committerIan Lance Taylor <iant@golang.org>
Mon, 25 Mar 2013 22:37:54 +0000 (15:37 -0700)
Fixes SWIG callbacks.  Previously crosscall2 was only
cgo_export_static, despite the use of two #pragma declarations
in runtime/cgo/callbacks.c.

R=golang-dev, bradfitz, rsc
CC=golang-dev
https://golang.org/cl/7817048

src/cmd/ld/go.c

index f933cbba3408bb85397c50bb3a4a9a3428d20110..fa2ec4e28da5c2fda2561bb9809f7ee9914a8edb 100644 (file)
@@ -508,10 +508,6 @@ loadcgo(char *file, char *pkg, char *p, int n)
                        }
 
                        if(s->cgoexport == 0) {
-                               if(strcmp(f[0], "cgo_export_static") == 0)
-                                       s->cgoexport |= CgoExportStatic;
-                               else
-                                       s->cgoexport |= CgoExportDynamic;
                                s->extname = remote;
                                if(ndynexp%32 == 0)
                                        dynexp = erealloc(dynexp, (ndynexp+32)*sizeof dynexp[0]);
@@ -521,6 +517,10 @@ loadcgo(char *file, char *pkg, char *p, int n)
                                nerrors++;
                                return;
                        }
+                       if(strcmp(f[0], "cgo_export_static") == 0)
+                               s->cgoexport |= CgoExportStatic;
+                       else
+                               s->cgoexport |= CgoExportDynamic;
                        if(local != f[1])
                                free(local);
                        continue;