Revert "Kludge: work around lack of syscall.seek on 386 and arm, #1906"
This reverts commit 60b483bd3b.
			
			
Этот коммит содержится в:
		
							родитель
							
								
									cd867b72b9
								
							
						
					
					
						коммит
						ee663ccb96
					
				
					 5 изменённых файлов: 27 добавлений и 84 удалений
				
			
		|  | @ -180,6 +180,19 @@ func (f *File) Readdirnames(n int) (names []string, err error) { | ||||||
| 	return nil, &PathError{"readdirnames", f.name, ErrNotImplemented} | 	return nil, &PathError{"readdirnames", f.name, ErrNotImplemented} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // Seek sets the offset for the next Read or Write on file to offset, interpreted | ||||||
|  | // according to whence: 0 means relative to the origin of the file, 1 means | ||||||
|  | // relative to the current offset, and 2 means relative to the end. | ||||||
|  | // It returns the new offset and an error, if any. | ||||||
|  | // The behavior of Seek on a file opened with O_APPEND is not specified. | ||||||
|  | // | ||||||
|  | // If f is a directory, the behavior of Seek varies by operating | ||||||
|  | // system; you can seek to the beginning of the directory on Unix-like | ||||||
|  | // operating systems, but not on Windows. | ||||||
|  | func (f *File) Seek(offset int64, whence int) (ret int64, err error) { | ||||||
|  | 	return f.handle.Seek(offset, whence) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func (f *File) SyscallConn() (syscall.RawConn, error) { | func (f *File) SyscallConn() (syscall.RawConn, error) { | ||||||
| 	return nil, ErrNotImplemented | 	return nil, ErrNotImplemented | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -82,20 +82,6 @@ func (f unixFileHandle) Seek(offset int64, whence int) (int64, error) { | ||||||
| 	return newoffset, handleSyscallError(err) | 	return newoffset, handleSyscallError(err) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Seek sets the offset for the next Read or Write on file to offset, interpreted |  | ||||||
| // according to whence: 0 means relative to the origin of the file, 1 means |  | ||||||
| // relative to the current offset, and 2 means relative to the end. |  | ||||||
| // It returns the new offset and an error, if any. |  | ||||||
| // The behavior of Seek on a file opened with O_APPEND is not specified. |  | ||||||
| // |  | ||||||
| // If f is a directory, the behavior of Seek varies by operating |  | ||||||
| // system; you can seek to the beginning of the directory on Unix-like |  | ||||||
| // operating systems, but not on Windows. |  | ||||||
| // TODO: move this back to file.go once syscall.seek is implemented on 386 and arm. |  | ||||||
| func (f *File) Seek(offset int64, whence int) (ret int64, err error) { |  | ||||||
| 	return f.handle.Seek(offset, whence) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // isWindowsNulName reports whether name is os.DevNull ('NUL') on Windows. | // isWindowsNulName reports whether name is os.DevNull ('NUL') on Windows. | ||||||
| // True is returned if name is 'NUL' whatever the case. | // True is returned if name is 'NUL' whatever the case. | ||||||
| func isWindowsNulName(name string) bool { | func isWindowsNulName(name string) bool { | ||||||
|  |  | ||||||
|  | @ -1,31 +0,0 @@ | ||||||
| // +build linux,!baremetal,386 linux,!baremetal,arm,!wasi |  | ||||||
| 
 |  | ||||||
| // Functions broken by lack of seek(). |  | ||||||
| // Stat is broken because it uses Time, which has a preadn function that uses seek :-( |  | ||||||
| // |  | ||||||
| // TODO: remove this file once tinygo gets syscall.Seek support on i386 |  | ||||||
| 
 |  | ||||||
| // Copyright 2016 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 os |  | ||||||
| 
 |  | ||||||
| // Seek sets the offset for the next Read or Write on file to offset, interpreted |  | ||||||
| // according to whence: 0 means relative to the origin of the file, 1 means |  | ||||||
| // relative to the current offset, and 2 means relative to the end. |  | ||||||
| // It returns the new offset and an error, if any. |  | ||||||
| // The behavior of Seek on a file opened with O_APPEND is not specified. |  | ||||||
| // |  | ||||||
| // If f is a directory, the behavior of Seek varies by operating |  | ||||||
| // system; you can seek to the beginning of the directory on Unix-like |  | ||||||
| // operating systems, but not on Windows. |  | ||||||
| func (f *File) Seek(offset int64, whence int) (ret int64, err error) { |  | ||||||
| 	return f.handle.Seek(offset, whence) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Stat returns the FileInfo structure describing file. |  | ||||||
| // If there is an error, it will be of type *PathError. |  | ||||||
| func (f *File) Stat() (FileInfo, error) { |  | ||||||
| 	return nil, &PathError{Op: "fstat", Path: f.name, Err: ErrNotImplemented} |  | ||||||
| } |  | ||||||
|  | @ -1,39 +0,0 @@ | ||||||
| // +build darwin linux,!baremetal,!386,!arm wasi |  | ||||||
| 
 |  | ||||||
| // Functions broken by lack of seek(). |  | ||||||
| // Stat is broken because it uses Time, which has a preadn function that uses seek :-( |  | ||||||
| // |  | ||||||
| // TODO: merge these functions back where they belong once tinygo gets syscall.Seek support on i386 |  | ||||||
| 
 |  | ||||||
| package os |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"syscall" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Seek sets the offset for the next Read or Write on file to offset, interpreted |  | ||||||
| // according to whence: 0 means relative to the origin of the file, 1 means |  | ||||||
| // relative to the current offset, and 2 means relative to the end. |  | ||||||
| // It returns the new offset and an error, if any. |  | ||||||
| // The behavior of Seek on a file opened with O_APPEND is not specified. |  | ||||||
| // |  | ||||||
| // If f is a directory, the behavior of Seek varies by operating |  | ||||||
| // system; you can seek to the beginning of the directory on Unix-like |  | ||||||
| // operating systems, but not on Windows. |  | ||||||
| func (f *File) Seek(offset int64, whence int) (ret int64, err error) { |  | ||||||
| 	return f.handle.Seek(offset, whence) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Stat returns the FileInfo structure describing file. |  | ||||||
| // If there is an error, it will be of type *PathError. |  | ||||||
| func (f *File) Stat() (FileInfo, error) { |  | ||||||
| 	var fs fileStat |  | ||||||
| 	err := ignoringEINTR(func() error { |  | ||||||
| 		return syscall.Fstat(int(f.handle.(unixFileHandle)), &fs.sys) |  | ||||||
| 	}) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, &PathError{Op: "fstat", Path: f.name, Err: err} |  | ||||||
| 	} |  | ||||||
| 	fillFileStatFromSys(&fs, f.name) |  | ||||||
| 	return &fs, nil |  | ||||||
| } |  | ||||||
|  | @ -15,6 +15,20 @@ func (f *File) Sync() error { | ||||||
| 	return ErrNotImplemented | 	return ErrNotImplemented | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // Stat returns the FileInfo structure describing file. | ||||||
|  | // If there is an error, it will be of type *PathError. | ||||||
|  | func (f *File) Stat() (FileInfo, error) { | ||||||
|  | 	var fs fileStat | ||||||
|  | 	err := ignoringEINTR(func() error { | ||||||
|  | 		return syscall.Fstat(int(f.handle.(unixFileHandle)), &fs.sys) | ||||||
|  | 	}) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, &PathError{Op: "fstat", Path: f.name, Err: err} | ||||||
|  | 	} | ||||||
|  | 	fillFileStatFromSys(&fs, f.name) | ||||||
|  | 	return &fs, nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // statNolog stats a file with no test logging. | // statNolog stats a file with no test logging. | ||||||
| func statNolog(name string) (FileInfo, error) { | func statNolog(name string) (FileInfo, error) { | ||||||
| 	var fs fileStat | 	var fs fileStat | ||||||
|  |  | ||||||
		Загрузка…
	
	Создание таблицы
		
		Сослаться в новой задаче
	
	 Dan Kegel
						Dan Kegel