On Tue, Jun 6, 2017 at 3:46 AM, Joost Shao <joostshao1...@gmail.com> wrote:
>
> i know that gccgo vendor not support.

To the best of my knowledge, gccgo does support vendoring.  It was
fixed by https://golang.org/cl/39590 which was committed to GCC in SVN
revision 246864 which is included in the GCC 7 release.

Which version of the go tool are you using?  The one that comes with
gccgo, or the one that comes with the gc toolchain?  The go tool that
comes with the gc toolchain version 1.8.x does not support vendoring
with gccgo.  The patch to the gc toolchain is
https://golang.org/cl/40432, and will be in the upcoming Go 1.9
release.

Ian

> hi, Dave, but even gopath also not supported ?
>
> and what's  the road map?
>
> 在 2017年6月6日星期二 UTC+8下午6:38:32,Dave Cheney写道:
>>
>> I'd say gccgo does not support vendoring.
>>
>>
>> On Tue, 6 Jun 2017, 20:35 Joost Shao <joosts...@gmail.com> wrote:
>>>
>>>
>>>
>>> 在 2017年6月6日星期二 UTC+8下午6:35:23,Joost Shao写道:
>>>>
>>>>
>>>>
>>>> 在 2017年6月6日星期二 UTC+8下午6:34:02,Joost Shao写道:
>>>>>
>>>>> thank you first, i have been stuck by gccgo-7.x for gopath and govendor
>>>>> many days.
>>>>>
>>>>> gopath is ok, like below.
>>>>>
>>>>> ubuntu@ubuntu-zesty:~/go/src/github.com/valyala$ tree
>>>>> .
>>>>> └── fasttemplate
>>>>>     ├── example_test.go
>>>>>     ├── LICENSE
>>>>>     ├── README.md
>>>>>     ├── template.go
>>>>>     ├── template_test.go
>>>>>     ├── template_timing_test.go
>>>>>     ├── unsafe_gae.go
>>>>>     ├── unsafe.go
>>>>>     └── vendor
>>>>>         └── github.com
>>>>>             └── valyala
>>>>>                 └── bytebufferpool
>>>>>                     ├── bytebuffer_example_test.go
>>>>>                     ├── bytebuffer.go
>>>>>                     ├── bytebuffer_test.go
>>>>>                     ├── bytebuffer_timing_test.go
>>>>>                     ├── doc.go
>>>>>                     ├── LICENSE
>>>>>                     ├── pool.go
>>>>>                     ├── pool_test.go
>>>>>                     └── README.md
>>>>>
>>>>> 5 directories, 17 files
>>>>>
>>>>>
>>>>>
>>>>> ubuntu@ubuntu-zesty:~$ go env
>>>>> GOARCH="amd64"
>>>>> GOBIN=""
>>>>> GOEXE=""
>>>>> GOHOSTARCH="amd64"
>>>>> GOHOSTOS="linux"
>>>>> GOOS="linux"
>>>>> GOPATH="/home/ubuntu/go"
>>>>> GORACE=""
>>>>> GOROOT="/usr/lib/go-1.7"
>>>>> GOTOOLDIR="/usr/lib/go-1.7/pkg/tool/linux_amd64"
>>>>> CC="gcc"
>>>>> GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0
>>>>> -fdebug-prefix-map=/tmp/go-build060029979=/tmp/go-build
>>>>> -gno-record-gcc-switches"
>>>>> CXX="g++"
>>>>> CGO_ENABLED="1"
>>>>>
>>>>>
>>>>> content of main.go
>>>>> ubuntu@ubuntu-zesty:~$ cat server.go
>>>>> package main
>>>>>
>>>>> import (
>>>>> "net/http"
>>>>> "github.com/labstack/echo"
>>>>> )
>>>>>
>>>>> func main() {
>>>>> e := echo.New()
>>>>> e.GET("/", func(c echo.Context) error {
>>>>> return c.String(http.StatusOK, "Hello, World!")
>>>>> })
>>>>> e.Logger.Fatal(e.Start(":1323"))
>>>>> }
>>>>>
>>>>> by gc compile , the result is OK.
>>>>> ubuntu@ubuntu-zesty:~$ go build -x -compiler gc server.go
>>>>> WORK=/tmp/go-build058937444
>>>>> mkdir -p $WORK/command-line-arguments/_obj/
>>>>> mkdir -p $WORK/command-line-arguments/_obj/exe/
>>>>> cd /home/ubuntu
>>>>> /usr/lib/go-1.7/pkg/tool/linux_amd64/compile -o
>>>>> $WORK/command-line-arguments.a -trimpath $WORK -p main -complete -buildid
>>>>> 10569227a53a83251f5b0ba912d076c91ac34779 -D _/home/ubuntu -I $WORK -I
>>>>> ./go/pkg/linux_amd64 -pack ./server.go
>>>>> cd .
>>>>> /usr/lib/go-1.7/pkg/tool/linux_amd64/link -o
>>>>> $WORK/command-line-arguments/_obj/exe/a.out -L $WORK -L
>>>>> /home/ubuntu/go/pkg/linux_amd64 -extld=gcc -buildmode=exe
>>>>> -buildid=10569227a53a83251f5b0ba912d076c91ac34779
>>>>> $WORK/command-line-arguments.a
>>>>> mv $WORK/command-line-arguments/_obj/exe/a.out server
>>>>>
>>>>> but by gccgo-7.0
>>>>> ubuntu@ubuntu-zesty:~$ go build -x -compiler gccgo server.go
>>>>> WORK=/tmp/go-build118667055
>>>>> mkdir -p $WORK/github.com/mattn/go-isatty/_obj/
>>>>> mkdir -p $WORK/github.com/mattn/
>>>>> cd /home/ubuntu/go/src/github.com/mattn/go-isatty
>>>>> /usr/bin/gccgo -I $WORK -c -g -m64
>>>>> -fgo-pkgpath=github.com/mattn/go-isatty
>>>>> -fgo-relative-import-path=_/home/ubuntu/go/src/github.com/mattn/go-isatty 
>>>>> -o
>>>>> $WORK/github.com/mattn/go-isatty/_obj/_go_.o ./doc.go ./isatty_linux.go
>>>>> ./isatty_others.go
>>>>> mkdir -p $WORK/github.com/mattn/go-colorable/_obj/
>>>>> cd /home/ubuntu/go/src/github.com/mattn/go-colorable
>>>>> /usr/bin/gccgo -I $WORK -c -g -m64
>>>>> -fgo-pkgpath=github.com/mattn/go-colorable
>>>>> -fgo-relative-import-path=_/home/ubuntu/go/src/github.com/mattn/go-colorable
>>>>> -o $WORK/github.com/mattn/go-colorable/_obj/_go_.o ./colorable_others.go
>>>>> ./noncolorable.go
>>>>> ar rc $WORK/github.com/mattn/libgo-colorable.a
>>>>> $WORK/github.com/mattn/go-colorable/_obj/_go_.o
>>>>> mkdir -p
>>>>> $WORK/github.com/valyala/fasttemplate/vendor/github.com/valyala/bytebufferpool/_obj/
>>>>> mkdir -p
>>>>> $WORK/github.com/valyala/fasttemplate/vendor/github.com/valyala/
>>>>> cd
>>>>> /home/ubuntu/go/src/github.com/valyala/fasttemplate/vendor/github.com/valyala/bytebufferpool
>>>>> /usr/bin/gccgo -I $WORK -c -g -m64
>>>>> -fgo-pkgpath=github.com/valyala/fasttemplate/vendor/github.com/valyala/bytebufferpool
>>>>> -fgo-relative-import-path=_/home/ubuntu/go/src/github.com/valyala/fasttemplate/vendor/github.com/valyala/bytebufferpool
>>>>> -o
>>>>> $WORK/github.com/valyala/fasttemplate/vendor/github.com/valyala/bytebufferpool/_obj/_go_.o
>>>>> ./bytebuffer.go ./doc.go ./pool.go
>>>>> cd /home/ubuntu/go/src/github.com/mattn/go-isatty
>>>>> ar rc $WORK/github.com/mattn/libgo-isatty.a
>>>>> $WORK/github.com/mattn/go-isatty/_obj/_go_.o
>>>>> mkdir -p $WORK/github.com/labstack/gommon/color/_obj/
>>>>> mkdir -p $WORK/github.com/labstack/gommon/
>>>>> cd /home/ubuntu/go/src/github.com/labstack/gommon/color
>>>>> /usr/bin/gccgo -I $WORK -I /home/ubuntu/go/pkg/gccgo_linux_amd64 -c -g
>>>>> -m64 -fgo-pkgpath=github.com/labstack/gommon/color
>>>>> -fgo-relative-import-path=_/home/ubuntu/go/src/github.com/labstack/gommon/color
>>>>> -o $WORK/github.com/labstack/gommon/color/_obj/_go_.o ./color.go
>>>>> cd
>>>>> /home/ubuntu/go/src/github.com/valyala/fasttemplate/vendor/github.com/valyala/bytebufferpool
>>>>> ar rc
>>>>> $WORK/github.com/valyala/fasttemplate/vendor/github.com/valyala/libbytebufferpool.a
>>>>> $WORK/github.com/valyala/fasttemplate/vendor/github.com/valyala/bytebufferpool/_obj/_go_.o
>>>>> mkdir -p $WORK/github.com/valyala/fasttemplate/_obj/
>>>>> mkdir -p $WORK/github.com/valyala/
>>>>> cd /home/ubuntu/go/src/github.com/valyala/fasttemplate
>>>>> /usr/bin/gccgo -I $WORK -I /home/ubuntu/go/pkg/gccgo_linux_amd64 -c -g
>>>>> -m64 -fgo-pkgpath=github.com/valyala/fasttemplate
>>>>> -fgo-relative-import-path=_/home/ubuntu/go/src/github.com/valyala/fasttemplate
>>>>> -o $WORK/github.com/valyala/fasttemplate/_obj/_go_.o ./template.go
>>>>> ./unsafe.go
>>>>> # github.com/valyala/fasttemplate
>>>>> go/src/github.com/valyala/fasttemplate/template.go:12:35: error: import
>>>>> file ‘github.com/valyala/bytebufferpool’ not found
>>>>>   "github.com/valyala/bytebufferpool"
>>>>>                                    ^
>>>>> go/src/github.com/valyala/fasttemplate/template.go:99:34: error:
>>>>> expected package
>>>>>  var byteBufferPool bytebufferpool.Pool
>>>>>                                   ^
>>>>> go/src/github.com/valyala/fasttemplate/template.go:124:31: error:
>>>>> expected package
>>>>>   byteBufferPool bytebufferpool.Pool
>>>>>                                ^
>>>>> go/src/github.com/valyala/fasttemplate/template.go:140:2: error: return
>>>>> with value in function with no return type
>>>>>   return t
>>>>>   ^
>>>>> go/src/github.com/valyala/fasttemplate/template.go:152:3: error: return
>>>>> with value in function with no return type
>>>>>    return nil, err
>>>>>    ^
>>>>> go/src/github.com/valyala/fasttemplate/template.go:154:2: error: return
>>>>> with value in function with no return type
>>>>>   return &t, nil
>>>>>   ^
>>>>> go/src/github.com/valyala/fasttemplate/template.go:267:2: error: not
>>>>> enough arguments to return
>>>>>   return t.ExecuteFunc(w, func(w io.Writer, tag string) (int, error) {
>>>>> return stdTagFunc(w, tag, m) })
>>>>>   ^
>>>>> mkdir -p $WORK/golang.org/x/crypto/acme/_obj/
>>>>> mkdir -p $WORK/golang.org/x/crypto/
>>>>> cd /home/ubuntu/go/src/golang.org/x/crypto/acme
>>>>> /usr/bin/gccgo -I $WORK -c -g -m64
>>>>> -fgo-pkgpath=golang.org/x/crypto/acme
>>>>> -fgo-relative-import-path=_/home/ubuntu/go/src/golang.org/x/crypto/acme -o
>>>>> $WORK/golang.org/x/crypto/acme/_obj/_go_.o ./acme.go ./jws.go ./types.go
>>>>> cd /home/ubuntu/go/src/github.com/labstack/gommon/color
>>>>> ar rc $WORK/github.com/labstack/gommon/libcolor.a
>>>>> $WORK/github.com/labstack/gommon/color/_obj/_go_.o
>>>>> cd /home/ubuntu/go/src/golang.org/x/crypto/acme
>>>>> ar rc $WORK/golang.org/x/crypto/libacme.a
>>>>> $WORK/golang.org/x/crypto/acme/_obj/_go_.o
>>>>> mkdir -p $WORK/golang.org/x/crypto/acme/autocert/_obj/
>>>>> mkdir -p $WORK/golang.org/x/crypto/acme/
>>>>> cd /home/ubuntu/go/src/golang.org/x/crypto/acme/autocert
>>>>> /usr/bin/gccgo -I $WORK -I /home/ubuntu/go/pkg/gccgo_linux_amd64 -c -g
>>>>> -m64 -fgo-pkgpath=golang.org/x/crypto/acme/autocert
>>>>> -fgo-relative-import-path=_/home/ubuntu/go/src/golang.org/x/crypto/acme/autocert
>>>>> -o $WORK/golang.org/x/crypto/acme/autocert/_obj/_go_.o ./autocert.go
>>>>> ./cache.go ./listener.go ./renewal.go
>>>>> ar rc $WORK/golang.org/x/crypto/acme/libautocert.a
>>>>> $WORK/golang.org/x/crypto/acme/autocert/_obj/_go_.o
>>>>>
>>>>> which confused me is what is "gccgo_linux_amd64" directory, i install
>>>>> gccgo-7.x with ubuntu ppa, i confused.
>>>>>
>>>>> 在 2017年6月6日星期二 UTC+8下午3:28:37,Dave Cheney写道:
>>>>>>
>>>>>> Does the missing package exist in your gopath?
>>>>>>
>>>>>>
>>>>>> On Tue, 6 Jun 2017, 17:24 Joost Shao <joosts...@gmail.com> wrote:
>>>>>>>
>>>>>>> what about now ? i used gccgo-7 to compile framework echo, but failed
>>>>>>> .
>>>>>>>
>>>>>>> error is blow:
>>>>>>>
>>>>>>> ubuntu@ubuntu-zesty:~$ gccgo-7 -v
>>>>>>> Using built-in specs.
>>>>>>> COLLECT_GCC=gccgo-7
>>>>>>> COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
>>>>>>> OFFLOAD_TARGET_NAMES=nvptx-none
>>>>>>> OFFLOAD_TARGET_DEFAULT=1
>>>>>>> Target: x86_64-linux-gnu
>>>>>>> Configured with: ../src/configure -v --with-pkgversion='Ubuntu
>>>>>>> 7-20170407-0ubuntu2' 
>>>>>>> --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs
>>>>>>> --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ 
>>>>>>> --prefix=/usr
>>>>>>> --with-gcc-major-version-only --program-suffix=-7
>>>>>>> --program-prefix=x86_64-linux-gnu- --enable-shared 
>>>>>>> --enable-linker-build-id
>>>>>>> --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
>>>>>>> --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
>>>>>>> --enable-libstdcxx-debug --enable-libstdcxx-time=yes
>>>>>>> --with-default-libstdcxx-abi=new --enable-gnu-unique-object
>>>>>>> --disable-vtable-verify --enable-libmpx --enable-plugin 
>>>>>>> --enable-default-pie
>>>>>>> --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto
>>>>>>> --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64
>>>>>>> --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic
>>>>>>> --enable-offload-targets=nvptx-none --without-cuda-driver
>>>>>>> --enable-checking=release --build=x86_64-linux-gnu 
>>>>>>> --host=x86_64-linux-gnu
>>>>>>> --target=x86_64-linux-gnu
>>>>>>> Thread model: posix
>>>>>>> gcc version 7.0.1 20170407 (experimental) [trunk revision 246759]
>>>>>>> (Ubuntu 7-20170407-0ubuntu2)
>>>>>>>
>>>>>>>
>>>>>>> ubuntu@ubuntu-zesty:~$ go build -compiler gccgo  server.go
>>>>>>> # github.com/valyala/fasttemplate
>>>>>>> go/src/github.com/valyala/fasttemplate/template.go:12:35: error:
>>>>>>> import file ‘github.com/valyala/bytebufferpool’ not found
>>>>>>>   "github.com/valyala/bytebufferpool"
>>>>>>>                                    ^
>>>>>>> go/src/github.com/valyala/fasttemplate/template.go:99:34: error:
>>>>>>> expected package
>>>>>>>  var byteBufferPool bytebufferpool.Pool
>>>>>>>                                   ^
>>>>>>> go/src/github.com/valyala/fasttemplate/template.go:124:31: error:
>>>>>>> expected package
>>>>>>>   byteBufferPool bytebufferpool.Pool
>>>>>>>                                ^
>>>>>>> go/src/github.com/valyala/fasttemplate/template.go:140:2: error:
>>>>>>> return with value in function with no return type
>>>>>>>   return t
>>>>>>>   ^
>>>>>>> go/src/github.com/valyala/fasttemplate/template.go:152:3: error:
>>>>>>> return with value in function with no return type
>>>>>>>    return nil, err
>>>>>>>    ^
>>>>>>> go/src/github.com/valyala/fasttemplate/template.go:154:2: error:
>>>>>>> return with value in function with no return type
>>>>>>>   return &t, nil
>>>>>>>   ^
>>>>>>> go/src/github.com/valyala/fasttemplate/template.go:267:2: error: not
>>>>>>> enough arguments to return
>>>>>>>   return t.ExecuteFunc(w, func(w io.Writer, tag string) (int, error)
>>>>>>> { return stdTagFunc(w, tag, m) })
>>>>>>>   ^
>>>>>>>
>>>>>>>
>>>>>>> it seems not support import third party package.
>>>>>>>
>>>>>>> anyone can help me ?
>>>>>>>
>>>>>>> 在 2015年12月11日星期五 UTC+8上午10:48:49,Zhongwei Yao写道:
>>>>>>>>
>>>>>>>> OK, I'll give a try to newer gccgo.
>>>>>>>>
>>>>>>>>
>>>>>>>> On 11 December 2015 at 10:28, Dave Cheney <da...@cheney.net> wrote:
>>>>>>>>>
>>>>>>>>> I think gccgo is well supported and benefits from the mature gcc
>>>>>>>>> toolchain, ubuntu is just shipping an out of date version.
>>>>>>>>>
>>>>>>>>> On Friday, 11 December 2015 13:17:12 UTC+11, Zhongwei Yao wrote:
>>>>>>>>>>
>>>>>>>>>> Hi, Dave, Thanks for your information! I've built and run several
>>>>>>>>>> programs by gc without any problem on arm64. Programs include 
>>>>>>>>>> benchmark
>>>>>>>>>> cases like build, garbage, http, json in golang.org/x/benchmark 
>>>>>>>>>> package. The
>>>>>>>>>> gc is built from recently master branch. And we also have tried go 
>>>>>>>>>> 1.5.1 to
>>>>>>>>>> run docker on arm64, it also works. If you want more details, please 
>>>>>>>>>> tell
>>>>>>>>>> me.
>>>>>>>>>>
>>>>>>>>>> What I want to do is comparing the performance between gccgo and
>>>>>>>>>> gc. BTW, I'm new to golang. And I don't know why the community is 
>>>>>>>>>> supporting
>>>>>>>>>> both gccgo and gc. Gccgo seems support a lot of architecture, but it 
>>>>>>>>>> is not
>>>>>>>>>> well supported in cases like my problem.
>>>>>>>>>>
>>>>>>>>>> On 10 December 2015 at 20:17, Dave Cheney <da...@cheney.net>
>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>> I believe gccgo 4.9 only implements the go 1.3 spec. sync.Pool
>>>>>>>>>>> was added in 1.4.
>>>>>>>>>>>
>>>>>>>>>>> You will have to compile a newer gccgo to.compile that program.
>>>>>>>>>>>
>>>>>>>>>>> BTW, did you know what go 1.5 and later support arm64 natively?
>>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>>>
>>>>>>>>>>> Dave
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>> Google Groups "golang-nuts" group.
>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>>>> send an email to golang-nuts...@googlegroups.com.
>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Best regards,
>>>>>>>>>> Zhongwei
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "golang-nuts" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to golang-nuts...@googlegroups.com.
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Best regards,
>>>>>>>> Zhongwei
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to