tobert / pcstat

Page Cache stat: get page cache stats for files on Linux
Apache License 2.0
1.22k stars 152 forks source link

pcstat no longer builds after latest merge #12

Closed joechu1 closed 9 years ago

joechu1 commented 9 years ago

I'm trying to install / build pcstat on an AWS instance running Ubuntu Linux, but am getting multiple failures.

root@node0:~# go get golang.org/x/sys/unix
# golang.org/x/sys/unix
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:31: clen redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:784
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:44: ParseDirent redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:797
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:70: Pipe redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux_amd64.go:108
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:82: (*SockaddrInet4).sockaddr redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:291
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:96: (*SockaddrInet6).sockaddr redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:305
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:111: (*SockaddrUnix).sockaddr redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:320
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:135: Getsockname redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:492
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:147: ImplementsGetwd redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:164
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:149: Getwd redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:168
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:158: Getgroups redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:181
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:158: too many errors
root@node0:~# go get github.com/tobert/pcstat/pcstat
# golang.org/x/sys/unix
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:31: clen redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:784
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:44: ParseDirent redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:797
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:70: Pipe redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux_amd64.go:108
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:82: (*SockaddrInet4).sockaddr redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:291
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:96: (*SockaddrInet6).sockaddr redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:305
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:111: (*SockaddrUnix).sockaddr redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:320
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:135: Getsockname redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:492
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:147: ImplementsGetwd redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:164
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:149: Getwd redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:168
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:158: Getgroups redeclared in this block
    previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:181
/usr/src/golang.org/x/sys/unix/syscall_solaris.go:158: too many errors

Hopefully the following provides the information needed about the environment:

root@node0:~# uname -a
Linux node0 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

root@node0:~# go version
go version go1.2.1 linux/amd64

If anything else is needed, please let me know.

At this point in writing the issue, I am guessing that the problem may exist from a dependency of pcstat (golang.org/x/sys/unix)? If that's the case, well... just raising awareness of this for now.

tobert commented 9 years ago

That's what I get for testing the build on OSX. I'll take a look asap. On Aug 16, 2015 10:43 PM, "Joseph Chu" notifications@github.com wrote:

I'm trying to install / build pcstat on an AWS instance running Ubuntu Linux, but am getting multiple failures.

root@node0:~# go get golang.org/x/sys/unix

golang.org/x/sys/unix

/usr/src/golang.org/x/sys/unix/syscall_solaris.go:31 http://golang.org/x/sys/unix/usr/src/golang.org/x/sys/unix/syscall_solaris.go:31: clen redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:784 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:44 http://golang.org/x/sys/unix/syscall_linux.go:784/usr/src/golang.org/x/sys/unix/syscall_solaris.go:44: ParseDirent redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:797 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:70 http://golang.org/x/sys/unix/syscall_linux.go:797/usr/src/golang.org/x/sys/unix/syscall_solaris.go:70: Pipe redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux_amd64.go:108 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:82 http://golang.org/x/sys/unix/syscall_linux_amd64.go:108/usr/src/golang.org/x/sys/unix/syscall_solaris.go:82: (_SockaddrInet4).sockaddr redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:291 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:96 http://golang.org/x/sys/unix/syscall_linux.go:291/usr/src/golang.org/x/sys/unix/syscall_solaris.go:96: (_SockaddrInet6).sockaddr redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:305 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:111 http://golang.org/x/sys/unix/syscall_linux.go:305/usr/src/golang.org/x/sys/unix/syscall_solaris.go:111: (*SockaddrUnix).sockaddr redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:320 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:135 http://golang.org/x/sys/unix/syscall_linux.go:320/usr/src/golang.org/x/sys/unix/syscall_solaris.go:135: Getsockname redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:492 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:147 http://golang.org/x/sys/unix/syscall_linux.go:492/usr/src/golang.org/x/sys/unix/syscall_solaris.go:147: ImplementsGetwd redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:164 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:149 http://golang.org/x/sys/unix/syscall_linux.go:164/usr/src/golang.org/x/sys/unix/syscall_solaris.go:149: Getwd redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:168 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:158 http://golang.org/x/sys/unix/syscall_linux.go:168/usr/src/golang.org/x/sys/unix/syscall_solaris.go:158: Getgroups redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:181 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:158 http://golang.org/x/sys/unix/syscall_linux.go:181/usr/src/golang.org/x/sys/unix/syscall_solaris.go:158: too many errors root@node0:~# go get github.com/tobert/pcstat/pcstat

golang.org/x/sys/unix

/usr/src/golang.org/x/sys/unix/syscall_solaris.go:31 http://golang.org/x/sys/unix/usr/src/golang.org/x/sys/unix/syscall_solaris.go:31: clen redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:784 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:44 http://golang.org/x/sys/unix/syscall_linux.go:784/usr/src/golang.org/x/sys/unix/syscall_solaris.go:44: ParseDirent redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:797 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:70 http://golang.org/x/sys/unix/syscall_linux.go:797/usr/src/golang.org/x/sys/unix/syscall_solaris.go:70: Pipe redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux_amd64.go:108 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:82 http://golang.org/x/sys/unix/syscall_linux_amd64.go:108/usr/src/golang.org/x/sys/unix/syscall_solaris.go:82: (_SockaddrInet4).sockaddr redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:291 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:96 http://golang.org/x/sys/unix/syscall_linux.go:291/usr/src/golang.org/x/sys/unix/syscall_solaris.go:96: (_SockaddrInet6).sockaddr redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:305 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:111 http://golang.org/x/sys/unix/syscall_linux.go:305/usr/src/golang.org/x/sys/unix/syscall_solaris.go:111: (*SockaddrUnix).sockaddr redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:320 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:135 http://golang.org/x/sys/unix/syscall_linux.go:320/usr/src/golang.org/x/sys/unix/syscall_solaris.go:135: Getsockname redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:492 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:147 http://golang.org/x/sys/unix/syscall_linux.go:492/usr/src/golang.org/x/sys/unix/syscall_solaris.go:147: ImplementsGetwd redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:164 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:149 http://golang.org/x/sys/unix/syscall_linux.go:164/usr/src/golang.org/x/sys/unix/syscall_solaris.go:149: Getwd redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:168 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:158 http://golang.org/x/sys/unix/syscall_linux.go:168/usr/src/golang.org/x/sys/unix/syscall_solaris.go:158: Getgroups redeclared in this block previous declaration at /usr/src/golang.org/x/sys/unix/syscall_linux.go:181 /usr/src/golang.org/x/sys/unix/syscall_solaris.go:158 http://golang.org/x/sys/unix/syscall_linux.go:181/usr/src/golang.org/x/sys/unix/syscall_solaris.go:158: too many errors

Hopefully the following provides the information needed about the environment:

root@node0:~# uname -a Linux node0 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

root@node0:~# go version go version go1.2.1 linux/amd64

If anything else is needed, please let me know.

At this point in writing the issue, I am guessing that the problem may exist from a dependency of pcstat (golang.org/x/sys/unix)? If that's the case, well... just raising awareness of this for now.

— Reply to this email directly or view it on GitHub https://github.com/tobert/pcstat/issues/12.

tobert commented 9 years ago

I just built it again on a Linux machine and everything seems fine. In taking a closer look at the error you posted, it looks a little weird, "/usr/src/golang.org/x/sys/unix/syscall_solaris.go".

Can you try updating your sys/unix with "go get -u golang.org/x/sys/unix" and try building again with "go build -a"? Please also verify whether or not you have Go 1.4. If Go 1.3 is a problem, I'll tag the previous version for folks to use.

tobert commented 9 years ago

Ah ok. Just noticed your Go version at 1.2.1. That's probably it. You can get 1.4 by using the following PPA: https://launchpad.net/~evarlast/+archive/ubuntu/golang1.4

I'll think a little about how to approach older Go environments. Since Go binaries are easy to copy around, my inclination is to only support >= 1.4, but I could be persuaded otherwise.

joechu1 commented 9 years ago

That was it, thanks! Updating Go to 1.4 fixed my build problem.

I'm not tied down to any earlier version of Go, and wouldn't mind if the requirements were updated to support only >= 1.4.