Skip to content

Conversation

@jsquyres
Copy link
Member

Bring over the 128 bit atomic fixes and one additional minor m4 cleanup commit (the tabs->spaces commit from #5546 did not apply cleanly, and isn't worth it to apply over here).

Thanks to Stefan Teleman for identifying this issue and providing a
proof-of-concept patch.  We ended up revamping the detection of
128-bit atomics to reduce duplicated code and be a slightly simpler --
albiet perhaps a bit more verbose -- approach:

- Remove the --enable-cross-* options; they were confusing and
  unnecessary.
- Always try to compile / link the compiler-intrinsic 128-bit atomic
  functions.
  - Strengthen the C tests we use to be more robust.
  - Use m4 to avoid duplicating the C tests multiple times in the .m4
    source.
- If not cross-compiling, try to run a short test and ensure that they
  actually work (as of Aug 2018, there's at least one platform where
  they don't: clang 6 on ARM64).  If cross-compiling, just assume that
  they work.
- Add more comments about what is going on with all the tests; it's
  tricky stuff.  Our Future Selves will thank us.

Signed-off-by: George Bosilca <[email protected]>
Signed-off-by: Jeff Squyres <[email protected]>
(cherry picked from commit ff9df91)
Thanks to George for finding/fixing these.

Signed-off-by: Jeff Squyres <[email protected]>
(cherry picked from commit 9194dbb)
@jsquyres jsquyres added this to the v3.1.3 milestone Aug 28, 2018
@jsquyres jsquyres requested review from bosilca and hjelmn August 28, 2018 19:07
@bwbarrett bwbarrett merged commit ddf45a1 into open-mpi:v3.1.x Sep 11, 2018
@jsquyres jsquyres deleted the pr/v3.1.x/atomic-128-fixes branch September 28, 2018 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants