libobjc - start reorganization of headers/API

Nicola Pero nicola.pero@meta-innovation.com
Thu Sep 9 09:29:00 GMT 2010


> Perhaps you could have a look at
>
> 	Defining a libobjc.so.2 ABI
>        http://gcc.gnu.org/ml/gcc/2010-02/msg00340.html

That sounds like an excellent idea :-)

If you wait a few weeks, I'll complete my reorganization of the  
headers and the API, and then
you can review the (new) list of symbols and we can decide what to do.


> while doing this.  We may need to change the libobjc.so version
> depending on your changes and perhaps define an ABI only for the new
> version.

Yes

We'll likely have to define a new ABI.

The problem is that in the traditional GNU libobjc API there are no  
private headers;
anything that needed to be declared in a header was put in the public  
headers by
the original authors (this seems horrific today, but I'd consider it a  
sign of the times and
of different sensibilities -  but we'll obviously need to redo all the  
headers with a contemporary
approach). ;-)

So, it's hard to not remove symbols or not to break things as any  
change in the internals
will immediately reflect on the public symbols/API/ABI.  (eg, the  
internal thread layer reorganization
I already committed has already caused _objc_mutex_lock() and similar  
private functions to disappear
from the public headers!).

If we have to break things, we may as well make a complete reorganized  
putting in all
the possible required changes for the foreseeable future in this  
release so that users
only have the upgrade shock once ;-)

But that is a lot of work.

Thanks



More information about the Gcc-patches mailing list