This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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]

Re: libgo patch committed: Update to current version of Go library


On Fri, Feb 8, 2013 at 6:42 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
> On Fri, Feb 8, 2013 at 3:07 AM, Ian Lance Taylor <iant@google.com> wrote:
>> On Thu, Feb 7, 2013 at 2:43 PM, Uros Bizjak <ubizjak@gmail.com> wrote:
>>>
>>> I did hit one new error that seems related:
>>>
>>> --- FAIL: TestChtimes (0.00 seconds)
>>> os_test.go:681:         AccessTime didn't go backwards;
>>> was={63495872497 0 47130825733376}, after={63495872497 0
>>> 47130825733376}
>>> os_test.go:685:         ModTime didn't go backwards; was={63495872497
>>> 0 47130825733376}, after={63495872497 0 47130825733376}
>>> FAIL
>>> FAIL: os
>>
>> Something has gone wrong in the file
>> libgo/go/syscall/libcall_linux_utimesnano.go.  The function in that
>> file will try utimensat.  On your system that should return ENOSYS.
>> In that case the function should convert the times and call utimes.
>> The code looks OK to me but there may be something wrong with it.  It
>> looks like the file times didn't change at all.
>
> From the strace -f, it looks that utimes is not called at all in
> between two relevant stats:

Strange.  What I would expect to happen is that the function in
libcall_linux_utimesnano.go will call utimensat.  Since your system
does not have that function, that will call the stub routine in
libgo/runtime/go-nosys.c, which will return -1 with errno set to
ENOSYS.  The code in libcall_linux_utimensnano.go will see the ENOSYS
error and continue on to call utime.  Clearly something is going wrong
in that sequence, but I don't know what.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]