There's a lot of advice out there saying not to use bitfields but to do the bit arithmetic manually (e.g., When to use bit-fields in C?) because bitfield layouts are implementation-defined.
Is this practically a problem? I've noticed the SysV ABI for x86-64, for example, defines how bitfields should be laid out, so I suppose using bitfields on this platform shouldn't be problematic even if I mix object code generated by different compilers.
Are bitfields similarly standardized on other platforms too? (I'm mainly interested in Linux (SysV ABI), MacOs, and CygWin.)
[...] bitfield layouts are implementation-defined.
Some aspects are implementation-defined. Others are unspecified, such as the size of the addressible storage unit reserved for a bitfield.
Is this practically a problem?
It depends on what you're trying to do. Many of the same issues that apply more broadly to structure types apply in microcosm to bitfields. Among them,
I've noticed the SysV ABI for x86-64, for example, defines how bitfields should be laid out, so I suppose using bitfields on this platform shouldn't be problematic even if I mix object code generated by different compilers.
Using bitfields does not present an interoperability problem when mixing code that can be relied upon to produce and use identical bitfield layouts.
Using bitfields does not present a portability problem for code that avoids depending on details of bitfield layout.
Those are conflicting concerns, because interoperability requires consistent layout, but relying on layout details creates a portability problem.
Are bitfields similarly standardized on other platforms too? (I'm mainly interested in Linux (SysV ABI), MacOs, and CygWin.)
Generally speaking, for hosted implementations (including all your examples) there will be a platform ABI defining bitfield layout, for software interoperability within a platform. ABI is not particularly relevant to standalone implementations, but many, if not all, such implementations do specify full details of bitfield layouts. If your concern is about whether you can link bitfield-using code compiled with different C implementations for the same platform and get a correctly-working program, then the answer is almost certainly "yes".