[Bug go/65462] New: Use of 'go get' with gccgo is not finding dependencies correctly

boger at us dot ibm.com gcc-bugzilla@gcc.gnu.org
Wed Mar 18 19:38:00 GMT 2015


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65462

            Bug ID: 65462
           Summary: Use of 'go get' with gccgo is not finding dependencies
                    correctly
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: go
          Assignee: ian at airs dot com
          Reporter: boger at us dot ibm.com
                CC: cmang at google dot com

When using the go tool provided with gccgo in gcc 5.0, the use of 'go get'
doesn't always find and build the dependent packages correctly.

Here is an example:

go get -u github.com/mitchellh/gox

There is a dependent package github.com/mitchellh/iochan but that never gets
downloaded or built and as a result neither does github.com/mitchellh/gox.  I
can make it work by downloading them in separate steps this way:

go get -u github.com/mitchellh/uchan
go get -u github.com/mitchellh/gox


After further debugging I found the problem has to do with the code in
libgo/go/cmd/go/pkg.go in the load function where it does this check:

....


  p1 := loadImport(path, p.Dir, stk, p.build.ImportPos[path])
  if !reqPkgSrc && p1.Root == "" {
    continue
  }

....


When it tries to load the github.com/mitchellh/uchan package, p1.Root == "" so
it skips the rest of the code in the loop that loads the package.  Isn't this a
case where p1.Root should have a non-null string and therefore not
continue/skip the rest of the body of the loop and get it loaded?



More information about the Gcc-bugs mailing list