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 | af832540ef02189b758e0a5c09a3718fd766a7e7 (patch) | |
| tree | 0fa6a08034aff4516c5bd192cd8c0d1ec064d986 | |
| parent | 8acd2da4b144a51ba694d11b5507504b367474b9 (diff) | |
| download | ruby-af832540ef02189b758e0a5c09a3718fd766a7e7.tar.gz ruby-af832540ef02189b758e0a5c09a3718fd766a7e7.tar.xz ruby-af832540ef02189b758e0a5c09a3718fd766a7e7.zip | |
* 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: http://svn.ruby-lang.org/repos/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 5d7b60197..87a27d8d9 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 c13d7ed2f..2ab91c2e5 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 23be23c29..79e44b9e6 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 24254a10a..4a24039b4 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 ae53a6b26..d0254f342 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 |
