summaryrefslogtreecommitdiff
path: root/ext/dl
diff options
context:
space:
mode:
Diffstat (limited to 'ext/dl')
-rw-r--r--ext/dl/cfunc.c4
-rw-r--r--ext/dl/dl.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/ext/dl/cfunc.c b/ext/dl/cfunc.c
index 739de9659e..94816204f1 100644
--- a/ext/dl/cfunc.c
+++ b/ext/dl/cfunc.c
@@ -229,6 +229,10 @@ rb_dlcfunc_inspect(VALUE self)
#elif defined(_MSC_VER) || defined(__BORLANDC__)
# define DECL_FUNC_CDECL(f,ret,args) ret (__cdecl *f)(args)
# define DECL_FUNC_STDCALL(f,ret,args) ret (__stdcall *f)(args)
+#elif defined(__SUNPRO_C)
+# define DECL_FUNC(f,ret,args,calltype) ret (*f)(args)
+# define DECL_FUNC_CDECL(f,ret,args) ret (*f)(args)
+# define DECL_FUNC_STDCALL(f,ret,args) ret (*f)(args)
#else
# error "unsupported compiler."
#endif
diff --git a/ext/dl/dl.c b/ext/dl/dl.c
index 4473e8d498..fcfcbd1bcc 100644
--- a/ext/dl/dl.c
+++ b/ext/dl/dl.c
@@ -70,6 +70,13 @@ rb_dl_value2ptr(VALUE self, VALUE val)
# define MIDST_DECL_STDCALL __stdcall
# define POST_DECL_CDECL
# define POST_DECL_STDCALL
+#elif (__SUNPRO_C)
+# define PRE_DECL_CDECL
+# define PRE_DECL_STDCALL
+# define MIDST_DECL_CDECL
+# define MIDST_DECL_STDCALL
+# define POST_DECL_CDECL
+# define POST_DECL_STDCALL
#else
# error "unsupported compiler"
#endif