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:from:to:subject:message-id:date:mime-version :content-type:content-transfer-encoding; q=dns; s=default; b=ruc qzxSe1FXgqG1mPGHcbosO4f6VgjH5p/BLeecAvtL0TEb2g1nLBq1dGKWtkPJ53cy DjBaDAS41mduChCgGF/BdBklQbbWM8hqi9lIlowRW4bZYsnvxojNhjRpW2aNndHX sRYcstv7hvqm5BIixo/AljXiJoMioSlt8qibkm4s= 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:from:to:subject:message-id:date:mime-version :content-type:content-transfer-encoding; s=default; bh=/VO8IISKE tuduTXjFTzRVjLGrE8=; b=fHDifi2hESQ7p6FZuCYszi2Rle0fsU2ZZ+e2yjuaY dw6pnOgjQ5coZqDFPF96Ur7E3zatWayZYZ/5Qm0mrvIl6O+b9m9m5ZnlI64Z4aui ZVslgy8C1ed2QK6QhMemyxttels5i39uVec/WE+0mTWKE3pCqHBW/GqrigBaCq07 Jo= 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=-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 X-CornellRouted: This message has been Routed already. From: Ken Brown To: cygwin Subject: Deterministic builds Message-ID: Date: Wed, 4 May 2016 09:38:39 -0400 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 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