From 676c51739a5823facb3846714de43537311128cb Mon Sep 17 00:00:00 2001 From: Adam Fedor Date: Mon, 26 Jan 2004 05:30:13 +0000 Subject: 2004-01-25 Adam Fedor Nicola Pero Andrew Pinski * objc/objc-decls.h: New file. * objc/objc-api.h (_objc_lookup_class): Mark as export. (_objc_load_callback): Likewise. (_objc_object_alloc): Likewise. (_objc_object_copy): Likewise. (_objc_object_dispose): Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/libobjc-branch@76620 138bc75d-0d04-0410-961f-82ee72b054a4 --- libobjc/ChangeLog.branch | 11 +++++++++++ libobjc/objc/objc-api.h | 27 ++++++++++++++------------- libobjc/objc/objc-decls.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 13 deletions(-) create mode 100644 libobjc/objc/objc-decls.h diff --git a/libobjc/ChangeLog.branch b/libobjc/ChangeLog.branch index 4096331e81d..6ab540517dd 100644 --- a/libobjc/ChangeLog.branch +++ b/libobjc/ChangeLog.branch @@ -1,3 +1,14 @@ +2004-01-25 Adam Fedor + Nicola Pero + Andrew Pinski + + * objc/objc-decls.h: New file. + * objc/objc-api.h (_objc_lookup_class): Mark as export. + (_objc_load_callback): Likewise. + (_objc_object_alloc): Likewise. + (_objc_object_copy): Likewise. + (_objc_object_dispose): Likewise. + 2004-01-25 Andrew Pinski * archive.c: s/__inline__/inline diff --git a/libobjc/objc/objc-api.h b/libobjc/objc/objc-api.h index b50fa1bda90..d5a9a28d467 100644 --- a/libobjc/objc/objc-api.h +++ b/libobjc/objc/objc-api.h @@ -30,6 +30,7 @@ Boston, MA 02111-1307, USA. */ #include "objc/objc.h" #include "objc/hash.h" #include "objc/thr.h" +#include "objc/objc-decls.h" #include #include @@ -100,7 +101,7 @@ struct objc_method_description extern void objc_error(id object, int code, const char* fmt, ...); extern void objc_verror(id object, int code, const char* fmt, va_list ap); typedef BOOL (*objc_error_handler)(id, int code, const char *fmt, va_list ap); -objc_error_handler objc_set_error_handler(objc_error_handler func); +extern objc_error_handler objc_set_error_handler(objc_error_handler func); /* ** Error codes @@ -357,7 +358,7 @@ retval_t objc_msg_sendv(id, SEL, arglist_t); ** This may e.g. try to load in the class using dynamic loading. ** The function is guaranteed to be passed a non-NULL name string. */ -extern Class (*_objc_lookup_class)(const char *name); +objc_EXPORT Class (*_objc_lookup_class)(const char *name); /* ** This is a hook which is called by __objc_exec_class every time a class @@ -365,14 +366,14 @@ extern Class (*_objc_lookup_class)(const char *name); ** dynamic loader determine the classes that have been loaded when ** an object file is dynamically linked in. */ -extern void (*_objc_load_callback)(Class class, Category* category); +objc_EXPORT void (*_objc_load_callback)(Class class, Category* category); /* ** Hook functions for allocating, copying and disposing of instances */ -extern id (*_objc_object_alloc)(Class class); -extern id (*_objc_object_copy)(id object); -extern id (*_objc_object_dispose)(id object); +objc_EXPORT id (*_objc_object_alloc)(Class class); +objc_EXPORT id (*_objc_object_copy)(id object); +objc_EXPORT id (*_objc_object_dispose)(id object); /* ** Standard functions for memory allocation and disposal. @@ -408,19 +409,19 @@ objc_free(void *mem); ** Users should call the normal objc routines above for ** memory allocation and disposal within their programs. */ -extern void *(*_objc_malloc)(size_t); -extern void *(*_objc_atomic_malloc)(size_t); -extern void *(*_objc_valloc)(size_t); -extern void *(*_objc_realloc)(void *, size_t); -extern void *(*_objc_calloc)(size_t, size_t); -extern void (*_objc_free)(void *); +objc_EXPORT void *(*_objc_malloc)(size_t); +objc_EXPORT void *(*_objc_atomic_malloc)(size_t); +objc_EXPORT void *(*_objc_valloc)(size_t); +objc_EXPORT void *(*_objc_realloc)(void *, size_t); +objc_EXPORT void *(*_objc_calloc)(size_t, size_t); +objc_EXPORT void (*_objc_free)(void *); /* ** Hook for method forwarding. This makes it easy to substitute a ** library, such as ffcall, that implements closures, thereby avoiding ** gcc's __builtin_apply problems. */ -extern IMP (*__objc_msg_forward)(SEL); +objc_EXPORT IMP (*__objc_msg_forward)(SEL); Method_t class_get_class_method(MetaClass class, SEL aSel); diff --git a/libobjc/objc/objc-decls.h b/libobjc/objc/objc-decls.h new file mode 100644 index 00000000000..6d64c3bb52b --- /dev/null +++ b/libobjc/objc/objc-decls.h @@ -0,0 +1,47 @@ +/* GNU Objective-C Extern helpers for Win32. + Copyright (C) 2004 Free Software Foundation, Inc. + +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 2, 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. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* As a special exception, if you link this library with files compiled + with GCC to produce an executable, this does not cause the resulting + executable to be covered by the GNU General Public License. This + exception does not however invalidate any other reasons why the + executable file might be covered by the GNU General Public License. */ + +#ifndef __objc_decls_INCLUDE_GNU +#define __objc_decls_INCLUDE_GNU + +#if defined (_WIN32) || defined (__WIN32__) || defined (WIN32) + +# ifdef DLL_EXPORT /* defined by libtool (if required) */ +# define objc_EXPORT __declspec(dllexport) +# define objc_DECLARE __declspec(dllexport) +#else +# define objc_EXPORT extern __declspec(dllimport) +# define objc_DECLARE extern __declspec(dllimport) +#endif + +#else + +# define objc_EXPORT extern +# define objc_DECLARE + +#endif + +#endif /* __objc_decls_INCLUDE_GNU */ -- cgit v1.2.3