public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* libgo patch committed: Use more largefile functions
@ 2019-03-09  6:12 Ian Lance Taylor
  0 siblings, 0 replies; only message in thread
From: Ian Lance Taylor @ 2019-03-09  6:12 UTC (permalink / raw)
  To: gcc-patches, gofrontend-dev

[-- Attachment #1: Type: text/plain, Size: 323 bytes --]

This libgo patch, based on one by Rainer Orth, uses more largefile
functions.  With this patch we consistently call __go_openat for
openat and we use fstatat64, creat64,  sendfile64, and getdents64
where needed.  This is for PR 89447.  Bootstrapped and ran Go
testsuite on x86_64-pc-linux-gnu.  Committed to mainline.

Ian

[-- Attachment #2: patch.txt --]
[-- Type: text/plain, Size: 7646 bytes --]

Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE	(revision 269443)
+++ gcc/go/gofrontend/MERGE	(working copy)
@@ -1,4 +1,4 @@
-959260238817af3205fb9907dd92319291e6a893
+3106ec19626d75d8275be16c86421132548fa13e
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
Index: libgo/go/internal/syscall/unix/at.go
===================================================================
--- libgo/go/internal/syscall/unix/at.go	(revision 269196)
+++ libgo/go/internal/syscall/unix/at.go	(working copy)
@@ -13,12 +13,9 @@ import (
 //extern unlinkat
 func unlinkat(int32, *byte, int32) int32
 
-//extern openat
+//extern __go_openat
 func openat(int32, *byte, int32, syscall.Mode_t) int32
 
-//extern fstatat
-func fstatat(int32, *byte, *syscall.Stat_t, int32) int32
-
 func Unlinkat(dirfd int, path string, flags int) error {
 	var p *byte
 	p, err := syscall.BytePtrFromString(path)
Index: libgo/go/internal/syscall/unix/at_largefile.go
===================================================================
--- libgo/go/internal/syscall/unix/at_largefile.go	(nonexistent)
+++ libgo/go/internal/syscall/unix/at_largefile.go	(working copy)
@@ -0,0 +1,14 @@
+// Copyright 2019 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 hurd linux solaris,386 solaris,sparc
+
+package unix
+
+import (
+	"syscall"
+)
+
+//extern fstatat64
+func fstatat(int32, *byte, *syscall.Stat_t, int32) int32
Index: libgo/go/internal/syscall/unix/at_regfile.go
===================================================================
--- libgo/go/internal/syscall/unix/at_regfile.go	(nonexistent)
+++ libgo/go/internal/syscall/unix/at_regfile.go	(working copy)
@@ -0,0 +1,18 @@
+// Copyright 2019 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
+// +build !hurd
+// +build !linux
+// +build !solaris !386
+// +build !solaris !sparc
+
+package unix
+
+import (
+	"syscall"
+)
+
+//extern fstatat
+func fstatat(int32, *byte, *syscall.Stat_t, int32) int32
Index: libgo/go/syscall/libcall_bsd.go
===================================================================
--- libgo/go/syscall/libcall_bsd.go	(revision 269196)
+++ libgo/go/syscall/libcall_bsd.go	(working copy)
@@ -13,8 +13,6 @@ import (
 	"unsafe"
 )
 
-//sys	sendfile(outfd int, infd int, offset *Offset_t, count int) (written int, err error)
-//sendfile(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t) Ssize_t
 func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
 	if race.Enabled {
 		race.ReleaseMerge(unsafe.Pointer(&ioSync))
Index: libgo/go/syscall/libcall_bsd_largefile.go
===================================================================
--- libgo/go/syscall/libcall_bsd_largefile.go	(nonexistent)
+++ libgo/go/syscall/libcall_bsd_largefile.go	(working copy)
@@ -0,0 +1,10 @@
+// Copyright 2019 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 solaris,386 solaris,sparc
+
+package syscall
+
+//sys	sendfile(outfd int, infd int, offset *Offset_t, count int) (written int, err error)
+//sendfile64(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t) Ssize_t
Index: libgo/go/syscall/libcall_bsd_regfile.go
===================================================================
--- libgo/go/syscall/libcall_bsd_regfile.go	(nonexistent)
+++ libgo/go/syscall/libcall_bsd_regfile.go	(working copy)
@@ -0,0 +1,10 @@
+// Copyright 2019 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 darwin dragonfly freebsd netbsd openbsd solaris,amd64 solaris,sparc64
+
+package syscall
+
+//sys	sendfile(outfd int, infd int, offset *Offset_t, count int) (written int, err error)
+//sendfile(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t) Ssize_t
Index: libgo/go/syscall/libcall_posix.go
===================================================================
--- libgo/go/syscall/libcall_posix.go	(revision 269196)
+++ libgo/go/syscall/libcall_posix.go	(working copy)
@@ -184,9 +184,6 @@ func FDZero(set *FdSet) {
 //sys	Close(fd int) (err error)
 //close(fd _C_int) _C_int
 
-//sys	Creat(path string, mode uint32) (fd int, err error)
-//creat(path *byte, mode Mode_t) _C_int
-
 //sysnb	Dup(oldfd int) (fd int, err error)
 //dup(oldfd _C_int) _C_int
 
Index: libgo/go/syscall/libcall_posix_largefile.go
===================================================================
--- libgo/go/syscall/libcall_posix_largefile.go	(revision 269196)
+++ libgo/go/syscall/libcall_posix_largefile.go	(working copy)
@@ -8,6 +8,9 @@
 
 package syscall
 
+//sys	Creat(path string, mode uint32) (fd int, err error)
+//creat64(path *byte, mode Mode_t) _C_int
+
 //sys	Fstat(fd int, stat *Stat_t) (err error)
 //fstat64(fd _C_int, stat *Stat_t) _C_int
 
Index: libgo/go/syscall/libcall_posix_regfile.go
===================================================================
--- libgo/go/syscall/libcall_posix_regfile.go	(revision 269196)
+++ libgo/go/syscall/libcall_posix_regfile.go	(working copy)
@@ -13,6 +13,9 @@
 
 package syscall
 
+//sys	Creat(path string, mode uint32) (fd int, err error)
+//creat(path *byte, mode Mode_t) _C_int
+
 //sys	Fstat(fd int, stat *Stat_t) (err error)
 //fstat(fd _C_int, stat *Stat_t) _C_int
 
Index: libgo/go/syscall/libcall_solaris.go
===================================================================
--- libgo/go/syscall/libcall_solaris.go	(revision 269196)
+++ libgo/go/syscall/libcall_solaris.go	(nonexistent)
@@ -1,12 +0,0 @@
-// 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.
-
-package syscall
-
-//sys Getdents(fd int, buf []byte) (n int, err error)
-//getdents(fd _C_int, buf *byte, nbyte Size_t) _C_int
-
-func ReadDirent(fd int, buf []byte) (n int, err error) {
-	return Getdents(fd, buf)
-}
Index: libgo/go/syscall/libcall_solaris_largefile.go
===================================================================
--- libgo/go/syscall/libcall_solaris_largefile.go	(nonexistent)
+++ libgo/go/syscall/libcall_solaris_largefile.go	(working copy)
@@ -0,0 +1,14 @@
+// Copyright 2019 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 solaris,386 solaris,sparc
+
+package syscall
+
+//sys Getdents(fd int, buf []byte) (n int, err error)
+//getdents64(fd _C_int, buf *byte, nbyte Size_t) _C_int
+
+func ReadDirent(fd int, buf []byte) (n int, err error) {
+	return Getdents(fd, buf)
+}
Index: libgo/go/syscall/libcall_solaris_regfile.go
===================================================================
--- libgo/go/syscall/libcall_solaris_regfile.go	(nonexistent)
+++ libgo/go/syscall/libcall_solaris_regfile.go	(working copy)
@@ -0,0 +1,14 @@
+// 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 solaris,amd64 solaris,sparc64
+
+package syscall
+
+//sys Getdents(fd int, buf []byte) (n int, err error)
+//getdents(fd _C_int, buf *byte, nbyte Size_t) _C_int
+
+func ReadDirent(fd int, buf []byte) (n int, err error) {
+	return Getdents(fd, buf)
+}

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-03-09  2:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-09  6:12 libgo patch committed: Use more largefile functions Ian Lance Taylor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).