+2010-09-12 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc/objc.h (__GNU_LIBOBJC__): New #define providing an easy way
+ to check the API version. Added some comments.
+
+ * objc-private/common.h: New file.
+ * NXConstStr.m: Include objc-private/common.h.
+ * Object.m: Same change.
+ * Protocol.m: Same change.
+ * archive.c: Same change.
+ * class.c: Same change.
+ * encoding.c: Same change.
+ * exception.c: Same change.
+ * gc.c: Same change.
+ * hash.c: Same change.
+ * init.c: Same change.
+ * libobjc_entry.c: Same change.
+ * linking.m: Same change.
+ * misc.c: Same change (and added a comment).
+ * nil_method.c: Same change.
+ * objects.c: Same change.
+ * sarray.c: Same change.
+ * selector.c: Same change.
+ * sendmsg.c: Same change.
+ * thr.c: Same change.
+
2010-09-11 Nicola Pero <nicola.pero@meta-innovation.com>
* objc/objc-api.h: Removed obsolete #ifdef for NeXTSTEP.
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include "objc-private/common.h"
#include "objc/NXConstStr.h"
@implementation NXConstantString
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include "objc-private/common.h"
#include <stdarg.h>
#include <errno.h>
#include "objc/Object.h"
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include "objc-private/common.h"
#include "objc/Protocol.h"
#include "objc/objc-api.h"
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include "objc-private/common.h"
#include "tconfig.h"
#include "objc/objc.h"
#include "objc/objc-api.h"
classes from the table - and the difficult thing with lock-free data
structures is freeing data when is removed from the structures. */
+#include "objc-private/common.h"
#include "objc/objc.h"
#include "objc/objc-api.h"
#include "objc/thr.h"
/* FIXME: This file has no business including tm.h. */
+#include "objc-private/common.h"
#include "tconfig.h"
#include "coretypes.h"
#include "tm.h"
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include "objc-private/common.h"
#include <stdlib.h>
#include "config.h"
#include "objc/objc-api.h"
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include "objc-private/common.h"
#include "tconfig.h"
#include "objc/objc.h"
#include "objc/encoding.h"
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include "objc-private/common.h"
#include "assert.h"
#include "objc/objc.h"
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include "objc-private/common.h"
#include "objc/objc.h"
#include "objc/objc-api.h"
#include "objc/thr.h"
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
-
+#include "objc-private/common.h"
#include <windows.h>
/*
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
-
+#include "objc-private/common.h"
#include <objc/Object.h>
#include <objc/NXConstStr.h>
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include "objc-private/common.h"
+/* __USE_FIXED_PROTOTYPES__ used to be required to get prototypes for
+ malloc, free, etc. on some platforms. It is unclear if we still
+ need it, but it can't hurt.
+*/
#define __USE_FIXED_PROTOTYPES__
#include <stdlib.h>
+
#include "objc/objc.h"
#include "objc/objc-api.h"
#include "objc-private/runtime.h"
/* This is the nil method, the function that is called when the receiver
of a method is nil */
+#include "objc-private/common.h"
#include "objc/objc.h"
/* When the receiver of a method invocation is nil, the runtime
--- /dev/null
+/* GNU Objective C Runtime Common Private Definitions
+ Copyright (C) 2010 Free Software Foundation, Inc.
+ Contributed by Nicola Pero
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under the
+terms of the GNU General Public License as published by the Free Software
+Foundation; either version 3, or (at your option) any later version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef __objc_private_common_INCLUDE_GNU
+#define __objc_private_common_INCLUDE_GNU
+
+/* This file contains definitions that should be included by all .c
+ and .m files in libobjc.
+*/
+
+/* This variable allows the public headers to determine when they are
+ being included by a file inside libobjc itself, or when they are
+ being included by an external file.
+*/
+#define GNU_LIBOBJC_COMPILING_LIBOBJC_ITSELF 1
+
+#endif /* __objc_private_common_INCLUDE_GNU */
#ifndef __objc_INCLUDE_GNU
#define __objc_INCLUDE_GNU
+/* This file contains the definition of the basic types used by the
+ Objective-C language. It needs to be included to do almost
+ anything with Objective-C.
+*/
+
#ifdef __cplusplus
extern "C" {
#endif
#include <stddef.h>
+/* The current version of the GNU Objective-C Runtime library in
+ compressed ISO date format. This should be updated any time a new
+ version is released with changes to the public API (there is no
+ need to update it if there were no API changes since the previous
+ release). This macro is only defined starting with the GNU
+ Objective-C Runtime shipped with GCC 4.6.0. If it is not defined,
+ it is either an older version of the runtime, or another runtime.
+*/
+#define __GNU_LIBOBJC__ 20100911
+
/*
Definition of the boolean type.
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
-
+#include "objc-private/common.h"
#include "tconfig.h" /* include defs of bzero for target */
#include "objc/objc.h"
#include "objc/objc-api.h"
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
-
+#include "objc-private/common.h"
#include "objc/sarray.h"
#include "objc/objc.h"
#include "objc/objc-api.h"
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
-
+#include "objc-private/common.h"
#include "objc/objc.h"
#include "objc/objc-api.h"
#include "objc/thr.h"
/* FIXME: This should be using libffi instead of __builtin_apply
and friends. */
+#include "objc-private/common.h"
#include "tconfig.h"
#include "coretypes.h"
#include "tm.h"
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include "objc-private/common.h"
#define _LIBOBJC
/* The line below is needed for declarations of functions such as
pthread_mutexattr_settype, without which gthr-posix.h may fail to