On 25 Feb 2014, at 6:32 pm, Rene Groeschke <gra...@breskeby.com> wrote:

> Hey guys,
> 
> while working on the gradle native support I've noticed some issues with
> incremental builds.
> 
> I've added an implementation of the
> AbstractLanguageIncrementalBuildIntegrationTest For ObjectiveC and
> Objective-CPP, which works without problems with gcc and with clang on
> osx, but I noticed randomly failing tests when using clang on ubuntu.
> After some digging I noticed that the generated object files can differ,
> even when created from exactly the same sources/flags.
> 
> When comparing the according assembler code, I see that the address
> space is chosen randomly (see. diff here: http://pastebin.com/uY1LERGX).
> This behavior comes from a security feature called ASLR (Address space
> layout randomisation).

You sure that’s the case? ASLR is applied at execution time, not compile time 
(it’s completely pointless to do this at compile time).

There are apparently some bugs in older versions of Clang that prevent it 
producing deterministic output, which looks more likely the problem we’re 
hitting based on that diff you posted above. The clang version that comes with 
Ubuntu 12.04 was affected, which means any test running on agent1 - agent3 is 
probably going to fail some times.

Have you seen this test fail on the build vms?


--
Adam Murdoch
Gradle Co-founder
http://www.gradle.org
VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting
http://www.gradleware.com



Reply via email to