GNU bug report logs -
#11377
configure.am - fails to remove configure before attempting replacement
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
On 05/03/2012 04:09 PM, Ronald F. Guilmette wrote:
>
> The only problem with the approach outlined above is that sometimes (rarely)
> some Makefiles and/or other tools used as part of a build process (e.g.
> automake) may occasionally make the assumption that every regular file
> within the current (build) tree is writable, and that thus, when one of these
> tools is about to perform some operation that will attempt to effectively
> over-write some such file, the over-write can be performed _without_ first
> deleting the file in question.
Nothing against your style of coding, but I do want to point out that
recommending anyone delete a file before rebuilding its contents is
racy. If things crash in the middle, you can be left without the file,
or with a file with incomplete contents. It is always better to
recommend a style of atomic changes - make your target file in a
temporary location (generally in the same directory as the destination),
then use an atomic rename() to overwrite the original file with the
updated file in one go.
>
> I want to reemphasize what I just said. Removing a given regular file before
> attempting some operation that is intended to fully replace the contents of
> that file is a simple and altogether reasonable precaution...
I want to reemphasize what I just said - removing a given regular file
before rebuilding it is prone to awful surprises when your build process
is interrupted unexpectedly. Always write to a temporary name and then
use mv to move it into place, for the best safety.
--
Eric Blake eblake <at> redhat.com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[signature.asc (application/pgp-signature, attachment)]
This bug report was last modified 11 years and 201 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.