From 5a529b61aa2174b4c44809a02c9735e0c725f2f3 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 25 Mar 2013 15:37:54 -0700 Subject: [PATCH] cmd/ld: permit sym to be both cgo_export_static and cgo_export_dynamic 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 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/cmd/ld/go.c b/src/cmd/ld/go.c index f933cbba34..fa2ec4e28d 100644 --- a/src/cmd/ld/go.c +++ b/src/cmd/ld/go.c @@ -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; -- 2.48.1