summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-02-02 10:37:09 +0000
committereban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-02-02 10:37:09 +0000
commit18afa51bd2d75201d0f31a01f3a525e9acbbc6a7 (patch)
treeb8c4f73705bc88223e92d52785cc5d3671ad97d4
parentb263b07491719434c45a01fe189675db9a505b50 (diff)
* configure.in: backport from 1.9 for Interix.
* dln.c (dln_load): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--configure.in16
-rw-r--r--dln.c3
3 files changed, 18 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 61c5eaeee4..0eb00b3ba7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Mon Feb 2 19:33:49 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+
+ * configure.in: backport from 1.9 for Interix.
+
+ * dln.c (dln_load): ditto.
+
Mon Feb 2 13:31:51 2004 NAKAMURA Usaku <usa@ruby-lang.org>
* lib/net/http.rb (canonical_each): fix merge miss.
diff --git a/configure.in b/configure.in
index 9a2416c75c..be32dca473 100644
--- a/configure.in
+++ b/configure.in
@@ -811,13 +811,7 @@ if test "$with_dln_a_out" != yes; then
openstep*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
rhapsody*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
darwin*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
- human*) ;;
- bsdi*) ;;
- beos*) ;;
- cygwin*) ;;
- mingw*) ;;
- aix*) ;;
- netbsd*) CCDLFLAGS="$CCDLFLAGS -fPIC";;
+ human*|bsdi*|beos*|cygwin*|mingw*|aix*|interix*) ;;
*) CCDLFLAGS="$CCDLFLAGS -fPIC";;
esac
else
@@ -859,6 +853,11 @@ if test "$with_dln_a_out" != yes; then
rb_cv_dlopen=yes ;;
linux*) : ${LDSHARED="$CC -shared"}
rb_cv_dlopen=yes ;;
+ interix*) : ${LDSHARED="$CC -shared"}
+ XLDFLAGS="$XLDFLAGS -Wl,-E"
+ LIBPATHFLAG=" -L'%1\$-s'"
+ RPATHFLAG=" -Wl,-R'%1\$-s'"
+ rb_cv_dlopen=yes ;;
gnu*) : ${LDSHARED="$CC -shared"}
rb_cv_dlopen=yes
LDFLAGS="$LDFLAGS -rdynamic" ;;
@@ -1216,6 +1215,9 @@ if test "$enable_shared" = 'yes'; then
LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR)'
LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so'
;;
+ interix*)
+ LIBRUBYARG_SHARED='-Wl,-R -Wl,${libdir} -L${libdir} -L. -l$(RUBY_SO_NAME)'
+ ;;
*)
;;
esac
diff --git a/dln.c b/dln.c
index 1dd80c2fe6..8660e9a5ee 100644
--- a/dln.c
+++ b/dln.c
@@ -1318,6 +1318,9 @@ dln_load(file)
#ifndef RTLD_LAZY
# define RTLD_LAZY 1
#endif
+#ifdef __INTERIX
+# undef RTLD_GLOBAL
+#endif
#ifndef RTLD_GLOBAL
# define RTLD_GLOBAL 0
#endif