|
|
#ifndef _OBJC_NEXT_ABI_H_
|
#ifndef _OBJC_NEXT_ABI_H_
|
#define _OBJC_NEXT_ABI_H_
|
#define _OBJC_NEXT_ABI_H_
|
/* Produce a define that allows us to figure out what facilities are
|
/* Produce a define that allows us to figure out what facilities are
|
available for this gcc and OS combination.
|
available for this gcc and OS combination.
|
*/
|
*/
|
|
|
/* By default we do nothing - therefore ifdef NEXT_OBJC_USE_NEW_INTERFACE
|
/* By default we do nothing - therefore ifdef NEXT_OBJC_USE_NEW_INTERFACE
|
* is reliable for detecting
|
* is reliable for detecting
|
* (a) versions of the compiler that are transitional to the new next ABI
|
* (a) versions of the compiler that are transitional to the new next ABI
|
* (b) versions of the target that require the new ABI.
|
* (b) versions of the target that require the new ABI.
|
*
|
*
|
* This applies for versions of OSX >= 10.5 (darwin9).
|
* This applies for versions of OSX >= 10.5 (darwin9).
|
*
|
*
|
* A compiler capable of producing ObjC V2 ABI should define __OBJC2__
|
* A compiler capable of producing ObjC V2 ABI should define __OBJC2__
|
*/
|
*/
|
|
|
#undef NEXT_OBJC_ABI_VERSION
|
#undef NEXT_OBJC_ABI_VERSION
|
#undef NEXT_OBJC_USE_NEW_INTERFACE
|
#undef NEXT_OBJC_USE_NEW_INTERFACE
|
|
|
#ifdef __NEXT_RUNTIME__
|
#ifdef __NEXT_RUNTIME__
|
# if (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050 || __OBJC2__)
|
# if (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050 || __OBJC2__)
|
/* We have to use an updated interface for 32bit NeXT to avoid
|
/* We have to use an updated interface for 32bit NeXT to avoid
|
* 'deprecated' warnings.
|
* 'deprecated' warnings.
|
* For 64bit NeXT the ABI is different (and the interfaces 'deprecated'
|
* For 64bit NeXT the ABI is different (and the interfaces 'deprecated'
|
* for 32bit have been removed).
|
* for 32bit have been removed).
|
*/
|
*/
|
# define NEXT_OBJC_USE_NEW_INTERFACE 1
|
# define NEXT_OBJC_USE_NEW_INTERFACE 1
|
# if __OBJC2__ || __LP64__
|
# if __OBJC2__ || __LP64__
|
/* We have OBJC v2 ABI compiler,
|
/* We have OBJC v2 ABI compiler,
|
(or, at least, the available NeXT runtime requires one) */
|
(or, at least, the available NeXT runtime requires one) */
|
# define NEXT_OBJC_ABI_VERSION 2
|
# define NEXT_OBJC_ABI_VERSION 2
|
# else
|
# else
|
/* We leave it open to define ABI 1 if and when we implement those
|
/* We leave it open to define ABI 1 if and when we implement those
|
* extensions.
|
* extensions.
|
*/
|
*/
|
# define NEXT_OBJC_ABI_VERSION 0
|
# define NEXT_OBJC_ABI_VERSION 0
|
# endif
|
# endif
|
# else
|
# else
|
/* All before 10.5 is ABI 0 */
|
/* All before 10.5 is ABI 0 */
|
# define NEXT_OBJC_ABI_VERSION 0
|
# define NEXT_OBJC_ABI_VERSION 0
|
# endif
|
# endif
|
#endif
|
#endif
|
|
|
#endif /* _OBJC_NEXT_ABI_H_ */
|
#endif /* _OBJC_NEXT_ABI_H_ */
|
|
|