From c6b3088e58ca052c7b3a68cf32ff1c2ba35995b7 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 19 Jun 2015 14:29:38 -0700 Subject: [PATCH] [Go] Add Makefile testing support for changes in upcoming Go 1.5 release. No effect on the SWIG program itself. --- Examples/Makefile.in | 10 +++++----- Examples/test-suite/go/Makefile.in | 6 +++--- configure.ac | 18 ++++++++++++++---- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/Examples/Makefile.in b/Examples/Makefile.in index 61f127569..6ba9dac12 100644 --- a/Examples/Makefile.in +++ b/Examples/Makefile.in @@ -1774,12 +1774,12 @@ GCCGOOPT = @GCCGOOPT@ GOVERSIONOPTION = @GOVERSIONOPTION@ GOSWIGARG = `if $(GOGCC) ; then echo -gccgo; fi` -GOCOMPILEARG = `if $(GO1) ; then echo tool $(GOC:c=g) ; fi` `if $(GO13) || $(GO15); then echo -pack ; fi` +GOCOMPILEARG = `if $(GO15); then echo tool compile; elif $(GO1) ; then echo tool $(GOC:c=g) ; fi` `if $(GO13) || $(GO15); then echo -pack ; fi` GOSRCS = $(INTERFACE:.i=.go) GOCSRCS = $(INTERFACE:.i=_gc.c) -GOLD = $(GOC:c=l) +GOLD = `if $(GO15); then echo link; else echo $(GOC:c=l); fi` GOTOOL = `if $(GO1) ; then echo go tool; fi` GOPACK = `if $(GO1) ; then echo go tool pack; else echo gopack; fi` @@ -1787,7 +1787,7 @@ GOPACKAGE = $(notdir $(INTERFACE:.i=.a)) GOPATHDIR = gopath/src/$(INTERFACE:.i=) -GOOBJEXT = $(GOC:c=) +GOOBJEXT = `if $(GO15); then echo o; else echo $(GOC:c=); fi` GOGCOBJS = $(GOSRCS:.go=.$(GOOBJEXT)) GOGCCOBJS = $(GOSRCS:.go=.@OBJEXT@) @@ -1863,7 +1863,7 @@ go: $(SRCDIR_SRCS) $(COMPILETOOL) $(GCCGO) -c -g $(SRCDIR)$(RUNME).go; \ $(COMPILETOOL) $(GCCGO) -o $(RUNME) $(RUNME).@OBJEXT@ $(dir $(INTERFACE))/$(GOPACKAGE); \ elif $(GO12) || $(GO13) || $(GO15); then \ - $(COMPILETOOL) $(GO) $(GOCOMPILEARG) $(SRCDIR)$(RUNME).go; \ + $(COMPILETOOL) $(GO) $(GOCOMPILEARG) -o $(RUNME).$(GOOBJEXT) $(SRCDIR)$(RUNME).go; \ $(COMPILETOOL) $(GOTOOL) $(GOLD) -linkmode external -extld "$(CC)" -extldflags "$(CFLAGS) $(LDFLAGS)" -o $(RUNME) $(RUNME).$(GOOBJEXT); \ else \ $(COMPILETOOL) $(GO) $(GOCOMPILEARG) $(SRCDIR)$(RUNME).go; \ @@ -1960,7 +1960,7 @@ go_cpp: $(SRCDIR_SRCS) $(COMPILETOOL) $(GCCGO) -g -c $(SRCDIR)$(RUNME).go; \ $(COMPILETOOL) $(GCCGO) -o $(RUNME) $(RUNME).@OBJEXT@ $(dir $(INTERFACE))/$(GOPACKAGE) -lstdc++; \ elif $(GO12) || $(GO13) || $(GO15); then \ - $(COMPILETOOL) $(GO) $(GOCOMPILEARG) $(SRCDIR)$(RUNME).go; \ + $(COMPILETOOL) $(GO) $(GOCOMPILEARG) -o $(RUNME).$(GOOBJEXT) $(SRCDIR)$(RUNME).go; \ $(COMPILETOOL) $(GOTOOL) $(GOLD) -linkmode external -extld "$(CXX)" -extldflags "$(CXXFLAGS) $(LDFLAGS)" -o $(RUNME) $(RUNME).$(GOOBJEXT); \ else \ $(COMPILETOOL) $(GO) $(GOCOMPILEARG) $(SRCDIR)$(RUNME).go; \ diff --git a/Examples/test-suite/go/Makefile.in b/Examples/test-suite/go/Makefile.in index 3c99a0879..63c18f2f4 100644 --- a/Examples/test-suite/go/Makefile.in +++ b/Examples/test-suite/go/Makefile.in @@ -13,12 +13,12 @@ GO15 = @GO15@ GOC = @GOC@ SCRIPTSUFFIX = _runme.go -GOCOMPILEARG = `if $(GO1) ; then echo tool $(GOC:c=g) ; fi` -GOLD = $(GOC:c=l) +GOCOMPILEARG = `if $(GO15); then echo tool compile; elif $(GO1); then echo tool $(GOC:c=g); fi` +GOLD = `if $(GO15); then echo link; else echo $(GOC:c=l); fi` GOTOOL = `if $(GO1) ; then echo go tool; fi` GOPACK = `if $(GO1) ; then echo go tool pack; else echo gopack; fi` -GOOBJEXT = $(GOC:c=) +GOOBJEXT = `if $(GO15); then echo o; else echo $(GOC:c=); fi` SO = @SO@ diff --git a/configure.ac b/configure.ac index ce596d29c..1eb338617 100644 --- a/configure.ac +++ b/configure.ac @@ -2426,8 +2426,15 @@ else if test -n "$GO" ; then GO1=true GOVERSIONOPTION=version - GOC=$(sh -c "$(go env) && echo \$GOCHAR")c go_version=$($GO $GOVERSIONOPTION | sed -e 's/go version //') + case "$go_version" in + go1 | go1.[[01234]]*) + GOC=$(sh -c "$(go env) && echo \$GOCHAR")c + ;; + *) + GOC=compile + ;; + esac AC_MSG_CHECKING([whether go version is too old]) case $go_version in go1.0* | go1 ) @@ -2437,11 +2444,14 @@ else ;; *) AC_MSG_RESULT([no]) - if test "$GOC" = "6c"; then + case "$(go env GOARCH)" in + amd64 | arm64 | ppc64*) GOOPT="-intgosize 64" - else + ;; + *) GOOPT="-intgosize 32" - fi + ;; + esac ;; esac case $go_version in