From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 115931 invoked by alias); 4 May 2016 13:38:49 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 115887 invoked by uid 89); 4 May 2016 13:38:49 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=world, world!, Hx-languages-length:755 X-HELO: limerock01.mail.cornell.edu Received: from limerock01.mail.cornell.edu (HELO limerock01.mail.cornell.edu) (128.84.13.241) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 04 May 2016 13:38:43 +0000 X-CornellRouted: This message has been Routed already. Received: from authusersmtp.mail.cornell.edu (granite3.serverfarm.cornell.edu [10.16.197.8]) by limerock01.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id u44DceIc025283 for ; Wed, 4 May 2016 09:38:41 -0400 Received: from [192.168.1.3] (mta-68-175-148-36.twcny.rr.com [68.175.148.36] (may be forged)) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id u44Dcd9S007594 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT) for ; Wed, 4 May 2016 09:38:40 -0400 From: Ken Brown To: cygwin Subject: Deterministic builds Message-ID: Date: Wed, 04 May 2016 13:38:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-PMX-Cornell-Gauge: Gauge=XXXXX X-IsSubscribed: yes X-SW-Source: 2016-05/txt/msg00045.txt.bz2 Is it possible to build an executable on Cygwin so that subsequent builds (with no change in source) produce identical results? Currently, the timestamp embedded in executables prevents this. (I don't know if that's the only obstacle.) For example: $ cat hello.c #include int main () { printf("Hello, world!\n"); return 0; } $ gcc hello.c -o hello1 $ gcc hello.c -o hello2 $ objdump -p hello1.exe | grep Time/Date Time/Date Wed May 4 09:20:24 2016 $ objdump -p hello2.exe | grep Time/Date Time/Date Wed May 4 09:20:29 2016 My actual use case is that I'm building a package that produces a large number of executables. If I make a change in one source file, I'd like to be able to know which executables change. Ken -- 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