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: ----
EstimatedDays: ----
NextAction: ----
Pri: 3
Type: Feature

issue 314403

Sign in to add a comment

Make iOS ninja build deterministic

Project Member Reported by, 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

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

They aren't.

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

Comment 1 by, Jun 11 2014

Blocking: chromium:314403
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, Apr 15 2015

r294827 | | 2015-04-15T20:48:24.957969Z

Changed paths:

Remove some files from the Windows non-deterministic whitelist.

BUG=429358, 383364

Review URL:

Comment 6 by, May 3 2015

Labels: hotlist-ios-fixit

Comment 7 by, May 6 2015

Labels: hotlist-ios-fixit-marq

Comment 8 by, May 6 2015

Labels: -hotlist-ios-fixit-marq

Comment 9 by, May 7 2015

Labels: hotlist-ios-fixit-msarda
Labels: hotlist-ios-fixit-done
Status: Assigned
Labels: -hotlist-ios-fixit-msarda
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 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.
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