New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 4 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 3
Type: Feature

Blocking:
issue 314403



Sign in to add a comment

Make iOS ninja build deterministic

Project Member Reported by mar...@chromium.org, Jun 11 2014

Issue description

1. Learn about iOS build system. (See internal doc)
2. ninja -C out/Release chrome_ios_unittests
3. ren out out2
4. gclient runhooks
5. ninja -C out/Release chrome_ios_unittests

Expected:
Content of out/ and out2/ is byte-for-byte identical.

Actual:
They aren't.

This is specific about iOS/ninja/<whatever default compiler>
 

Comment 1 by mar...@chromium.org, Jun 11 2014

Blocking: chromium:314403
Cc: smut@chromium.org justincohen@chromium.org
Cc: thakis@chromium.org
Labels: -Pri-2 Pri-3
Lowering priority to P3 for now. We won't approach iOS until OSX is at least in a better shape, so removed the iOS builder in the meantime to not give a false signal that it is being looked into.
Project Member

Comment 5 by bugdroid1@chromium.org, Apr 15 2015

------------------------------------------------------------------
r294827 | sebmarchand@chromium.org | 2015-04-15T20:48:24.957969Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/build/scripts/slave/recipe_modules/isolate/resources/compare_build_artifacts.py?r1=294827&r2=294826&pathrev=294827

Remove some files from the Windows non-deterministic whitelist.

BUG=429358, 383364

Review URL: https://codereview.chromium.org/1086193002
-----------------------------------------------------------------

Comment 6 by noyau@chromium.org, May 3 2015

Labels: hotlist-ios-fixit

Comment 7 by noyau@chromium.org, May 6 2015

Labels: hotlist-ios-fixit-marq

Comment 8 by noyau@chromium.org, May 6 2015

Labels: -hotlist-ios-fixit-marq

Comment 9 by noyau@chromium.org, May 7 2015

Labels: hotlist-ios-fixit-msarda
Cc: dpranke@chromium.org sdefresne@chromium.org
Labels: hotlist-ios-fixit-done
Owner: sdefresne@chromium.org
Status: Assigned
Labels: -hotlist-ios-fixit-msarda
Owner: justincohen@chromium.org
Labels: Needs-Feedback
Won't various DATE and TIME and other metadata make this impossible? Also, it appears ibtool xib and strings file compilation is also not deterministic.

See crbug.com/577711 for various hacks put in place to compare ninja to xcode builds.  Is this something the IOS deterministic builder should handle?
Justin, we made linux build deterministic. All use of __DATE__ and __TIME__ was removed. This is far from impossible. We also have a tooli to workaround non-determinism caused by tooling.
https://chromium.googlesource.com/chromium/tools/build/+/master/scripts/slave/recipe_modules/isolate/resources/remove_build_metadata.py
As far as I can tell Xcode ibtool compilation of strings and nibs, and actool generation of car files is non-deterministic.

What GYP flags does the deterministic bot set?  Maybe "fastbuild=1 dont_embed_build_metadata=1" ?

What is the diff output of the bot builds when run today?
Owner: ----
Status: Available (was: Assigned)
Components: Infra
Components: -Infra Infra>Client>iOS
Components: Infra>Client>Chrome
Components: -Infra>Client>iOS
Moved all Infra>Client>iOS bugs to Infra>Client>Chrome + OS-iOS.

Sign in to add a comment