[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: updating target at the end of recipe, after updating prerequisites,
From: |
Paul Smith |
Subject: |
Re: updating target at the end of recipe, after updating prerequisites, might not work? |
Date: |
Mon, 14 Nov 2011 09:25:11 -0500 |
On Mon, 2011-11-14 at 08:39 -0500, Eli Zaretskii wrote:
> > Date: Mon, 14 Nov 2011 07:25:47 -0500
> > From: David Boyce <address@hidden>
> > Cc: "address@hidden" <address@hidden>
> >
> > On a side note, I've often wondered why, after all these years and
> > discussions like this one, nobody's modified at least the GNU version
> > of touch to do its work by opening the file for write and writing 0
> > bytes to it, or appending one byte and then removing it, or whatever
> > it takes to force an mtime update, rather than using the flawed utimes
> > syscall.
I think any change like this would be too much of a change in behavior.
The timestamp on a file is a feature of the directory, not the file
itself (at least in POSIX). In particular this means that you CAN touch
a read-only file and change its mod time:
~$ ls -al foo
-r--r--r-- 1 psmith psmith 0 Sep 7 23:59 foo
~$ touch foo
~$ ls -al foo
-r--r--r-- 1 psmith psmith 0 Nov 14 09:18 foo
But you can't even open a read-only file for writing, much less actually
write to it. Also, writing 0 bytes to a file does not (at least in my
experiment) change its modtime.
> Did you miss this portion of Coreutils' NEWS?
>
> * Noteworthy changes in release 6.12 (2008-05-31) [stable]
>
> ** New features
>
> cp, install, mv, and touch now preserve nanosecond resolution on
> file timestamps, on platforms that have the 'utimensat' and
> 'futimens' system calls.
Yes, this actually works, too:
~$ touch --version
touch (GNU coreutils) 8.5
~$ ls -l --full-time foo
-rw-r--r-- 1 psmith psmith 0 2011-11-14 09:18:16.937969078 -0500 foo
~$ touch foo
~$ ls -l --full-time foo
-rw-r--r-- 1 psmith psmith 0 2011-11-14 09:23:59.807379653 -0500 foo
--
-------------------------------------------------------------------------------
Paul D. Smith <address@hidden> Find some GNU make tips at:
http://www.gnu.org http://make.mad-scientist.net
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist
- RE: updating target at the end of recipe, after updating prerequisites, might not work?, Paul Smith, 2011/11/13
- RE: updating target at the end of recipe, after updating prerequisites, might not work?, Mark Galeck (CW), 2011/11/13
- RE: updating target at the end of recipe, after updating prerequisites, might not work?, Paul Smith, 2011/11/14
- RE: updating target at the end of recipe, after updating prerequisites, might not work?, Mark Galeck (CW), 2011/11/14
- RE: updating target at the end of recipe, after updating prerequisites, might not work?, Paul Smith, 2011/11/14
- Re: updating target at the end of recipe, after updating prerequisites, might not work?, Eli Zaretskii, 2011/11/14
- RE: updating target at the end of recipe, after updating prerequisites, might not work?, Mark Galeck (CW), 2011/11/14
- Re: updating target at the end of recipe, after updating prerequisites, might not work?, David Boyce, 2011/11/14
- Re: updating target at the end of recipe, after updating prerequisites, might not work?, Eli Zaretskii, 2011/11/14
- Re: updating target at the end of recipe, after updating prerequisites, might not work?,
Paul Smith <=
- Re: updating target at the end of recipe, after updating prerequisites, might not work?, David Boyce, 2011/11/14
- Re: updating target at the end of recipe, after updating prerequisites, might not work?, Paul Smith, 2011/11/14
why would chaining built in implicit rules not work?, Mark Galeck (CW), 2011/11/13