This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Aug 31 12:30, Andy Koppe wrote: > On 31 August 2018 at 12:10, Andy Koppe wrote: > > Issuing an ARM semi-hosting Seek command when just querying file > > position with SEEK_CUR and offset zero is unnecessary, because unlike > > the lseek() Unix system call the Seek command does not actually return > > the file position. For that reason, syscalls.c for ARM keeps track of > > file position in the 'poslog', so we can just return that. > > > > Moreover, since the Seek command only accepts an absolute file position, > > SEEK_CUR operations are implemented by adding the relative offset to the > > position in the poslog. If the host implements non-binary files with > > implicit carriage return characters but doesn't discount those implicit > > CRs when implementing Seek (by just mapping straight to Windows file > > operations), this actually ended up wrongly changing file position when > > using SEEK_CUR with offset zero or functions like ftell() or fgetpos() > > that are based on that. > > > > The ARM semi-hosting Seek command is documented at > > http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0040d/BACDFGCG.html > > > > (There's a wider problem in that using the position returned by the > > likes of ftell() in a later seek operation gets you to the wrong place > > if the host adds implicit CRs without discounting them in Seek > > commands. Not sure there's anything that can be done about it on the > > newlib side though.) > > Slightly amended patch attached: Use off_t rather than int for the poslog. Pushed. Thanks, Corinna -- Corinna Vinschen Cygwin Maintainer Red Hat
Attachment:
signature.asc
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |