X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:subject:to:references:from:message-id:date :mime-version:in-reply-to:content-type :content-transfer-encoding; q=dns; s=default; b=D9usnAqbVWiHnFQP m9sTCAz5qrH85Yt0btv03XgYHnnkGlHUAP5dKQGdS2xuvzFAhVJtoP98mdeVOPpm 6jr5u231CsqrD622GT5LHYw3BlwtJlbE/8a7QcD01JrbTzur+AaXy4nRkcYehObK glekPPIvwyxR26DzJZplG8nzm9A= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:subject:to:references:from:message-id:date :mime-version:in-reply-to:content-type :content-transfer-encoding; s=default; bh=KMPjLe4EVliajytQfTqePO MSyoI=; b=jcZ0gghvXSZmHiCfS0isxCkPaXqkl4BqrrWSo8mBALbHpooA1nDlHB XLDUZXH9JQbjsfg59W9iS/PXg8kMw1XIOYtLIY1dGPpkYTEH6nWltRG8fMKRer3d UVRw5mYfuKk/3VX9ti8opkgESQU3QKv9MI72+NBkHOke+A+RmDV2s= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=ham version=3.3.2 spammy=H*Ad:U*frank, winter, Winter, northern X-HELO: midtown.nycx.com Subject: Re: clock skew detected in archive member To: cygwin AT cygwin DOT com References: From: Frank Farance Message-ID: <90ca4b36-51d6-bf2d-60e4-093703f62e7d@farance.com> Date: Tue, 19 Jul 2016 17:08:34 -0400 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes On 2016-07-19 15:44, Schwarz, Konrad wrote: > Hello, > > I am building a project in Cygwin using a GCC/binutils cross-compiler hosted on Windows. > I.e., make and other utilities are from Cygwin; > gcc, ld, ar, etc. are from the cross-compiler toolchain which was compiled natively > for Windows. > > I consistently see > make[1]: Warning: File 'libmylib.a(myfile.o)' has modification time 3516 s in the future > make[1]: warning: Clock skew detected. Your build may be incomplete. > > (The exact time varies somewhat). > > The build is indeed incomplete. > > I am using the lib(member): form of rule in the Makefile, so > make uses the modification time of the member in the archive > to see if it needs updating. > > As the time is close to an hour and since I am one hour east of GMT, > this might be related to a time-zone problem. > > If anyone has run across this problem and has some hints for me, > I would be most grateful. > > Best Regards > > Konrad Schwarz Konrad- Here is my experience operating in a mixed environment. There seem to be several routes to getting timestamps on files ... Windows (via Windows explorer) can produce different results than Cygwin, even on the same NTFS volume. Now if you were able to roll the clock back a couple months to Winter time, you might have fewer problems. Not to mention, if you're using remotely mounted drives, there can be some jitter too that causes Makefile problems -- these problems have been around for almost three decades on pure *nix systems, no Windows OS. Now add in archives (whose time should be right because it is in UTC), but the file itself (which was copied into the archive) might have the wrong time (stupid TZ issues from the file's metadata in the filesystem, not the archive which merely copies the filesystem metadata). The easiest way to see this problem is with files that are "self-timestamped", such as JPEG EXIF metadata in a photo file taken in December (Northern Hemisphere winter) and viewed in Summer time (or vice versa). You'll see hour differences, which of course are not true. The solution? Essentially, (1) you need to build on local filesystems (applies to UNIX and Windows OS), (2) you need to have a single route for determining timestamp/TZ data on files (probably means you can't mix Windows and Cygwin), (3) building the files with "TZ=UTC0" (or equivalent) should minimize timezone and summer time issues. I'm sure there is a more detailed explanation in the inner guts of cygwin and Windows OS, but I've lost too much time over the years trying to make sense out of it and reconciling what has been written on the web that, in fact, does not describe what is happening on my machines. The timezones/summer time has been broken on DOS and Windows since Day 1, and they broke it again, and they broke it again. -FF -- ______________________________________________________________________ Frank Farance, Farance Inc. T: +1 212 486 4700 M: +1 917 751 2900 mailto:frank AT farance DOT com http://farance.com Standards/Products/Services for Information/Communication Technologies -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple