On 10/12/22 02:03, Christoph Müllner wrote: > > > So we have the following atomics ABIs: >  I) GCC implementation >  II) LLVM implementation >  III) Specified ABI in the "Code Porting and Mapping Guidelines" > appendix of the RISC-V specification And presumably we don't have any way to distinguish between I and II at the DSO or object level.  That implies that if we're going to get to III, then we have to mark new code.  We obviously can't mark pre-existing bits (and I may have implied we should do that in my earlier message, my goof). > > And there are two proposed solutions: >  a) Finding a new ABI that is compatible with I) and II) is of course > a solution, but we don't know if and when such a solution exists. >  b) Going to introduce III) causes a break and therefore needs special > care (e.g. let the user decide via command line flag or provide a > compatibility mode). > > I don't see that a) and b) contradict each other. > Why not going for both: >  -) Continue to work on a backward compatible solution >  -) Enable the "new" ABI from the specification appendix via command > line flag >  -) Reevaluate the situation in 12 months to decide the next steps I would lean towards making the new, more correct, behavior the default and having the old behavior enabled by a command line flag. But otherwise what you're suggesting seems reasonable. Jeff