summaryrefslogtreecommitdiff
path: root/include/begin_code.h
diff options
context:
space:
mode:
authorRyan C. Gordon <icculus@icculus.org>2010-01-06 20:58:03 +0000
committerRyan C. Gordon <icculus@icculus.org>2010-01-06 20:58:03 +0000
commit3876de9f4755a9cdd197b7e66e28d1771313c8fa (patch)
tree7f5e2498bba0328e612dfac7376be59f54c60cdc /include/begin_code.h
parent8fbed4b846245c4049f86e499eb1bc1e22ed5fef (diff)
Merged r4717:4718 from branches/SDL-1.2: minor OS/2 DECLSPEC/SDLCALL fixes.
I reworked this a little. The 1.2 branch isn't really very elegant about this. --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%404369
Diffstat (limited to 'include/begin_code.h')
-rw-r--r--include/begin_code.h23
1 files changed, 18 insertions, 5 deletions
diff --git a/include/begin_code.h b/include/begin_code.h
index 2242e8c9..8982d244 100644
--- a/include/begin_code.h
+++ b/include/begin_code.h
@@ -52,6 +52,12 @@
# else
# define DECLSPEC __declspec(dllexport)
# endif
+# elif defined(__OS2__)
+# ifdef BUILD_SDL
+# define DECLSPEC __declspec(dllexport)
+# else
+# define DECLSPEC
+# endif
# else
# if defined(__GNUC__) && __GNUC__ >= 4
# define DECLSPEC __attribute__ ((visibility("default")))
@@ -63,11 +69,18 @@
/* By default SDL uses the C calling convention */
#ifndef SDLCALL
-#if defined(__WIN32__) && !defined(__GNUC__)
-#define SDLCALL __cdecl
-#else
-#define SDLCALL
-#endif
+# if defined(__WIN32__) && !defined(__GNUC__)
+# define SDLCALL __cdecl
+# elif defined(__OS2__)
+ /* Use the _System calling convention to be compatible with every OS/2
+ compiler. (Please note that this used to be _cdecl for GCC, but that
+ was a bug. Someone should go examine and fix the XFree86 integration
+ instead. We shouldn't be passing SDLCALL function pointers between SDL
+ and XFree86!) */
+# define SDLCALL _System
+# else
+# define SDLCALL
+# endif
#endif /* SDLCALL */
/* Removed DECLSPEC on Symbian OS because SDL cannot be a DLL in EPOC */