Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add missing memory fences for tppc32le and pb variants #825

Merged
merged 1 commit into from
Apr 8, 2024

Conversation

mflatt
Copy link
Contributor

@mflatt mflatt commented Apr 7, 2024

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.

@burgerrg
Copy link
Contributor

burgerrg commented Apr 8, 2024

Good find! Please update the release notes, too.

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".
@mflatt
Copy link
Contributor Author

mflatt commented Apr 8, 2024

Ok, updated.

@mflatt mflatt merged commit c7a3560 into cisco:main Apr 8, 2024
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants