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

Issue 383364 link

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.
Project Member

Comment 21 by, Dec 24

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit - Your friendly Sheriffbot
Labels: -Hotlist-ios-fixit -Hotlist-Recharge-Cold -Needs-Feedback -hotlist-ios-fixit-done
Status: Available (was: Untriaged)
Hopefully all the work we did in upstream LLVM will eventually trickle down into XCode and thus iOS tooling will get better.
maruel@ is there a bot or test that is run on other platforms to confirms we don't break deterministic?  I think the iOS executable might be deterministic now -- but some other elements in the .app package are not (yet), such as the .car files.  I think we have a radar out on that now.

If there's some test that runs on this, perhaps we can enable it to prevent regressions, but have it ignore certain files (like .car, codesign, etc) lists the bots we have. Some of the bot links are out of date though, I updated a few recently. The iOS one is out-of-date it seems. is where the mac bot moved to , I don't know where the iOS bot is now. You could see if you can find it :-)

On Mac builds aren't deterministic because ld64's output isn't. erikchen sent a patch for that to the Apple person maintaining ld64, but it hasn't made it into any Xcode releases yet as far as I know. So I'd guess iOS probably has at least that problem.

Sign in to add a comment