add missing memory fences for tppc32le and pb variants #825
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For tppc32le, memory-fence generation needed to be turned on in cpprim. For pb variants, use
__sync_synchronize()
as provided by GCC and Clang to support architectures other than ones explicitly covered in "atomic.h".These changes are intended to address racket/racket#4952 and https://racket.discourse.group/t/let-us-know-when-platforms-specific-packages-have-been-updated-to-8-12/2712/12. In the case of tppc32le, I'd never tried running on a multicore Power-architecture machine; it only today occurred to me that the ppc64l machine that I can access (via cfarm) would be able to compile and run ppc32-bit binaries, too. Using that machine, I was able to confirm that the tppc32le port needs this fence enabled for
thread.ms
to pass.