diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-10-25 17:00:03 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-10-25 17:00:03 +0000 |
commit | 17f022491ab6b1dfec34eb5b9eb050eadb425a7b (patch) | |
tree | 0fa6a08034aff4516c5bd192cd8c0d1ec064d986 | |
parent | 7514584b706134864eec1ee8c5732c458b4634ab (diff) |
* configure.in (RUBY_EXTERN): macro to export symbols in shared
library. [ruby-core:05528]
* defines.h, {bcc32,win32,wince}/Makefile.sub (RUBY_EXTERN): moved to
configuration pass.
* ext/extmk.rb (extmake): RUBY_EXTERN for static linked extensions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | bcc32/Makefile.sub | 1 | ||||
-rw-r--r-- | configure.in | 12 | ||||
-rw-r--r-- | defines.h | 5 | ||||
-rw-r--r-- | ext/extmk.rb | 1 | ||||
-rw-r--r-- | win32/Makefile.sub | 1 | ||||
-rw-r--r-- | wince/Makefile.sub | 1 |
7 files changed, 26 insertions, 5 deletions
@@ -1,3 +1,13 @@ +Wed Oct 26 01:58:19 2005 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * configure.in (RUBY_EXTERN): macro to export symbols in shared + library. [ruby-core:05528] + + * defines.h, {bcc32,win32,wince}/Makefile.sub (RUBY_EXTERN): moved to + configuration pass. + + * ext/extmk.rb (extmake): RUBY_EXTERN for static linked extensions. + Tue Oct 25 15:32:00 2005 Yukihiro Matsumoto <matz@ruby-lang.org> * lib/rational.rb: applied documentation patch from Gavin Sinclair diff --git a/bcc32/Makefile.sub b/bcc32/Makefile.sub index 5d7b60197a..87a27d8d92 100644 --- a/bcc32/Makefile.sub +++ b/bcc32/Makefile.sub @@ -222,6 +222,7 @@ $(CONFIG_H): $(MKFILES) $(srcdir)bcc32/Makefile.sub \#define TOKEN_PASTE(x,y) x\#\#y \#define HAVE_STDARG_PROTOTYPES 1 \#define NORETURN(x) x +\#define RUBY_EXTERN extern __declspec(dllimport) \#define HAVE_DECL_SYS_NERR 1 \#define HAVE_LIMITS_H 1 \#define HAVE_FCNTL_H 1 diff --git a/configure.in b/configure.in index c13d7ed2ff..2ab91c2e53 100644 --- a/configure.in +++ b/configure.in @@ -283,6 +283,17 @@ NORETURN(void exit(int x));], done]) AC_DEFINE_UNQUOTED([NORETURN(x)], $rb_cv_noreturn) +AC_CACHE_CHECK([for RUBY_EXTERN], rb_cv_ruby_extern, +[rb_cv_ruby_extern=no +for mac in "__attribute__((dllimport))" "__declspec(dllimport)"; do + AC_TRY_COMPILE( + [extern $mac void conftest(void);], + [rb_cv_ruby_extern="extern $mac"; break]) +done]) +test "x$rb_cv_ruby_extern" = xno || AC_DEFINE_UNQUOTED(RUBY_EXTERN, $rb_cv_ruby_extern) + +XCFLAGS="$XCFLAGS -DRUBY_EXPORT" + dnl Check whether we need to define sys_nerr locally AC_CHECK_DECLS([sys_nerr], [], [], [$ac_includes_default #include <errno.h>]) @@ -1346,7 +1357,6 @@ case "$target_os" in COMMON_HEADERS="windows.h winsock.h" ;; esac - XCFLAGS="$XCFLAGS" LIBRUBY_DLDFLAGS="${DLDFLAGS}"' -Wl,--out-implib=$(LIBRUBY)' LIBRUBY_ALIASES='' FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in @@ -191,11 +191,8 @@ void xfree _((void*)); #include <net/socket.h> /* intern.h needs fd_set definition */ #endif +#ifdef RUBY_EXPORT #undef RUBY_EXTERN -#if defined _WIN32 && !defined __GNUC__ -# ifndef RUBY_EXPORT -# define RUBY_EXTERN extern __declspec(dllimport) -# endif #endif #ifndef RUBY_EXTERN diff --git a/ext/extmk.rb b/ext/extmk.rb index 23be23c293..79e44b9e63 100644 --- a/ext/extmk.rb +++ b/ext/extmk.rb @@ -129,6 +129,7 @@ def extmake(target) then ok = false init_mkmf + $defs << "-DRUBY_EXPORT" if $static Logging::logfile 'mkmf.log' rm_f makefile if File.exist?($0 = "#{$srcdir}/makefile.rb") diff --git a/win32/Makefile.sub b/win32/Makefile.sub index 24254a10aa..4a24039b4e 100644 --- a/win32/Makefile.sub +++ b/win32/Makefile.sub @@ -207,6 +207,7 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/Makefile.sub !if $(MSC_VER) > 1100 #define NORETURN(x) __declspec(noreturn) x !endif +#define RUBY_EXTERN extern __declspec(dllimport) #define HAVE_DECL_SYS_NERR 1 #define HAVE_LIMITS_H 1 #define HAVE_FCNTL_H 1 diff --git a/wince/Makefile.sub b/wince/Makefile.sub index ae53a6b266..d0254f3421 100644 --- a/wince/Makefile.sub +++ b/wince/Makefile.sub @@ -215,6 +215,7 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/wince/Makefile.sub !if $(MSC_VER) > 1100 #define NORETURN(x) __declspec(noreturn) x !endif +#define RUBY_EXTERN extern __declspec(dllimport) #define HAVE_DECL_SYS_NERR 1 #define HAVE_FCNTL_H 1 #define HAVE_SYS_UTIME_H 1 |