We need to pin the underlying type of C++20' std::memory_order to match the C++17 version. Anything less is an ABI break.
At the moment it's unsigned before C++20 and int after. Or if you're using -fshort-enums it's unsigned char before C++20 and int after.
This patch explicitly specifies the underlying type of the C++20 memory_order to be w/e type the compiler would have chosen for the C++17 version.