I have been thinking about this for a bit now - and discussed it a bit with @hansw2000.
Just so we are clear what we are talking about so we are all on the same page:
-
abiversion
: SOVERSION == ABIVERSION would be 13 in this case -
llvmversion
: SOVERSION == LLVMVERSION would be 15 in this case
In 14 we changed it to be abiversion
, but it was reverted quickly after 14 by Tom and @MaskRay because it created a lot of problems and confusions for our users with several issues filed as linked above. I don’t think this situation have really changed that much and if we released 15 with abiversion
it will probably create similar problems. Especially since llvmversion
have been the default for quite some time (a month) in main now.
With that in mind I think the most pragmatic thing to do for 15.x release that is just 2 weeks away and we don’t want to delay it unless it is absolutely necessary I think we should accept the patch above but switch the default setting to keep llvmversion
. This still allows packaging and downstream vendors to keep abiversion
.
Yes this ping-pongs between the releases, but it was reverted for a reason and while I see the benefits from both sides I think I would error on the side that have worked for many many releases and not created much of a confusion problem.
When a option was first suggested I was very against it since I had the same fears that @sylvestre expressed with introducing fragmentation, but considering where we are in the release cycle and that committing hard to one side would create problems for someone I think it’s the most workable idea for now and we should commit to a solution during the development period leading up to 16. So an option is a punt for me right now.
I really want to get rc3 out soon - so I’ll do the change of the default value to ON
(llvmversion
by default) and hope that we can come to a consensus around that for 15. And I strongly suggest that people interested in switching to abiversion
should advocate for that for the main
branch and make sure it becomes the default in good time before 16 branching happens.