gcc: Modern GNU Objective-C runtime API

1 
1 8.1.1 Modern GNU Objective-C Runtime API
1 ----------------------------------------
1 
1 The GNU Objective-C runtime provides an API which is similar to the one
1 provided by the "Objective-C 2.0" Apple/NeXT Objective-C runtime.  The
1 API is documented in the public header files of the GNU Objective-C
1 runtime:
1 
1    * 'objc/objc.h': this is the basic Objective-C header file, defining
1      the basic Objective-C types such as 'id', 'Class' and 'BOOL'.  You
1      have to include this header to do almost anything with Objective-C.
1 
1    * 'objc/runtime.h': this header declares most of the public runtime
1      API functions allowing you to inspect and manipulate the
1      Objective-C runtime data structures.  These functions are fairly
1      standardized across Objective-C runtimes and are almost identical
1      to the Apple/NeXT Objective-C runtime ones.  It does not declare
1      functions in some specialized areas (constructing and forwarding
1      message invocations, threading) which are in the other headers
1      below.  You have to include 'objc/objc.h' and 'objc/runtime.h' to
1      use any of the functions, such as 'class_getName()', declared in
1      'objc/runtime.h'.
1 
1    * 'objc/message.h': this header declares public functions used to
1      construct, deconstruct and forward message invocations.  Because
1      messaging is done in quite a different way on different runtimes,
1      functions in this header are specific to the GNU Objective-C
1      runtime implementation.
1 
1    * 'objc/objc-exception.h': this header declares some public functions
1      related to Objective-C exceptions.  For example functions in this
1      header allow you to throw an Objective-C exception from plain C/C++
1      code.
1 
1    * 'objc/objc-sync.h': this header declares some public functions
1      related to the Objective-C '@synchronized()' syntax, allowing you
1      to emulate an Objective-C '@synchronized()' block in plain C/C++
1      code.
1 
1    * 'objc/thr.h': this header declares a public runtime API threading
1      layer that is only provided by the GNU Objective-C runtime.  It
1      declares functions such as 'objc_mutex_lock()', which provide a
1      platform-independent set of threading functions.
1 
1  The header files contain detailed documentation for each function in
1 the GNU Objective-C runtime API.
1