From 3ba2f5f1eb823ad69367465758a7ed335d75f2e9 Mon Sep 17 00:00:00 2001 From: Aleksey Demakov Date: Mon, 26 May 2008 10:51:27 +0000 Subject: [PATCH] add JIT_EXPORT_DATA macro to support win32 DLL idiosyncrasy --- ChangeLog | 8 ++++++ include/jit/jit-defs.h.in | 6 ++++ include/jit/jit-opcode.h | 2 +- include/jit/jit-type.h | 60 +++++++++++++++++++-------------------- 4 files changed, 45 insertions(+), 31 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5a6b536..e20b20e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-05-26 Juan Jesus Garcia de Soria + + * include/jit/jit-defs.h.in: define JIT_EXPORT_DATA macro to support + win32 DLL symbol import/export idiosyncrasy. On non-win32 this macro + is simply "extern". + * include/jit/jit-type.h, include/jit/jit-opcode.h: replace "extern" + with JIT_EXPORT_DATA in data declaration. + 2008-05-24 Klaus Treichel * jit/jit-rules-x86-64.c (_jit_gen_prolog, _jit_gen_epilog): Add diff --git a/include/jit/jit-defs.h.in b/include/jit/jit-defs.h.in index 42748d1..231928a 100644 --- a/include/jit/jit-defs.h.in +++ b/include/jit/jit-defs.h.in @@ -25,6 +25,12 @@ extern "C" { #endif +#ifdef _MSC_VER +#define JIT_EXPORT_DATA extern __declspec(dllimport) +#else +#define JIT_EXPORT_DATA extern +#endif + @JIT_INT64_INCLUDE@ typedef @JITINT8@ jit_sbyte; diff --git a/include/jit/jit-opcode.h b/include/jit/jit-opcode.h index ad4ecda..4bb895e 100644 --- a/include/jit/jit-opcode.h +++ b/include/jit/jit-opcode.h @@ -601,7 +601,7 @@ struct jit_opcode_info #define JIT_OPCODE_SRC1_PTR JIT_OPCODE_SRC1_LONG #define JIT_OPCODE_SRC2_PTR JIT_OPCODE_SRC2_LONG #endif -extern jit_opcode_info_t const jit_opcodes[JIT_OP_NUM_OPCODES]; +JIT_EXPORT_DATA jit_opcode_info_t const jit_opcodes[JIT_OP_NUM_OPCODES]; #ifdef __cplusplus }; diff --git a/include/jit/jit-type.h b/include/jit/jit-type.h index 36b6d9b..8dd8483 100644 --- a/include/jit/jit-type.h +++ b/include/jit/jit-type.h @@ -30,41 +30,41 @@ extern "C" { /* * Pre-defined type descriptors. */ -extern jit_type_t const jit_type_void; -extern jit_type_t const jit_type_sbyte; -extern jit_type_t const jit_type_ubyte; -extern jit_type_t const jit_type_short; -extern jit_type_t const jit_type_ushort; -extern jit_type_t const jit_type_int; -extern jit_type_t const jit_type_uint; -extern jit_type_t const jit_type_nint; -extern jit_type_t const jit_type_nuint; -extern jit_type_t const jit_type_long; -extern jit_type_t const jit_type_ulong; -extern jit_type_t const jit_type_float32; -extern jit_type_t const jit_type_float64; -extern jit_type_t const jit_type_nfloat; -extern jit_type_t const jit_type_void_ptr; +JIT_EXPORT_DATA jit_type_t const jit_type_void; +JIT_EXPORT_DATA jit_type_t const jit_type_sbyte; +JIT_EXPORT_DATA jit_type_t const jit_type_ubyte; +JIT_EXPORT_DATA jit_type_t const jit_type_short; +JIT_EXPORT_DATA jit_type_t const jit_type_ushort; +JIT_EXPORT_DATA jit_type_t const jit_type_int; +JIT_EXPORT_DATA jit_type_t const jit_type_uint; +JIT_EXPORT_DATA jit_type_t const jit_type_nint; +JIT_EXPORT_DATA jit_type_t const jit_type_nuint; +JIT_EXPORT_DATA jit_type_t const jit_type_long; +JIT_EXPORT_DATA jit_type_t const jit_type_ulong; +JIT_EXPORT_DATA jit_type_t const jit_type_float32; +JIT_EXPORT_DATA jit_type_t const jit_type_float64; +JIT_EXPORT_DATA jit_type_t const jit_type_nfloat; +JIT_EXPORT_DATA jit_type_t const jit_type_void_ptr; /* * Type descriptors for the system "char", "int", "long", etc types. * These are defined to one of the above values. */ -extern jit_type_t const jit_type_sys_bool; -extern jit_type_t const jit_type_sys_char; -extern jit_type_t const jit_type_sys_schar; -extern jit_type_t const jit_type_sys_uchar; -extern jit_type_t const jit_type_sys_short; -extern jit_type_t const jit_type_sys_ushort; -extern jit_type_t const jit_type_sys_int; -extern jit_type_t const jit_type_sys_uint; -extern jit_type_t const jit_type_sys_long; -extern jit_type_t const jit_type_sys_ulong; -extern jit_type_t const jit_type_sys_longlong; -extern jit_type_t const jit_type_sys_ulonglong; -extern jit_type_t const jit_type_sys_float; -extern jit_type_t const jit_type_sys_double; -extern jit_type_t const jit_type_sys_long_double; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_bool; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_char; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_schar; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_uchar; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_short; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_ushort; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_int; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_uint; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_long; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_ulong; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_longlong; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_ulonglong; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_float; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_double; +JIT_EXPORT_DATA jit_type_t const jit_type_sys_long_double; /* * Type kinds that may be returned by "jit_type_get_kind". -- 2.47.3