]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
syscall: Change Dup2 to only return an error.
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Feb 2012 19:36:31 +0000 (19:36 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Feb 2012 19:36:31 +0000 (19:36 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184222 138bc75d-0d04-0410-961f-82ee72b054a4

libgo/go/syscall/exec_bsd.go
libgo/go/syscall/exec_linux.go
libgo/go/syscall/exec_unix.go
libgo/go/syscall/libcall_posix.go

index 9ef3eb006522906ef526281567104b8e5afad964..68143536182989f136a9f69105b682a2dd660d8a 100644 (file)
@@ -136,9 +136,8 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
        // so that pass 2 won't stomp on an fd it needs later.
        nextfd = int(len(fd))
        if pipe < nextfd {
-               _, err2 := Dup2(pipe, nextfd)
-               if err2 != nil {
-                       err1 = err2.(Errno)
+               err1 = raw_dup2(pipe, nextfd)
+               if err1 != 0 {
                        goto childerror
                }
                raw_fcntl(nextfd, F_SETFD, FD_CLOEXEC)
@@ -147,9 +146,8 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
        }
        for i = 0; i < len(fd); i++ {
                if fd[i] >= 0 && fd[i] < int(i) {
-                       _, err2 := Dup2(fd[i], nextfd)
-                       if err2 != nil {
-                               err1 = err2.(Errno)
+                       err1 = raw_dup2(fd[i], nextfd)
+                       if err1 != 0 {
                                goto childerror
                        }
                        raw_fcntl(nextfd, F_SETFD, FD_CLOEXEC)
@@ -178,9 +176,8 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
                }
                // The new fd is created NOT close-on-exec,
                // which is exactly what we want.
-               _, err2 := Dup2(fd[i], i)
+               err1 = raw_dup2(fd[i], i)
                if err1 != 0 {
-                       err1 = err2.(Errno)
                        goto childerror
                }
        }
index 98dbeb27750f36d040660cdd1e2bc88091d1e01b..cc3cfdb0805c0b2f3c12287415e5508c3500a124 100644 (file)
@@ -161,9 +161,8 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
        // so that pass 2 won't stomp on an fd it needs later.
        nextfd = int(len(fd))
        if pipe < nextfd {
-               _, err2 := Dup2(pipe, nextfd)
-               if err2 != nil {
-                       err1 = err2.(Errno)
+               err1 = raw_dup2(pipe, nextfd)
+               if err1 != 0 {
                        goto childerror
                }
                raw_fcntl(nextfd, F_SETFD, FD_CLOEXEC)
@@ -172,9 +171,8 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
        }
        for i = 0; i < len(fd); i++ {
                if fd[i] >= 0 && fd[i] < int(i) {
-                       _, err2 := Dup2(fd[i], nextfd)
-                       if err2 != nil {
-                               err1 = err2.(Errno)
+                       err1 = raw_dup2(fd[i], nextfd)
+                       if err1 != 0 {
                                goto childerror
                        }
                        raw_fcntl(nextfd, F_SETFD, FD_CLOEXEC)
@@ -203,9 +201,8 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
                }
                // The new fd is created NOT close-on-exec,
                // which is exactly what we want.
-               _, err2 := Dup2(fd[i], i);
-               if err2 != nil {
-                       err1 = err2.(Errno)
+               err1 = raw_dup2(fd[i], i)
+               if err1 != 0 {
                        goto childerror
                }
        }
index 75f0f45adaff6a25143f87784147e41e16b61f6f..49441f8e1c4116ebe13fc7fd4fd4be5b7664d0cc 100644 (file)
@@ -47,6 +47,9 @@ import (
 //sysnb        raw_exit(status int)
 //_exit(status int)
 
+//sysnb raw_dup2(oldfd int, newfd int) (err Errno)
+//dup2(oldfd int, newfd int) int
+
 // Note: not raw, returns error rather than Errno.
 //sys  read(fd int, p *byte, np int) (n int, err error)
 //read(fd int, buf *byte, count Size_t) Ssize_t
index 414b8ed2d44cf51c5b6e43a62968c903e7f20ad7..1226c1cfbd4a547e47fbc48c2fca7b9a636b3cbd 100644 (file)
@@ -178,7 +178,7 @@ func FDZero(set *FdSet) {
 //sysnb        Dup(oldfd int) (fd int, err error)
 //dup(oldfd int) int
 
-//sysnb        Dup2(oldfd int, newfd int) (fd int, err error)
+//sysnb        Dup2(oldfd int, newfd int) (err error)
 //dup2(oldfd int, newfd int) int
 
 //sys  Exit(code int)