bug-m4
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: large diversions broken on mingw


From: Eric Blake
Subject: Re: large diversions broken on mingw
Date: Mon, 11 Mar 2013 10:36:29 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130219 Thunderbird/17.0.3

On 03/09/2013 04:09 PM, Eric Blake wrote:
> On 03/09/2013 08:12 AM, Eric Blake wrote:
>> Just a heads up that I'm trying to fix a bug in diversion handling,
>> exposed by 'make check', but which only shows on mingw or other
>> platforms where rename() can't change the name of an open file.  Most
>> Unix systems are unaffected, and I doubt many people test on mingw,
>> which is probably why no one has reported it even though I think the bug
>> has been present for months.
>>
>> I'm still trying to ascertain whether released m4 has the bug, or
>> whether it is a regression introduced by a recent gnulib update.  But
>> the gdb session shows what is happening - if a diversion is large enough
>> to spill to a file, the act of closing it prior to the rename happens to
>> trigger a path that accidentally unlink()s the file.  I hope to have the
>> patch posted by Monday.
> 
> More details - it looks like this has been around for a long time -
> gnulib has used _O_TEMPORARY when opening files on mingw, which has the
> effect of deleting the file on the first fclose().  But m4 needs the
> file to exist even after we close it, which means we should not be using
> _O_TEMPORARY.  I'm trying to figure out whether the patch needs to be in
> gnulib, m4, or both.

Fixed as of this commit, although I'm still seeing some issues in gnulib
when building for mingw.

https://lists.gnu.org/archive/html/m4-patches/2013-03/msg00003.html

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]