Skip to content

Conversation

fanquake
Copy link
Member

Potential alternative to #20436. This is a patch, rather than changes being echo'd into the src/gui/Makefile post configure. It's also scoped to just darwin. Changes are based off versiontagging_compiler in corelib/global/global.pri.

From #20436:

I suspect @fanquake will hate the fact that we're echoing into a generated file. This would be much cleaner if done at the qmake level

I guess this is at the qmake level, but still feels like a bit of a hack. If we decide to go this way will add Carl/Cory as co-authors.

@laanwj
Copy link
Member

laanwj commented Nov 21, 2020

Concept ACK

@DrahtBot
Copy link
Contributor

DrahtBot commented Nov 21, 2020

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Conflicts

Reviewers, this pull request conflicts with the following ones:

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@DrahtBot
Copy link
Contributor

🐙 This pull request conflicts with the target branch and needs rebase.

Want to unsubscribe from rebase notifications on this pull request? Just convert this pull request to a "draft".

@fanquake fanquake force-pushed the no_echo_fix_clang_qt_determinism branch from 5855584 to 9276fe0 Compare November 23, 2020 05:44
@fanquake fanquake closed this Nov 23, 2020
fanquake added a commit that referenced this pull request Nov 24, 2020
…istic behavior in LLVM 8

8f7d1b3 Fix QPainter non-determinism on macOS (Andrew Chow)

Pull request description:

  Aplies a patch to Qt that fixes the non-determinism by modifying Qt. The source of the non-determinism is how LLVM 8 optimizes qt_intersect_spans when compiling. The particular optimization that seems to be causing the problems is that a temp variable is being added for spans->y. For some reason, when it does this, it chooses different instructions to use when making that variable. We bypass this problem by patching qt_intersect_spans to always make and use this local variable.

  Potential alternative to #20436 and #20440

ACKs for top commit:
  hebasto:
    re-ACK 8f7d1b3 ~for merging into the 0.21 branch, but [not into the master](#20454) branch.~
  fanquake:
    ACK 8f7d1b3

Tree-SHA512: b0d00a77643554021736524fb64611462ef2ec849a220543c12d99edb0f52f2e8128d2cc61fa82176b7e13b294574774a92d6b649badf8b7630c6d6a7e70ce10
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Nov 24, 2020
…eterministic behavior in LLVM 8

8f7d1b3 Fix QPainter non-determinism on macOS (Andrew Chow)

Pull request description:

  Aplies a patch to Qt that fixes the non-determinism by modifying Qt. The source of the non-determinism is how LLVM 8 optimizes qt_intersect_spans when compiling. The particular optimization that seems to be causing the problems is that a temp variable is being added for spans->y. For some reason, when it does this, it chooses different instructions to use when making that variable. We bypass this problem by patching qt_intersect_spans to always make and use this local variable.

  Potential alternative to bitcoin#20436 and bitcoin#20440

ACKs for top commit:
  hebasto:
    re-ACK 8f7d1b3 ~for merging into the 0.21 branch, but [not into the master](bitcoin#20454) branch.~
  fanquake:
    ACK 8f7d1b3

Tree-SHA512: b0d00a77643554021736524fb64611462ef2ec849a220543c12d99edb0f52f2e8128d2cc61fa82176b7e13b294574774a92d6b649badf8b7630c6d6a7e70ce10
@bitcoin bitcoin locked and limited conversation to collaborators Feb 22, 2021
@fanquake fanquake deleted the no_echo_fix_clang_qt_determinism branch November 9, 2022 16:30
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants