Since on AIX we use readdir64, we must also use opendir64 and closedir64. This patch by Matthieu Sarter fixes the problem. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline.
Ian
Index: gcc/go/gofrontend/MERGE =================================================================== --- gcc/go/gofrontend/MERGE (revision 247931) +++ gcc/go/gofrontend/MERGE (working copy) @@ -1,4 +1,4 @@ -619848ccd463ac385e9912df008e7e8e6301a284 +fc3d6af694c518d73a126bcbd90d79982524f9f6 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. Index: libgo/go/os/dir_gccgo.go =================================================================== --- libgo/go/os/dir_gccgo.go (revision 247848) +++ libgo/go/os/dir_gccgo.go (working copy) @@ -12,12 +12,6 @@ import ( "unsafe" ) -//extern opendir -func libc_opendir(*byte) *syscall.DIR - -//extern closedir -func libc_closedir(*syscall.DIR) int - // FIXME: pathconf returns long, not int. //extern pathconf func libc_pathconf(*byte, int) int Index: libgo/go/os/dir_libc64_gccgo.go =================================================================== --- libgo/go/os/dir_libc64_gccgo.go (revision 0) +++ libgo/go/os/dir_libc64_gccgo.go (working copy) @@ -0,0 +1,15 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build aix + +package os + +import "syscall" + +//extern opendir64 +func libc_opendir(*byte) *syscall.DIR + +//extern closedir64 +func libc_closedir(*syscall.DIR) int Index: libgo/go/os/dir_libc_gccgo.go =================================================================== --- libgo/go/os/dir_libc_gccgo.go (revision 0) +++ libgo/go/os/dir_libc_gccgo.go (working copy) @@ -0,0 +1,15 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !aix + +package os + +import "syscall" + +//extern opendir +func libc_opendir(*byte) *syscall.DIR + +//extern closedir +func libc_closedir(*syscall.DIR) int