From owner-freebsd-current@FreeBSD.ORG Wed Aug 20 08:18:32 2008 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E2A59106567B; Wed, 20 Aug 2008 08:18:32 +0000 (UTC) (envelope-from des@des.no) Received: from tim.des.no (tim.des.no [194.63.250.121]) by mx1.freebsd.org (Postfix) with ESMTP id 9CC108FC1E; Wed, 20 Aug 2008 08:18:32 +0000 (UTC) (envelope-from des@des.no) Received: from ds4.des.no (des.no [84.49.246.2]) by smtp.des.no (Postfix) with ESMTP id BEF31207E; Wed, 20 Aug 2008 10:18:30 +0200 (CEST) Received: by ds4.des.no (Postfix, from userid 1001) id 9A658844A8; Wed, 20 Aug 2008 10:18:30 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Ruslan Ermilov References: <20080813185600.B88E373039@freebsd-current.sentex.ca> <86abfgs5v6.fsf@ds4.des.no> <20080819171105.GB19836@edoofus.dev.vega.ru> Date: Wed, 20 Aug 2008 10:18:30 +0200 In-Reply-To: <20080819171105.GB19836@edoofus.dev.vega.ru> (Ruslan Ermilov's message of "Tue, 19 Aug 2008 21:11:05 +0400") Message-ID: <86tzdgje09.fsf@ds4.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: FreeBSD Tinderbox , current@freebsd.org Subject: Re: [head tinderbox] failure on amd64/amd64 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2008 08:18:33 -0000 Ruslan Ermilov writes: > "-mtime -0" interacts badly with the TIME_CORRECT() macro when mtime > and run-time happen to be the same second. While I think it's a bug > in the find(1) code that needs to be fixed, using "-mtime -0s" seems > to avoid the macro and thus works as expected. % date ; touch foo ; find foo -mtime 0s ; date ; sleep 1 ; find foo -mtime = 0s ; date Wed Aug 20 10:09:11 CEST 2008 foo Wed Aug 20 10:09:11 CEST 2008 Wed Aug 20 10:09:12 CEST 2008 % date ; touch foo ; find foo -mtime 0s ; date ; sleep 1 ; find foo -mtime = 1s ; date Wed Aug 20 10:11:23 CEST 2008 foo Wed Aug 20 10:11:23 CEST 2008 foo Wed Aug 20 10:11:24 CEST 2008 '-mtime Ns' evaluates to true if the difference between current time and the file's mtime is *exactly* N seconds. '-mtime N' evaluates to true if the difference between current time and the file's mtime is between N-1 and N days. As written, the test will fail if sys/sys/param.h's mtime is between now and 86399 seconds into the future, and succeed otherwise. If we change 0 to 0s, it will fail if sys/sys/param.h's mtime is exactly the current time, and succeed otherwise. Personally, I think the test is useless, as there are a million other ways to mess up your build, but if you absolutely must have it there, the correct predicate would be '-newermt now'. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no