#ifndef __objc_runtime_INCLUDE_GNU
#define __objc_runtime_INCLUDE_GNU
+#include <objc/objc.h> /* core data types */
+#include <objc/objc-api.h> /* runtime api functions */
+
+#include <objc/thr.h> /* thread and mutex support */
+
+#include <objc/hash.h> /* hash structures */
+#include <objc/objc-list.h> /* linear lists */
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
#include <stdarg.h> /* for varargs and va_list's */
#include <stdio.h>
#include <ctype.h>
#include <stddef.h> /* so noone else will get system versions */
-#include "assert.h"
-
-#include "objc/objc.h" /* core data types */
-#include "objc/objc-api.h" /* runtime api functions */
-
-#include "objc/thr.h" /* thread and mutex support */
-
-#include "objc/hash.h" /* hash structures */
-#include "objc/objc-list.h" /* linear lists */
+#include <assert.h>
extern void __objc_add_class_to_hash(Class); /* (objc-class.c) */
extern void __objc_init_selector_tables(void); /* (objc-sel.c) */
struct objc_selector*, BOOL is_const);
extern void __objc_generate_gc_type_description (Class);
-#endif /* not __objc_runtime_INCLUDE_GNU */
-
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* not __objc_runtime_INCLUDE_GNU */