diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2018-01-17 18:33:50 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2018-01-17 18:33:50 +0000 |
commit | c1fa27707a4542803c1c04fba57eeee46c214f09 (patch) | |
tree | d8566779fe5525243834c21aadda6df88685b1ce | |
parent | 4436a3ce496abccfc405ade7fb8b575ea55a64ee (diff) | |
download | gcc-c1fa27707a4542803c1c04fba57eeee46c214f09.zip gcc-c1fa27707a4542803c1c04fba57eeee46c214f09.tar.gz gcc-c1fa27707a4542803c1c04fba57eeee46c214f09.tar.bz2 |
archive/tar: support stat and device numbers on AIX
Reviewed-on: https://go-review.googlesource.com/87198
From-SVN: r256810
-rw-r--r-- | gcc/go/gofrontend/MERGE | 2 | ||||
-rw-r--r-- | libgo/go/archive/tar/stat_actime1.go | 2 | ||||
-rw-r--r-- | libgo/go/archive/tar/stat_unix.go | 12 |
3 files changed, 13 insertions, 3 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index b6f59a6..fb7da45e 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -ca805b704fc141d7ad61f8fcd3badbaa04b7e363 +3ea7fc3b918210e7248dbc51d90af20639dc4167 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/go/archive/tar/stat_actime1.go b/libgo/go/archive/tar/stat_actime1.go index cf9cc79..1bdd1c9 100644 --- a/libgo/go/archive/tar/stat_actime1.go +++ b/libgo/go/archive/tar/stat_actime1.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build linux dragonfly openbsd solaris +// +build aix linux dragonfly openbsd solaris package tar diff --git a/libgo/go/archive/tar/stat_unix.go b/libgo/go/archive/tar/stat_unix.go index 868105f..c37a57a 100644 --- a/libgo/go/archive/tar/stat_unix.go +++ b/libgo/go/archive/tar/stat_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build linux darwin dragonfly freebsd openbsd netbsd solaris +// +build aix linux darwin dragonfly freebsd openbsd netbsd solaris package tar @@ -54,6 +54,16 @@ func statUnix(fi os.FileInfo, h *Header) error { if h.Typeflag == TypeChar || h.Typeflag == TypeBlock { dev := uint64(sys.Rdev) // May be int32 or uint32 switch runtime.GOOS { + case "aix": + var major, minor uint32 + if runtime.GOARCH == "ppc64" { + major = uint32((dev & 0x3fffffff00000000) >> 32) + minor = uint32((dev & 0x00000000ffffffff) >> 0) + } else { + major = uint32((dev >> 16) & 0xffff) + minor = uint32(dev & 0xffff) + } + h.Devmajor, h.Devminor = int64(major), int64(minor) case "linux": // Copied from golang.org/x/sys/unix/dev_linux.go. major := uint32((dev & 0x00000000000fff00) >> 8) |