Hi,
On 1/3/20 11:08 AM, Richard Frith-Macdonald wrote:
1) gcc + own runtime (make detects this config all by itself)
2) gcc + libobjc2 (make configured with gnu-gnu-gnu)
3) clang + libobjc2 and make configured gnu-gnu-gnu
4) clang + libobjc2 and make configured ng-gnu-gnu
The introduction of the ng runtime specification was supposed to mean that
we*don't* have those four options: it means we support only two setups
(1) and (4) above. The combinations you list as (2) and (3) are
unsupported/invalid because
1. means the original (also called legacy) objc
4. means all the latest next-gen stuff (next-gen because we didn't want to use
the objc-2.0 lable)
There's nothing in between as a simple recognition of the realities of what
compiler works reliably with each runtime.
In practice, clang may be able to build code for the old runtime (so
individuals might get 3 to work for them, but we can't support them)
Ok. I went overboard with options then :-P I'm fine with 3) being
useless, I just did try all combinations out of curiosity.
I actually think 2) makes some sense and it used to be supported, at
least I remember it compiling+linking, but then failing. Only not that
libobjc2 needs clang now, I used to test 2) years ago by using full gcc.
Maybe David can tell us more about 2).
The most important combinations are of course 1) and 4) and I think they
should work both on most platforms except perhaps for specific bugs. I
will try to provide more information so we can get them both working on
OpenBSD.
Riccardo