Re: [RESEND PATCH 0/5] perf core: Support overwrite ring buffer

Dmitry Vyukov
2016-03-08T15:36:08Z

On Tue, Mar 8, 2016 at 4:29 PM, Ingo Molnar <mingo@kernel.org> wrote:
>
> * Peter Zijlstra <peterz@infradead.org> wrote:
>
>> Here's a thread on syz-kaller:
>>
>> lkml.kernel.org/r/CACT4Y+Ym0TZLkmRrM0ZGgLpu8kqS-YjoWTMrvaLz=tx2tnyO3w@mail.gmail.com
>>
>> If things have shifted again I'm sure Dmitry is willing to help.
>
> So I tried to install 'go' but it's a _really_ unintuitive tool I have to say.
>
> I installed golang-go on Ubuntu, which gave me a 'go' command:
>
> triton:~> go version
> go version go1.5.1 linux/amd64
>
> that was the only step that worked. It's a dead end from that point on:
>
> triton:~> go get github.com/google/syzkaller
> package github.com/google/syzkaller: cannot download, $GOPATH not set. For more details see: go help gopath
>
> ok, so lets set GOPATH to the distro src directory:
>
> triton:~> export GOPATH=/usr/lib/go/src/
> triton:~> go get github.com/google/syzkaller
> package github.com/google/syzkaller: mkdir /usr/lib/go/src/src: permission denied
>
> btw., this is what the directory contains:
>
> triton:~> ls /usr/lib/go/src/
> all.bash bootstrap.bash bytes compress debug flag html io make.bat nacltest.bash race.bash run.bash strconv testing unsafe
> all.bat bufio clean.bash container encoding fmt image iostest.bash Make.dist net race.bat run.bat strings text
> androidtest.bash buildall.bash clean.bat crypto errors go index log math os reflect runtime sync time
> archive builtin cmd database expvar hash internal make.bash mime path regexp sort syscall unicode
>
> so, according to the error message it wants a writable directory. Lets try it that
> way:
>
> triton:~> mkdir go
> triton:~>
> triton:~> export GOPATH=/home/mingo/go/
> triton:~> go get github.com/google/syzkaller
> can't load package: package github.com/google/syzkaller: no buildable Go source files in /home/mingo/go/src/github.com/google/syzkaller

Yes, GOPATH needs to be set a writable dir.
You can ignore "can't load package" error. The goal of that step is
checkout syzkaller with all dependencies into correct dirs under
GOPATH. That's already done by now.
Or you can do (/... at the end):
$ go get github.com/google/syzkaller/...
That will checkout and build.
Either way you can continue with the make step.

> looks like someone wants 'Go' to be used as little as possible! ;-)

You probably did not observe recently a noobie trying to build a C
project with sufficiently-complicate-build-system and a bunch of
dependencies that needs to be on specific, unknown revisions, and that
still does not compile with you compiler and does not link with your
linker, and then of course target machine has a wrong glibc version :)